resourceConnection = $resourceConnection; $this->bulkZeroLegacyStockItem = $bulkZeroLegacyStockItem; $this->defaultSourceProvider = $defaultSourceProvider; } /** * Assign sources to products * @param array $skus * @param array $sourceCodes * @return int * @throws \Magento\Framework\Exception\NoSuchEntityException */ public function execute(array $skus, array $sourceCodes): int { $connection = $this->resourceConnection->getConnection(); $tableName = $this->resourceConnection->getTableName(SourceItem::TABLE_NAME_SOURCE_ITEM); $connection->beginTransaction(); $count = (int) $connection->delete($tableName, [ SourceItemInterface::SOURCE_CODE . ' IN (?)' => $sourceCodes, SourceItemInterface::SKU . ' IN (?)' => $skus, ]); // Legacy stock update if (in_array($this->defaultSourceProvider->getCode(), $sourceCodes)) { $this->bulkZeroLegacyStockItem->execute($skus); } $connection->commit(); return $count; } }