44 private $tableResolver;
49 private $dimensionCollectionFactory;
70 TableResolver $tableResolver =
null,
77 $this->dimensionCollectionFactory = $dimensionCollectionFactory
100 $catalogProductIndexPriceSelect = [];
102 foreach ($this->dimensionCollectionFactory->create() as $dimensions) {
104 $this->websiteId ===
null ||
107 $this->tableResolver->resolve(
'catalog_product_index_price', $dimensions),
108 [
'entity_id',
'customer_group_id',
'website_id',
'min_price']
113 $catalogProductIndexPriceSelect[] =
$select;
117 $catalogProductIndexPriceUnionSelect =
$connection->select()->union($catalogProductIndexPriceSelect);
120 foreach (
$connection->fetchAll($catalogProductIndexPriceUnionSelect) as
$row) {
137 $websiteId = $this->storeManager->getStore(
$storeId)->getWebsiteId();
139 $this->websiteId = $websiteId;
141 $this->websiteId =
null;
143 if (!isset($priceProductsIndexData[$websiteId])) {
164 $catalogCategoryProductTableName = $this->tableResolver->resolve(
167 $catalogCategoryProductDimension
172 [$catalogCategoryProductTableName],
173 [
'category_id',
'product_id',
'position',
'store_id']
202 $identifierField = $this->metadataPool->getMetadata(CategoryInterface::class)->getIdentifierField();
205 [
'c_p' => $this->
getTable(
'catalog_category_product')],
208 [
'c_e' => $this->
getTable(
'catalog_category_entity')],
209 'c_p.category_id = c_e.' . $identifierField,
212 $connection->quoteInto(
'c_e.path LIKE ?',
'%/' . $categoryId .
'/%')
214 'c_p.category_id = ?',
_getCatalogProductPriceData($productIds=null)
getMovedCategoryProductIds($categoryId)
getCategoryProductIndexData($storeId=null, $productIds=null)
getPriceIndexData($productIds, $storeId)
__construct(Context $context, StoreManagerInterface $storeManager, MetadataPool $metadataPool, $connectionName=null, TableResolver $tableResolver=null, DimensionCollectionFactory $dimensionCollectionFactory=null)