Skip to content

Commit 48fef10

Browse files
author
Cristian Partica
committed
MAGETWO-35688: [FPT] Final price of Simple Product isn't recalculated after selecting options on product page
- fix for product with multiple options, area type on basePrice vs fullPrice calculation
1 parent a2a44d4 commit 48fef10

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

app/code/Magento/Weee/Model/Observer.php

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -210,29 +210,41 @@ public function updateElementTypes(\Magento\Framework\Event\Observer $observer)
210210
*
211211
* @param \Magento\Framework\Event\Observer $observer
212212
* @return $this
213+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
213214
*/
214215
public function getPriceConfiguration(\Magento\Framework\Event\Observer $observer)
215216
{
216217
if ($this->_weeeData->isEnabled()) {
217218
$priceConfigObj=$observer->getData('configObj');
218219
$priceConfig=$priceConfigObj->getConfig();
219-
if (is_array($priceConfig)) {
220-
foreach ($priceConfig as $keyConfigs => $configs) {
221-
if (is_array($configs)) {
222-
foreach ($configs as $keyConfig => $config) {
223-
$calcPrice='finalPrice';
224-
if ($this->_taxData->priceIncludesTax() && $this->_taxData->displayPriceExcludingTax()) {
225-
$calcPrice='basePrice';
220+
try {
221+
if (is_array($priceConfig)) {
222+
foreach ($priceConfig as $keyConfigs => $configs) {
223+
if (is_array($configs)) {
224+
foreach ($configs as $keyConfig => $config) {
225+
$calcPrice = 'finalPrice';
226+
if ($this->_taxData->priceIncludesTax() && $this->_taxData->displayPriceExcludingTax()) {
227+
$calcPrice = 'basePrice';
228+
}
229+
if (array_key_exists('prices', $configs)) {
230+
$priceConfig[$keyConfigs]['prices']['weeePrice'] = [
231+
'amount' => $configs['prices'][$calcPrice]['amount'],
232+
];
233+
} else {
234+
foreach ($configs as $keyConfig => $config) {
235+
$priceConfig[$keyConfigs][$keyConfig]['prices']['weeePrice'] = [
236+
'amount' => $config['prices'][$calcPrice]['amount'],
237+
];
238+
}
239+
}
226240
}
227-
$priceConfig[$keyConfigs][$keyConfig]['prices']['weeePrice']= [
228-
'amount' => $config['prices'][$calcPrice]['amount'],
229-
];
230241
}
231-
232242
}
233243
}
244+
$priceConfigObj->setConfig($priceConfig);
245+
} catch (Exception $e) {
246+
return $this;
234247
}
235-
$priceConfigObj->setConfig($priceConfig);
236248
}
237249
return $this;
238250
}

0 commit comments

Comments
 (0)