From abddea84f8aa4edf949c04663c9285ce5a24f489 Mon Sep 17 00:00:00 2001 From: Oleksii Gorbulin Date: Thu, 27 Dec 2018 23:54:55 +0200 Subject: [PATCH 1/3] 19482-Increase-product-quantity-with-disabled-Manage-Stock-when-place-order-is-failed Magento2:#19482 Increase product quantity with disabled Manage Stock when place order is failed --- .../CatalogInventory/Model/StockManagement.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/CatalogInventory/Model/StockManagement.php b/app/code/Magento/CatalogInventory/Model/StockManagement.php index 107645a45a390..1a01675ea6a21 100644 --- a/app/code/Magento/CatalogInventory/Model/StockManagement.php +++ b/app/code/Magento/CatalogInventory/Model/StockManagement.php @@ -148,7 +148,17 @@ public function revertProductsSale($items, $websiteId = null) //if (!$websiteId) { $websiteId = $this->stockConfiguration->getDefaultScopeId(); //} - $this->qtyCounter->correctItemsQty($items, $websiteId, '+'); + $revertItems = []; + foreach ($items as $productId => $qty) { + $stockItem = $this->stockRegistryProvider->getStockItem($productId, $websiteId); + $canSubtractQty = $stockItem->getItemId() && $this->canSubtractQty($stockItem); + if (!$canSubtractQty || !$this->stockConfiguration->isQty($stockItem->getTypeId())) { + continue; + } + $revertItems[$productId] = $qty; + } + $this->qtyCounter->correctItemsQty($revertItems, $websiteId, '+'); + return true; } From 5d38ec623a83128be1fcaade22e9418d12a6c8a0 Mon Sep 17 00:00:00 2001 From: Oleksii Gorbulin Date: Fri, 28 Dec 2018 00:43:40 +0200 Subject: [PATCH 2/3] 19482-Increase-product-quantity-with-disabled-Manage-Stock-when-place-order-is-failed Increase product quantity with disabled Manage Stock when place order is failed #19482 --- .../Magento/CatalogInventory/Model/StockManagement.php | 7 ++++--- .../Observer/RevertQuoteInventoryObserver.php | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/CatalogInventory/Model/StockManagement.php b/app/code/Magento/CatalogInventory/Model/StockManagement.php index 1a01675ea6a21..78524ffecaa32 100644 --- a/app/code/Magento/CatalogInventory/Model/StockManagement.php +++ b/app/code/Magento/CatalogInventory/Model/StockManagement.php @@ -140,8 +140,9 @@ public function registerProductsSale($items, $websiteId = null) /** * @param string[] $items - * @param int $websiteId - * @return bool + * @param int|null $websiteId + * + * @return array|bool */ public function revertProductsSale($items, $websiteId = null) { @@ -159,7 +160,7 @@ public function revertProductsSale($items, $websiteId = null) } $this->qtyCounter->correctItemsQty($revertItems, $websiteId, '+'); - return true; + return $revertItems; } /** diff --git a/app/code/Magento/CatalogInventory/Observer/RevertQuoteInventoryObserver.php b/app/code/Magento/CatalogInventory/Observer/RevertQuoteInventoryObserver.php index 93a50cc9a7a4d..ab21f32b3f62c 100644 --- a/app/code/Magento/CatalogInventory/Observer/RevertQuoteInventoryObserver.php +++ b/app/code/Magento/CatalogInventory/Observer/RevertQuoteInventoryObserver.php @@ -64,8 +64,8 @@ public function execute(EventObserver $observer) { $quote = $observer->getEvent()->getQuote(); $items = $this->productQty->getProductQty($quote->getAllItems()); - $this->stockManagement->revertProductsSale($items, $quote->getStore()->getWebsiteId()); - $productIds = array_keys($items); + $revertedItems = $this->stockManagement->revertProductsSale($items, $quote->getStore()->getWebsiteId()); + $productIds = array_keys($revertedItems); if (!empty($productIds)) { $this->stockIndexerProcessor->reindexList($productIds); $this->priceIndexer->reindexList($productIds); From 582a1e7beee224839ee21b554d55c55af56f38e4 Mon Sep 17 00:00:00 2001 From: Pavel Bystritsky Date: Mon, 21 Jan 2019 17:06:06 +0200 Subject: [PATCH 3/3] ENGCOM-3771: Static test fix. --- .../Magento/CatalogInventory/Model/StockManagement.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/CatalogInventory/Model/StockManagement.php b/app/code/Magento/CatalogInventory/Model/StockManagement.php index 78524ffecaa32..ed8fcef5dea03 100644 --- a/app/code/Magento/CatalogInventory/Model/StockManagement.php +++ b/app/code/Magento/CatalogInventory/Model/StockManagement.php @@ -83,6 +83,7 @@ public function __construct( /** * Subtract product qtys from stock. + * * Return array of items that require full save. * * @param string[] $items @@ -139,10 +140,7 @@ public function registerProductsSale($items, $websiteId = null) } /** - * @param string[] $items - * @param int|null $websiteId - * - * @return array|bool + * @inheritdoc */ public function revertProductsSale($items, $websiteId = null) { @@ -204,6 +202,8 @@ protected function getProductType($productId) } /** + * Get stock resource. + * * @return ResourceStock */ protected function getResource()