12
12
use Algolia \AlgoliaSearch \Helper \Entity \ProductHelper ;
13
13
use Algolia \AlgoliaSearch \Helper \Entity \SuggestionHelper ;
14
14
use Algolia \AlgoliaSearch \Service \IndexNameFetcher ;
15
+ use Algolia \AlgoliaSearch \Service \Product \MissingPriceIndexHandler ;
15
16
use Magento \Catalog \Model \Category ;
16
17
use Magento \Catalog \Model \Product ;
17
18
use Magento \Catalog \Model \ResourceModel \Product \Collection ;
@@ -35,21 +36,22 @@ class Data
35
36
protected IndexerInterface $ priceIndexer ;
36
37
37
38
public function __construct (
38
- protected AlgoliaHelper $ algoliaHelper ,
39
- protected ConfigHelper $ configHelper ,
40
- protected ProductHelper $ productHelper ,
41
- protected CategoryHelper $ categoryHelper ,
42
- protected PageHelper $ pageHelper ,
43
- protected SuggestionHelper $ suggestionHelper ,
44
- protected AdditionalSectionHelper $ additionalSectionHelper ,
45
- protected Emulation $ emulation ,
46
- protected Logger $ logger ,
47
- protected ResourceConnection $ resource ,
48
- protected ManagerInterface $ eventManager ,
49
- protected ScopeCodeResolver $ scopeCodeResolver ,
50
- protected StoreManagerInterface $ storeManager ,
51
- protected IndexNameFetcher $ indexNameFetcher ,
52
- IndexerRegistry $ indexerRegistry
39
+ protected AlgoliaHelper $ algoliaHelper ,
40
+ protected ConfigHelper $ configHelper ,
41
+ protected ProductHelper $ productHelper ,
42
+ protected CategoryHelper $ categoryHelper ,
43
+ protected PageHelper $ pageHelper ,
44
+ protected SuggestionHelper $ suggestionHelper ,
45
+ protected AdditionalSectionHelper $ additionalSectionHelper ,
46
+ protected Emulation $ emulation ,
47
+ protected Logger $ logger ,
48
+ protected ResourceConnection $ resource ,
49
+ protected ManagerInterface $ eventManager ,
50
+ protected ScopeCodeResolver $ scopeCodeResolver ,
51
+ protected StoreManagerInterface $ storeManager ,
52
+ protected IndexNameFetcher $ indexNameFetcher ,
53
+ protected MissingPriceIndexHandler $ missingPriceIndexHandler ,
54
+ IndexerRegistry $ indexerRegistry
53
55
)
54
56
{
55
57
$ this ->priceIndexer = $ indexerRegistry ->get ('catalog_product_price ' );
@@ -78,7 +80,7 @@ public function deleteObjects(int $storeId, array $ids, string $indexName): void
78
80
$ this ->algoliaHelper ->deleteObjects ($ ids , $ indexName );
79
81
}
80
82
81
- /**
83
+ /**`
82
84
* @param string $query
83
85
* @param int $storeId
84
86
* @param array|null $searchParams
@@ -370,7 +372,7 @@ public function rebuildStoreProductIndex(int $storeId, array $productIds): void
370
372
return ;
371
373
}
372
374
373
- $ this ->checkPriceIndex ($ productIds );
375
+ $ this ->missingPriceIndexHandler -> refreshPriceIndex ($ productIds );
374
376
375
377
$ this ->startEmulation ($ storeId );
376
378
$ this ->logger ->start ('Indexing ' );
@@ -936,18 +938,4 @@ protected function deleteInactiveIds($storeId, $objectIds, $indexName): void
936
938
$ idsToDeleteFromAlgolia = array_diff ($ objectIds , $ dbIds );
937
939
$ this ->algoliaHelper ->deleteObjects ($ idsToDeleteFromAlgolia , $ indexName );
938
940
}
939
-
940
- /**
941
- * If the price index is stale
942
- * @param array $productIds
943
- * @return void
944
- */
945
- protected function checkPriceIndex (array $ productIds ): void
946
- {
947
- $ state = $ this ->priceIndexer ->getState ()->getStatus ();
948
- if ($ state === \Magento \Framework \Indexer \StateInterface::STATUS_INVALID ) {
949
- $ this ->priceIndexer ->reindexList ($ productIds );
950
- }
951
- }
952
-
953
941
}
0 commit comments