File tree Expand file tree Collapse file tree 2 files changed +51
-0
lines changed
app/code/Magento/ConfigurableProduct
Model/ResourceModel/Product Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Copyright © Magento, Inc. All rights reserved.
4+ * See COPYING.txt for license details.
5+ */
6+ namespace Magento \ConfigurableProduct \Model \ResourceModel \Product ;
7+
8+ use Magento \Catalog \Model \ResourceModel \Product \LinkedProductSelectBuilderInterface ;
9+
10+ /**
11+ * Used in Magento\ConfigurableProduct\Pricing\Price\LowestPriceOptionsProvider
12+ * to provide queries to select configurable product option with lowest price
13+ *
14+ * @see app/code/Magento/ConfigurableProduct/etc/di.xml
15+ */
16+ class LinkedProductSelectBuilderComposite implements LinkedProductSelectBuilderInterface
17+ {
18+ /**
19+ * @var LinkedProductSelectBuilderInterface[]
20+ */
21+ private $ linkedProductSelectBuilder ;
22+
23+ /**
24+ * @param LinkedProductSelectBuilderInterface[] $linkedProductSelectBuilder
25+ */
26+ public function __construct ($ linkedProductSelectBuilder )
27+ {
28+ $ this ->linkedProductSelectBuilder = $ linkedProductSelectBuilder ;
29+ }
30+
31+ /**
32+ * {@inheritdoc}
33+ */
34+ public function build ($ productId )
35+ {
36+ $ selects = [];
37+ foreach ($ this ->linkedProductSelectBuilder as $ productSelectBuilder ) {
38+ $ selects = array_merge ($ selects , $ productSelectBuilder ->build ($ productId ));
39+ }
40+
41+ return $ selects ;
42+ }
43+ }
Original file line number Diff line number Diff line change 189189 <argument name =" productIndexer" xsi : type =" object" >Magento\Catalog\Model\Indexer\Product\Full</argument >
190190 </arguments >
191191 </type >
192+ <virtualType name =" LinkedProductSelectBuilderByIndexMinPrice" type =" Magento\ConfigurableProduct\Model\ResourceModel\Product\LinkedProductSelectBuilderComposite" >
193+ <arguments >
194+ <argument name =" linkedProductSelectBuilder" xsi : type =" array" >
195+ <item name =" indexPrice" xsi : type =" object" >Magento\Catalog\Model\ResourceModel\Product\Indexer\LinkedProductSelectBuilderByIndexPrice</item >
196+ </argument >
197+ </arguments >
198+ </virtualType >
192199 <type name =" Magento\ConfigurableProduct\Pricing\Price\LowestPriceOptionsProvider" >
193200 <arguments >
194201 <argument name =" linkedProductSelectBuilder" xsi : type =" object" >Magento\ConfigurableProduct\Model\ResourceModel\Product\LinkedProductSelectBuilder</argument >
197204 <type name =" Magento\ConfigurableProduct\Model\ResourceModel\Product\LinkedProductSelectBuilder" >
198205 <arguments >
199206 <argument name =" baseSelectProcessor" xsi : type =" object" >Magento\ConfigurableProduct\Model\ResourceModel\Product\StockStatusBaseSelectProcessor</argument >
207+ <argument name =" linkedProductSelectBuilder" xsi : type =" object" >LinkedProductSelectBuilderByIndexMinPrice</argument >
200208 </arguments >
201209 </type >
202210 <type name =" Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolver" >
You can’t perform that action at this time.
0 commit comments