diff --git a/Helper/Entity/Product/PriceManager/ProductWithChildren.php b/Helper/Entity/Product/PriceManager/ProductWithChildren.php index 2c1f52ac1..62a298978 100755 --- a/Helper/Entity/Product/PriceManager/ProductWithChildren.php +++ b/Helper/Entity/Product/PriceManager/ProductWithChildren.php @@ -58,8 +58,17 @@ protected function getMinMaxPrices(Product $product, $withTax, $subProducts, $cu } else { $minPrice = $specialPrice[0]; } - $price = $minPrice ?? $this->getTaxPrice($product, $subProduct->getFinalPrice(), $withTax); - $basePrice = $this->getTaxPrice($product, $subProduct->getPrice(), $withTax); + + $finalPrice = $subProduct->getFinalPrice(); + $basePrice = $subProduct->getPrice(); + + if ($currencyCode !== $this->baseCurrencyCode) { + $finalPrice = $this->convertPrice($finalPrice, $currencyCode); + $basePrice = $this->convertPrice($basePrice, $currencyCode); + } + + $price = $minPrice ?? $this->getTaxPrice($product, $finalPrice, $withTax); + $basePrice = $this->getTaxPrice($product, $basePrice, $withTax); $min = min($min, $price); $original = min($original, $basePrice); $max = max($max, $price); @@ -68,14 +77,7 @@ protected function getMinMaxPrices(Product $product, $withTax, $subProducts, $cu } else { $originalMax = $original = $min = $max; } - if ($currencyCode !== $this->baseCurrencyCode) { - $min = $this->convertPrice($min, $currencyCode); - $original = $this->convertPrice($original, $currencyCode); - if ($min !== $max) { - $max = $this->convertPrice($max, $currencyCode); - $originalMax = $this->convertPrice($originalMax, $currencyCode); - } - } + return [$min, $max, $original, $originalMax]; }