6 declare(strict_types=1);
13 use Magento\InventoryLowQuantityNotificationApi\Api\Data\SourceItemConfigurationInterfaceFactory;
26 private $sourceItemConfigurationFactory;
31 private $sourceItemConfigurationsSave;
36 private $dataObjectHelper;
41 private $sourceItemsConfigurationDelete;
53 SourceItemConfigurationInterfaceFactory $sourceItemConfigurationFactory,
61 $this->sourceItemsConfigurationDelete = $sourceItemsConfigurationDelete;
73 public function process($sku, array $sourceItemsData)
76 foreach ($sourceItemsData as $sourceItemData) {
77 $this->validateSourceItemData($sourceItemData);
78 $sourceItemConfiguration = $this->sourceItemConfigurationFactory->create();
80 if ($sourceItemData[
'notify_stock_qty_use_default'] == 1) {
81 unset($sourceItemData[
'notify_stock_qty']);
85 $this->dataObjectHelper->populateWithArray(
86 $sourceItemConfiguration,
88 SourceItemConfigurationInterface::class
107 private function validateSourceItemData(array $sourceItemData)
110 throw new InputException(
__(
'Wrong Product to Source relation parameters given.'));
121 private function deleteSourceItemsConfiguration(array $sourceItemsConfigurations)
124 $this->sourceItemsConfigurationDelete->execute($sourceItemsConfigurations);
$sourceItemConfigurationFactory
process($sku, array $sourceItemsData)
$sourceItemConfigurationsSave
$sourceItemConfigurations
__construct(SourceItemConfigurationInterfaceFactory $sourceItemConfigurationFactory, SourceItemConfigurationsSaveInterface $sourceItemConfigurationsSave, DeleteSourceItemsConfigurationInterface $sourceItemsConfigurationDelete, DataObjectHelper $dataObjectHelper)