Skip to content

Commit

Permalink
ENGCOM-4217: Fixed Custom option price calculation is wrong with mult…
Browse files Browse the repository at this point in the history
…i currency when option price type is percentage #19608
  • Loading branch information
sidolov authored Feb 13, 2019
2 parents 3ccc44c + a1173a2 commit 7669854
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions app/code/Magento/Catalog/Block/Product/View/Options.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,15 @@
* See COPYING.txt for license details.
*/

/**
* Product options block
*
* @author Magento Core Team <core@magentocommerce.com>
*/
namespace Magento\Catalog\Block\Product\View;

use Magento\Catalog\Model\Product;
use Magento\Catalog\Model\Product\Option\Value;

/**
* Product options block
*
* @author Magento Core Team <core@magentocommerce.com>
* @api
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @since 100.0.2
Expand Down Expand Up @@ -121,6 +120,8 @@ public function setProduct(Product $product = null)
}

/**
* Get group of option.
*
* @param string $type
* @return string
*/
Expand All @@ -142,6 +143,8 @@ public function getOptions()
}

/**
* Check if block has options.
*
* @return bool
*/
public function hasOptions()
Expand All @@ -160,7 +163,10 @@ public function hasOptions()
*/
protected function _getPriceConfiguration($option)
{
$optionPrice = $this->pricingHelper->currency($option->getPrice(true), false, false);
$optionPrice = $option->getPrice(true);
if ($option->getPriceType() !== Value::TYPE_PERCENT) {
$optionPrice = $this->pricingHelper->currency($optionPrice, false, false);
}
$data = [
'prices' => [
'oldPrice' => [
Expand Down Expand Up @@ -195,7 +201,7 @@ protected function _getPriceConfiguration($option)
],
],
'type' => $option->getPriceType(),
'name' => $option->getTitle()
'name' => $option->getTitle(),
];
return $data;
}
Expand Down Expand Up @@ -231,7 +237,7 @@ public function getJsonConfig()
//pass the return array encapsulated in an object for the other modules to be able to alter it eg: weee
$this->_eventManager->dispatch('catalog_product_option_price_configuration_after', ['configObj' => $configObj]);

$config=$configObj->getConfig();
$config = $configObj->getConfig();

return $this->_jsonEncoder->encode($config);
}
Expand Down

0 comments on commit 7669854

Please sign in to comment.