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 189
189
<argument name =" productIndexer" xsi : type =" object" >Magento\Catalog\Model\Indexer\Product\Full</argument >
190
190
</arguments >
191
191
</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 >
192
199
<type name =" Magento\ConfigurableProduct\Pricing\Price\LowestPriceOptionsProvider" >
193
200
<arguments >
194
201
<argument name =" linkedProductSelectBuilder" xsi : type =" object" >Magento\ConfigurableProduct\Model\ResourceModel\Product\LinkedProductSelectBuilder</argument >
197
204
<type name =" Magento\ConfigurableProduct\Model\ResourceModel\Product\LinkedProductSelectBuilder" >
198
205
<arguments >
199
206
<argument name =" baseSelectProcessor" xsi : type =" object" >Magento\ConfigurableProduct\Model\ResourceModel\Product\StockStatusBaseSelectProcessor</argument >
207
+ <argument name =" linkedProductSelectBuilder" xsi : type =" object" >LinkedProductSelectBuilderByIndexMinPrice</argument >
200
208
</arguments >
201
209
</type >
202
210
<type name =" Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolver" >
You can’t perform that action at this time.
0 commit comments