From c1bcfe2bccb899b9c220638f50e4bcfc64758201 Mon Sep 17 00:00:00 2001 From: Artem Date: Mon, 15 Jan 2024 13:49:19 +0100 Subject: [PATCH] CC-32470 Fixed product stock data import. --- .../Writer/ProductStockPropelDataSetWriter.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Pyz/Zed/DataImport/Business/Model/ProductStock/Writer/ProductStockPropelDataSetWriter.php b/src/Pyz/Zed/DataImport/Business/Model/ProductStock/Writer/ProductStockPropelDataSetWriter.php index 1ff51def61..015d65cd5b 100644 --- a/src/Pyz/Zed/DataImport/Business/Model/ProductStock/Writer/ProductStockPropelDataSetWriter.php +++ b/src/Pyz/Zed/DataImport/Business/Model/ProductStock/Writer/ProductStockPropelDataSetWriter.php @@ -80,6 +80,11 @@ class ProductStockPropelDataSetWriter implements DataSetWriterInterface */ protected static $productAbstractSkus = []; + /** + * @var array> + */ + protected static $availabilityAbstractEntitiesIndexedByAbstractSkuAndIdStore = []; + /** * @var \Pyz\Zed\DataImport\Business\Model\Product\Repository\ProductRepositoryInterface */ @@ -435,16 +440,22 @@ protected function persistAvailabilityData(array $availabilityData): void */ protected function getAvailabilityAbstract(string $abstractSku, int $idStore): SpyAvailabilityAbstract { + if (!empty(static::$availabilityAbstractEntitiesIndexedByAbstractSkuAndIdStore[$abstractSku][$idStore])) { + return static::$availabilityAbstractEntitiesIndexedByAbstractSkuAndIdStore[$abstractSku][$idStore]; + } + $availabilityAbstractEntity = SpyAvailabilityAbstractQuery::create() ->filterByAbstractSku($abstractSku) ->filterByFkStore($idStore) ->findOne(); - if ($availabilityAbstractEntity !== null) { - return $availabilityAbstractEntity; + if (!$availabilityAbstractEntity) { + $availabilityAbstractEntity = $this->createAvailabilityAbstract($abstractSku, $idStore); } - return $this->createAvailabilityAbstract($abstractSku, $idStore); + static::$availabilityAbstractEntitiesIndexedByAbstractSkuAndIdStore[$abstractSku][$idStore] = $availabilityAbstractEntity; + + return $availabilityAbstractEntity; } /**