1616use Magento \CatalogImportExport \Model \Import \Product \StatusProcessor ;
1717use Magento \CatalogImportExport \Model \Import \Product \StockProcessor ;
1818use Magento \CatalogImportExport \Model \StockItemImporterInterface ;
19+ use Magento \CatalogImportExport \Model \StockItemProcessorInterface ;
1920use Magento \CatalogInventory \Api \Data \StockItemInterface ;
2021use Magento \Framework \App \Filesystem \DirectoryList ;
2122use Magento \Framework \App \ObjectManager ;
@@ -229,7 +230,6 @@ class Product extends AbstractEntity
229230 * @deprecated 101.1.0 use DI for LinkProcessor class if you want to add additional types
230231 *
231232 * @see Magento_CatalogImportExport::etc/di.xml
232- *
233233 * @var array
234234 */
235235 protected $ _linkNameToId = [
@@ -615,8 +615,8 @@ class Product extends AbstractEntity
615615 /**
616616 * @var array
617617 * @deprecated 100.0.3
618- * @since 100.0.3
619618 *
619+ * @since 100.0.3
620620 * @see we don't recommend this approach anymore
621621 */
622622 protected $ productUrlKeys = [];
@@ -756,6 +756,11 @@ class Product extends AbstractEntity
756756 */
757757 private $ linkProcessor ;
758758
759+ /**
760+ * @var StockItemProcessorInterface
761+ */
762+ private $ stockItemProcessor ;
763+
759764 /**
760765 * @param \Magento\Framework\Json\Helper\Data $jsonHelper
761766 * @param \Magento\ImportExport\Helper\Data $importExportData
@@ -805,6 +810,7 @@ class Product extends AbstractEntity
805810 * @param StockProcessor|null $stockProcessor
806811 * @param LinkProcessor|null $linkProcessor
807812 * @param File|null $fileDriver
813+ * @param StockItemProcessorInterface|null $stockItemProcessor
808814 * @throws LocalizedException
809815 * @throws \Magento\Framework\Exception\FileSystemException
810816 * @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -859,7 +865,8 @@ public function __construct(
859865 StatusProcessor $ statusProcessor = null ,
860866 StockProcessor $ stockProcessor = null ,
861867 LinkProcessor $ linkProcessor = null ,
862- ?File $ fileDriver = null
868+ ?File $ fileDriver = null ,
869+ ?StockItemProcessorInterface $ stockItemProcessor = null
863870 ) {
864871 $ this ->_eventManager = $ eventManager ;
865872 $ this ->stockRegistry = $ stockRegistry ;
@@ -923,6 +930,8 @@ public function __construct(
923930 $ this ->dateTimeFactory = $ dateTimeFactory ?? ObjectManager::getInstance ()->get (DateTimeFactory::class);
924931 $ this ->productRepository = $ productRepository ?? ObjectManager::getInstance ()
925932 ->get (ProductRepositoryInterface::class);
933+ $ this ->stockItemProcessor = $ stockItemProcessor ?? ObjectManager::getInstance ()
934+ ->get (StockItemProcessorInterface::class);
926935 }
927936
928937 /**
@@ -1286,6 +1295,7 @@ protected function _prepareRowForDb(array $rowData)
12861295 *
12871296 * @deprecated 101.1.0 use linkProcessor Directly
12881297 * @see linkProcessor
1298+ *
12891299 * @return $this
12901300 */
12911301 protected function _saveLinks ()
@@ -2328,6 +2338,7 @@ protected function _saveStockItem()
23282338 {
23292339 while ($ bunch = $ this ->_dataSourceModel ->getNextBunch ()) {
23302340 $ stockData = [];
2341+ $ importedData = [];
23312342 $ productIdsToReindex = [];
23322343 $ stockChangedProductIds = [];
23332344 // Format bunch to stock data rows
@@ -2353,12 +2364,13 @@ protected function _saveStockItem()
23532364
23542365 if (!isset ($ stockData [$ sku ])) {
23552366 $ stockData [$ sku ] = $ row ;
2367+ $ importedData [$ sku ] = $ rowData ;
23562368 }
23572369 }
23582370
23592371 // Insert rows
23602372 if (!empty ($ stockData )) {
2361- $ this ->stockItemImporter -> import ($ stockData );
2373+ $ this ->stockItemProcessor -> process ($ stockData, $ importedData );
23622374 }
23632375
23642376 $ this ->reindexStockStatus ($ stockChangedProductIds );
@@ -2512,6 +2524,7 @@ public function getRowScope(array $rowData)
25122524 * @SuppressWarnings(PHPMD.CyclomaticComplexity)
25132525 * @SuppressWarnings(PHPMD.NPathComplexity)
25142526 * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
2527+ * @throws \Zend_Validate_Exception
25152528 */
25162529 public function validateRow (array $ rowData , $ rowNum )
25172530 {
0 commit comments