18 class Row extends \Magento\Catalog\Model\Indexer\Product\Flat\AbstractAction
33 private $metadataPool;
67 $this->metadataPool = $metadataPool ?:
80 if (!isset(
$id) || empty(
$id)) {
81 throw new \Magento\Framework\Exception\LocalizedException(
82 __(
'We can\'t rebuild the index for an undefined product.')
86 $linkField = $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField();
88 $stores = $this->_storeManager->getStores();
92 $this->flatItemEraser->removeDeletedProducts($ids,
$store->getId());
97 $statusTable =
$status->getBackend()->getTable();
99 'store_id IN(0,' . (int)
$store->getId() .
')',
100 'attribute_id = ' . (int)
$status->getId(),
101 $linkField .
' = ' . (int)
$id,
103 $select = $this->_connection->select();
104 $select->from($statusTable, [
'value'])
105 ->where(implode(
' AND ', $statusConditions))
106 ->order(
'store_id DESC')
113 $this->_flatTableBuilder->build(
123 $this->flatItemEraser->deleteProductsFromStore(
$id,
$store->getId());
_isFlatTableExists($storeId)
__construct(\Magento\Framework\App\ResourceConnection $resource, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Helper\Product\Flat\Indexer $productHelper, \Magento\Catalog\Model\Product\Type $productType, TableBuilder $tableBuilder, FlatTableBuilder $flatTableBuilder, Indexer $flatItemWriter, Eraser $flatItemEraser, MetadataPool $metadataPool=null)