magento2 icon indicating copy to clipboard operation
magento2 copied to clipboard

magento/magento2#39542: Issue with incorrect grand total in invoice created for bundle product order with two cart price rules applied

Open pavel77718 opened this issue 9 months ago • 8 comments

Description (*)

As the author of the issue wrote, when applying two rules, one of which is with a fixed price and the second with a percentage of the price, the grand total was calculated incorrectly. Also, while I was working on the issue, edits were made by other developers and the bug did not disappear, the grand total was also calculated with an error, but the calculation error became different.

Fixed Issues (if relevant)

  1. Fixes magento/magento2#39542

Manual testing scenarios (*)

Steps to reproduce:

  1. Navigate to storefront as login in.
  2. Add to cart Sprite Yoga Companion Kit product (Gear > Fitness Equipment).
  3. Go to cart (first rule is applied).
  4. Aplly second rule by using coupon code yoga (second rule is appled).
  5. Continue placing order.
  6. Login to admin panel and go to edit page of last created order.
  7. Create invoice for order.

Expected result:

Grand total in invoice summary includes discounts for two used rules.

Contribution checklist (*)

  • [ ] Pull request has a meaningful description of its purpose
  • [ ] All commits are accompanied by meaningful commit messages
  • [ ] All new or changed code is covered with unit/integration tests (if applicable)
  • [ ] README.md files for modified modules are updated and included in the pull request if any README.md predefined sections require an update
  • [ ] All automated tests passed successfully (all builds are green)

pavel77718 avatar Jul 08 '25 07:07 pavel77718

Hi @pavel77718. Thank you for your contribution! Here are some useful tips on how you can test your changes using Magento test environment. :exclamation: Automated tests can be triggered manually with an appropriate comment:

  • @magento run all tests - run or re-run all required tests against the PR changes
  • @magento run <test-build(s)> - run or re-run specific test build(s) For example: @magento run Unit Tests

<test-build(s)> is a comma-separated list of build names.

Allowed build names are:
  1. Database Compare
  2. Functional Tests CE
  3. Functional Tests EE
  4. Functional Tests B2B
  5. Integration Tests
  6. Magento Health Index
  7. Sample Data Tests CE
  8. Sample Data Tests EE
  9. Sample Data Tests B2B
  10. Static Tests
  11. Unit Tests
  12. WebAPI Tests
  13. Semantic Version Checker

You can find more information about the builds here :information_source: Run only required test builds during development. Run all test builds before sending your pull request for review.


For more details, review the Code Contributions documentation. Join Magento Community Engineering Slack and ask your questions in #github channel.

m2-assistant[bot] avatar Jul 08 '25 07:07 m2-assistant[bot]

@magento run all tests

pavel77718 avatar Jul 08 '25 07:07 pavel77718

Failed to run the builds. Please try to re-run them later.

@magento run all tests

pavel77718 avatar Jul 08 '25 12:07 pavel77718

I changed the calculation logic so that several consecutively applied rules with Percent of product price discount are not imposed recursively in such a way that each subsequent rule is calculated relative to the total from which the percentage of the previous rule has already been subtracted. With this edit, each rule takes into account the full price of the item, then all discounts will be taken into account when calculating the grand total (as it works, for example, with Fixed amount discount). This is the old version: 2025-07-08_18-08 This is the new version: 2025-07-08_18-08_1 If simplify what is written above, I tried to fix it so that rule-1 by 10% + rule-2 by 10% = 20% if both rules must be applied sequentially

pavel77718 avatar Jul 08 '25 15:07 pavel77718

@magento run all tests

pavel77718 avatar Oct 09 '25 08:10 pavel77718

@magento run all tests

pavel77718 avatar Oct 10 '25 13:10 pavel77718

Hi @pavel77718,

Thank you for your contribution! The Magento core engineering team is working on the issue which you have addressed in this PR. Team will cherry pick the commits from your PR and may do further implementation to cover few more scenarios as needed. We will reach out to you if we need more information. For now, you can pause work on this PR. Thank you once again!

engcom-Bravo avatar Dec 10 '25 08:12 engcom-Bravo