Skip to content

Commit 6bc6034

Browse files
committed
ACP2E-1875: [Magento Cloud] Products incorrectly showed Out of Stock then all products show in stock
- implemented CR
1 parent 982851c commit 6bc6034

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

app/code/Magento/CatalogSearch/Model/Indexer/Fulltext.php

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use Magento\CatalogSearch\Model\ResourceModel\Fulltext as FulltextResource;
1313
use Magento\Framework\App\ObjectManager;
1414
use Magento\Framework\Indexer\DimensionProviderInterface;
15-
use Magento\Framework\Indexer\SaveHandler\EnhancedIndexerInterface;
15+
use Magento\Framework\Indexer\SaveHandler\StackedActionsIndexerInterface;
1616
use Magento\Framework\Indexer\SaveHandler\IndexerInterface;
1717
use Magento\Store\Model\StoreDimensionProvider;
1818
use Magento\Indexer\Model\ProcessManager;
@@ -220,12 +220,18 @@ private function processBatch(
220220
);
221221

222222
if ($saveHandler->isAvailable($dimensions)) {
223-
if (in_array(EnhancedIndexerInterface::class, class_implements($saveHandler))) {
224-
$saveHandler->enableStackedActions();
225-
$saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds));
226-
$saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds));
227-
$saveHandler->triggerStackedActions();
228-
$saveHandler->disableStackedActions();
223+
if (in_array(StackedActionsIndexerInterface::class, class_implements($saveHandler))) {
224+
try {
225+
$saveHandler->enableStackedActions();
226+
$saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds));
227+
$saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds));
228+
$saveHandler->triggerStackedActions();
229+
$saveHandler->disableStackedActions();
230+
} catch (\Throwable $exception) {
231+
$saveHandler->disableStackedActions();
232+
$saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds));
233+
$saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds));
234+
}
229235
} else {
230236
$saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds));
231237
$saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds));

app/code/Magento/Elasticsearch/Model/Indexer/IndexerHandler.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Magento\Framework\App\ScopeResolverInterface;
1616
use Magento\Framework\Indexer\IndexStructureInterface;
1717
use Magento\Framework\Indexer\SaveHandler\Batch;
18-
use Magento\Framework\Indexer\SaveHandler\EnhancedIndexerInterface;
18+
use Magento\Framework\Indexer\SaveHandler\StackedActionsIndexerInterface;
1919
use Magento\Framework\Indexer\SaveHandler\IndexerInterface;
2020
use Magento\Framework\Search\Request\Dimension;
2121
use Magento\Framework\Indexer\CacheContext;
@@ -24,7 +24,7 @@
2424
* Indexer Handler for Elasticsearch engine.
2525
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
2626
*/
27-
class IndexerHandler implements IndexerInterface, EnhancedIndexerInterface
27+
class IndexerHandler implements IndexerInterface, StackedActionsIndexerInterface
2828
{
2929
/**
3030
* Size of default batch

lib/internal/Magento/Framework/Indexer/SaveHandler/EnhancedIndexerInterface.php renamed to lib/internal/Magento/Framework/Indexer/SaveHandler/StackedActionsIndexerInterface.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace Magento\Framework\Indexer\SaveHandler;
99

10-
interface EnhancedIndexerInterface
10+
interface StackedActionsIndexerInterface
1111
{
1212
/**
1313
* Disable stacked queries mode

0 commit comments

Comments
 (0)