Skip to content

Commit 982851c

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

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

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

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Framework\App\ObjectManager;
1414
use Magento\Framework\Indexer\DimensionProviderInterface;
1515
use Magento\Framework\Indexer\SaveHandler\EnhancedIndexerInterface;
16+
use Magento\Framework\Indexer\SaveHandler\IndexerInterface;
1617
use Magento\Store\Model\StoreDimensionProvider;
1718
use Magento\Indexer\Model\ProcessManager;
1819
use Magento\Framework\App\DeploymentConfig;
@@ -203,26 +204,32 @@ public function executeByDimensions(array $dimensions, \Traversable $entityIds =
203204
/**
204205
* Process batch
205206
*
206-
* @param EnhancedIndexerInterface $saveHandler
207+
* @param IndexerInterface $saveHandler
207208
* @param array $dimensions
208209
* @param array $entityIds
209210
* @throws \Exception
210211
*/
211212
private function processBatch(
212-
EnhancedIndexerInterface $saveHandler,
213+
IndexerInterface $saveHandler,
213214
array $dimensions,
214215
array $entityIds
215216
) : void {
216217
$storeId = $dimensions[StoreDimensionProvider::DIMENSION_NAME]->getValue();
217218
$productIds = array_unique(
218219
array_merge($entityIds, $this->fulltextResource->getRelationsByChild($entityIds))
219220
);
221+
220222
if ($saveHandler->isAvailable($dimensions)) {
221-
$saveHandler->enableStackedActions();
222-
$saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds));
223-
$saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds));
224-
$saveHandler->triggerStackedActions();
225-
$saveHandler->disableStackedActions();
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();
229+
} else {
230+
$saveHandler->deleteIndex($dimensions, new \ArrayIterator($productIds));
231+
$saveHandler->saveIndex($dimensions, $this->fullAction->rebuildStoreIndex($storeId, $productIds));
232+
}
226233
}
227234
}
228235

0 commit comments

Comments
 (0)