This fixes the discount_ calculation logic and promotion tax inclusiveness calculation (#12960)

* This fixes the discount_ calculation logic

* This fixes the adjustment to be handled as a subtotal value in every calculation and applies the tax inclusive logic on the promotion value itself

* Added some testcases and revoked some changes to improve testing output

* Fixed a test case based on feedback

* Corrected promotion/admin test cases

* Corrected cart/store test case

* Improved cart/store test cases for more robust promotion testing considering tax inclusion flags

* Remove unnessary changes as adjustments now automatically are subtotals and therefore the tax inclusive flag does not need to be applied again

* Remove adjustments->is_tax_inclusive usage everywhere

* Migration script to remove is_tax_inclusive in cart line item adjustment

* Forgot to adjust one more testcase

* Corrections based on fPolic feedback

* Refactored PR to consider feedback from oliver

* Added more testcases for promotion in cart

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
scherddel
2025-07-31 13:27:43 +02:00
committed by GitHub
co-authored by Oli Juhl
parent 75320e744f
commit 1bdf602f1c
11 changed files with 1076 additions and 119 deletions
@@ -35,6 +35,7 @@ export const defaultStoreCartFields = [
"promotions.id",
"promotions.code",
"promotions.is_automatic",
"promotions.is_tax_inclusive",
"promotions.application_method.value",
"promotions.application_method.type",
"promotions.application_method.currency_code",
@@ -77,6 +78,7 @@ export const defaultStoreCartFields = [
"items.adjustments.code",
"items.adjustments.promotion_id",
"items.adjustments.amount",
"items.adjustments.is_tax_inclusive",
"customer.id",
"customer.email",
"customer.groups.id",