From 8991912e415214463c303ce2e8dc8e1b8d885a4e Mon Sep 17 00:00:00 2001 From: Bahlai Pavlo Date: Tue, 8 Jul 2025 09:33:39 +0300 Subject: [PATCH] magento/magento2#39542: Issue with incorrect grand total in invoice created for bundle product order with two cart price rules applied --- .../SalesRule/Model/Rule/Action/Discount/ByPercent.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php index eed37ecf42207..4b803543ee2ac 100644 --- a/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php +++ b/app/code/Magento/SalesRule/Model/Rule/Action/Discount/ByPercent.php @@ -61,10 +61,10 @@ protected function _calculate($rule, $item, $qty, $rulePercent) $_rulePct = $rulePercent / 100; - $amount = ($qty * $itemPrice - $item->getDiscountAmount()) * $_rulePct; - $baseAmount = ($qty * $baseItemPrice - $item->getBaseDiscountAmount()) * $_rulePct; - $originalAmount = ($qty * $itemOriginalPrice - $item->getDiscountAmount()) * $_rulePct; - $baseOriginalAmount = ($qty * $baseItemOriginalPrice - $item->getBaseDiscountAmount()) * $_rulePct; + $amount = ($qty * $itemPrice) * $_rulePct; + $baseAmount = ($qty * $baseItemPrice) * $_rulePct; + $originalAmount = ($qty * $itemOriginalPrice) * $_rulePct; + $baseOriginalAmount = ($qty * $baseItemOriginalPrice) * $_rulePct; $discountData->setAmount(round(floatval((string) $amount), 2)); $discountData->setBaseAmount(round(floatval((string) $baseAmount), 2));