Skip to content

Commit f5aeb3e

Browse files
author
Dmytro Voskoboinikov
committed
Merge branch 'MAGETWO-71515' into QwertyPR-2017-11-21
2 parents 93b45f4 + 6ccf185 commit f5aeb3e

File tree

8 files changed

+28
-331
lines changed

8 files changed

+28
-331
lines changed

app/code/Magento/ConfigurableProduct/Pricing/Price/HighestPrice.php

Lines changed: 0 additions & 63 deletions
This file was deleted.

app/code/Magento/ConfigurableProduct/Pricing/Price/HighestPriceOptionsProvider.php

Lines changed: 0 additions & 91 deletions
This file was deleted.

app/code/Magento/ConfigurableProduct/Pricing/Price/HighestPriceResolver.php

Lines changed: 0 additions & 47 deletions
This file was deleted.

app/code/Magento/ConfigurableProduct/Pricing/Price/LowestPriceOptionsProvider.php

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66
namespace Magento\ConfigurableProduct\Pricing\Price;
77

8-
use Magento\Framework\App\ObjectManager;
98
use Magento\Catalog\Api\Data\ProductInterface;
109
use Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface;
1110
use Magento\Framework\App\ResourceConnection;
@@ -16,15 +15,20 @@
1615
*/
1716
class LowestPriceOptionsProvider implements LowestPriceOptionsProviderInterface
1817
{
18+
/**
19+
* @var ResourceConnection
20+
*/
21+
private $resource;
22+
1923
/**
2024
* @var LinkedProductSelectBuilderInterface
2125
*/
2226
private $linkedProductSelectBuilder;
2327

2428
/**
25-
* @var OptionsCollectionProvider
29+
* @var CollectionFactory
2630
*/
27-
private $optionsCollectionProvider;
31+
private $collectionFactory;
2832

2933
/**
3034
* Key is product id. Value is prepared product collection
@@ -37,20 +41,15 @@ class LowestPriceOptionsProvider implements LowestPriceOptionsProviderInterface
3741
* @param ResourceConnection $resourceConnection
3842
* @param LinkedProductSelectBuilderInterface $linkedProductSelectBuilder
3943
* @param CollectionFactory $collectionFactory
40-
* @param OptionsCollectionProvider|null $optionsCollectionProvider
41-
*
42-
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
4344
*/
4445
public function __construct(
4546
ResourceConnection $resourceConnection,
4647
LinkedProductSelectBuilderInterface $linkedProductSelectBuilder,
47-
CollectionFactory $collectionFactory,
48-
OptionsCollectionProvider $optionsCollectionProvider = null
48+
CollectionFactory $collectionFactory
4949
) {
50+
$this->resource = $resourceConnection;
5051
$this->linkedProductSelectBuilder = $linkedProductSelectBuilder;
51-
52-
$this->optionsCollectionProvider = $optionsCollectionProvider ?:
53-
ObjectManager::getInstance()->get(OptionsCollectionProvider::class);
52+
$this->collectionFactory = $collectionFactory;
5453
}
5554

5655
/**
@@ -59,13 +58,15 @@ public function __construct(
5958
public function getProducts(ProductInterface $product)
6059
{
6160
if (!isset($this->productsMap[$product->getId()])) {
62-
$optionsCollection = $this->optionsCollectionProvider->getCollection(
63-
$this->linkedProductSelectBuilder->build($product->getId())
61+
$productIds = $this->resource->getConnection()->fetchCol(
62+
'(' . implode(') UNION (', $this->linkedProductSelectBuilder->build($product->getId())) . ')'
6463
);
6564

66-
$this->productsMap[$product->getId()] = $optionsCollection->getItems();
65+
$this->productsMap[$product->getId()] = $this->collectionFactory->create()
66+
->addAttributeToSelect(['price', 'special_price'])
67+
->addIdFilter($productIds)
68+
->getItems();
6769
}
68-
6970
return $this->productsMap[$product->getId()];
7071
}
7172
}

app/code/Magento/ConfigurableProduct/Pricing/Price/OptionsCollectionProvider.php

Lines changed: 0 additions & 58 deletions
This file was deleted.

app/code/Magento/ConfigurableProduct/etc/di.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
<argument name="prices" xsi:type="array">
9494
<item name="regular_price" xsi:type="string">Magento\ConfigurableProduct\Pricing\Price\ConfigurableRegularPrice</item>
9595
<item name="final_price" xsi:type="string">Magento\ConfigurableProduct\Pricing\Price\FinalPrice</item>
96-
<item name="highest_price" xsi:type="string">Magento\ConfigurableProduct\Pricing\Price\HighestPrice</item>
9796
</argument>
9897
<argument name="target" xsi:type="object">Magento\Catalog\Pricing\Price\Pool</argument>
9998
</arguments>
@@ -137,11 +136,6 @@
137136
<argument name="priceResolver" xsi:type="object">ConfigurableFinalPriceResolver</argument>
138137
</arguments>
139138
</type>
140-
<type name="Magento\ConfigurableProduct\Pricing\Price\HighestPrice">
141-
<arguments>
142-
<argument name="priceResolver" xsi:type="object">Magento\ConfigurableProduct\Pricing\Price\HighestPriceResolver</argument>
143-
</arguments>
144-
</type>
145139
<virtualType name="ConfigurableRegularPriceResolver" type="Magento\ConfigurableProduct\Pricing\Price\ConfigurablePriceResolver">
146140
<arguments>
147141
<argument name="priceResolver" xsi:type="object">Magento\ConfigurableProduct\Pricing\Price\RegularPriceResolver</argument>

app/code/Magento/ConfigurableProduct/view/base/templates/product/price/final_price.phtml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ $priceModel = $block->getPriceType('regular_price');
1717
/** @var \Magento\Framework\Pricing\Price\PriceInterface $finalPriceModel */
1818
$finalPriceModel = $block->getPriceType('final_price');
1919

20-
/** @var \Magento\Framework\Pricing\Price\PriceInterface $highestPriceModel */
21-
$highestPriceModel = $block->getPriceType('highest_price');
22-
2320
$idSuffix = $block->getIdSuffix() ? $block->getIdSuffix() : '';
2421
$schema = ($block->getZone() == 'item_view') ? true : false;
2522
?>
@@ -28,17 +25,14 @@ $schema = ($block->getZone() == 'item_view') ? true : false;
2825
<span class="normal-price">
2926
<?php
3027
$arguments = [
31-
'price_id' => $block->getPriceId('product-price-' . $idSuffix),
32-
'price_type' => 'finalPrice',
28+
'display_label' => __('As low as'),
29+
'price_id' => $block->getPriceId('product-price-' . $idSuffix),
30+
'price_type' => 'finalPrice',
3331
'include_container' => true,
3432
'schema' => $schema
3533
];
3634

37-
if ($finalPriceModel->getAmount()->getValue() !== $highestPriceModel->getAmount()->getValue()) {
38-
$arguments['display_label'] = __('As low as');
39-
}
40-
41-
/* @escapeNotVerified */ echo $block->renderAmount($finalPriceModel->getAmount(), $arguments);
35+
/* @noEscape */ echo $block->renderAmount($finalPriceModel->getAmount(), $arguments);
4236
?>
4337
</span>
4438

0 commit comments

Comments
 (0)