diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php index 366cb1c3902a3..4e3e11e53ee5f 100644 --- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php +++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php @@ -305,14 +305,16 @@ protected function _updateIndex($entityIds) 'stock_status' => (int)$row['status'], ]; if ($i % 1000 == 0) { + $this->deleteOldRecords(array_column($data, 'product_id')); $this->_updateIndexTable($data); $data = []; } } - $this->deleteOldRecords($entityIds); - $this->_updateIndexTable($data); - + if (is_array($data) && !empty($data)) { + $this->deleteOldRecords(array_column($data, 'product_id')); + $this->_updateIndexTable($data); + } return $this; } diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ActionTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ActionTest.php index 39905aeae10f5..b16149d134415 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ActionTest.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Product/ActionTest.php @@ -142,7 +142,7 @@ public function updateAttributesDataProvider() return [ [ 'status' => 2, - 'expected_count' => 0 + 'expected_count' => 1 ], [ 'status' => 1,