From c608b021a28d6bd18c4d6b505f893abca5a20745 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 b3939f2e5149b..e2989e25fcac1 100644 --- a/app/code/Magento/CatalogInventory/Model/StockManagement.php +++ b/app/code/Magento/CatalogInventory/Model/StockManagement.php @@ -150,7 +150,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 1a5a6be6d85599431ad55901417d44e75cf42907 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 e2989e25fcac1..28ec2977358b1 100644 --- a/app/code/Magento/CatalogInventory/Model/StockManagement.php +++ b/app/code/Magento/CatalogInventory/Model/StockManagement.php @@ -142,8 +142,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) { @@ -161,7 +162,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 eb60f47f8a5686676aa47ec9b85878d0c3d4c84c 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 28ec2977358b1..5d7d099dc01a0 100644 --- a/app/code/Magento/CatalogInventory/Model/StockManagement.php +++ b/app/code/Magento/CatalogInventory/Model/StockManagement.php @@ -85,6 +85,7 @@ public function __construct( /** * Subtract product qtys from stock. + * * Return array of items that require full save. * * @param string[] $items @@ -141,10 +142,7 @@ public function registerProductsSale($items, $websiteId = null) } /** - * @param string[] $items - * @param int|null $websiteId - * - * @return array|bool + * @inheritdoc */ public function revertProductsSale($items, $websiteId = null) { @@ -206,6 +204,8 @@ protected function getProductType($productId) } /** + * Get stock resource. + * * @return ResourceStock */ protected function getResource()