6 declare(strict_types=1);
12 use Magento\CatalogInventory\Api\StockItemCriteriaInterfaceFactory;
19 use Magento\InventoryCatalogApi\Model\SourceItemsSaveSynchronizationInterface;
29 private $setDataToLegacyStockItem;
34 private $legacyStockItemCriteriaFactory;
39 private $legacyStockItemRepository;
44 private $getProductIdsBySkus;
49 private $stockStateProvider;
54 private $indexerProcessor;
66 StockItemCriteriaInterfaceFactory $legacyStockItemCriteriaFactory,
72 $this->setDataToLegacyStockItem = $setDataToLegacyStockItem;
73 $this->legacyStockItemCriteriaFactory = $legacyStockItemCriteriaFactory;
74 $this->legacyStockItemRepository = $legacyStockItemRepository;
75 $this->getProductIdsBySkus = $getProductIdsBySkus;
76 $this->stockStateProvider = $stockStateProvider;
91 $productId = (int)$this->getProductIdsBySkus->execute([$sku])[$sku];
97 $legacyStockItem = $this->getLegacyStockItem(
$productId);
98 if (
null === $legacyStockItem) {
104 if ($legacyStockItem->getManageStock()) {
105 $legacyStockItem->setIsInStock($isInStock);
106 $legacyStockItem->setQty((
float)
$sourceItem->getQuantity());
108 if (
false === $this->stockStateProvider->verifyStock($legacyStockItem)) {
113 $this->setDataToLegacyStockItem->execute(
137 $stockItemCollection = $this->legacyStockItemRepository->getList(
$searchCriteria);
138 if ($stockItemCollection->getTotalCount() === 0) {
142 $stockItems = $stockItemCollection->getItems();
__construct(SetDataToLegacyStockItem $setDataToLegacyStockItem, StockItemCriteriaInterfaceFactory $legacyStockItemCriteriaFactory, StockItemRepositoryInterface $legacyStockItemRepository, GetProductIdsBySkusInterface $getProductIdsBySkus, StockStateProviderInterface $stockStateProvider, Processor $indexerProcessor)
execute(array $sourceItems)