Skip to content

Release new version (beta)#389

Merged
BramKaashoek merged 1 commit into
mainfrom
changeset-release/main
May 13, 2026
Merged

Release new version (beta)#389
BramKaashoek merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@labdigital/commercetools-mock@3.0.0-beta.4

Minor Changes

  • #388 f053fb9 Thanks @BramKaashoek! - Add support for External and ExternalAmount tax modes on carts.

    New behavior

    • External tax modeLineItem, CustomLineItem, and shipping methods can now carry an externalTaxRate:
      • createCart honors LineItemDraft.externalTaxRate, CustomLineItemDraft.externalTaxRate, and CartDraft.externalTaxRateForShippingMethod.
      • addLineItem, addCustomLineItem, and setShippingMethod/setCustomShippingMethod accept externalTaxRate.
      • New update actions: setLineItemTaxRate, setCustomLineItemTaxRate, setShippingMethodTaxRate.
    • ExternalAmount tax mode — explicit gross amounts can be supplied per item and at the cart level:
      • New update actions: setLineItemTaxAmount, setCustomLineItemTaxAmount, setShippingMethodTaxAmount, setCartTotalTax.
      • In this mode the cart's taxedPrice is whatever setCartTotalTax last set; it is no longer aggregated from line items. taxedShippingPrice continues to mirror shippingInfo.taxedPrice.
    • All tax calculations now respect cart.taxRoundingMode (HalfEven / HalfUp / HalfDown) instead of always using Math.round.

    Cart total recomputation after update actions

    CartUpdateHandler.apply now recomputes cart.taxedPrice and cart.taxedShippingPrice after every update batch (except in ExternalAmount mode, where the cart total is authoritative via setCartTotalTax).

    This fixes a pre-existing latent bug: previously these fields were only computed once during create() and were never refreshed after update actions, so e.g. running setShippingMethod after cart creation would leave the cart-level aggregate stale. It didn't show up before because LineItem.taxedPrice was never populated in any mode, so the aggregate had no contributors that could drift. With the new tax-mode work, line items and custom line items now actually carry taxedPrice, which made the gap observable and required fixing.

@BramKaashoek BramKaashoek merged commit f408ac4 into main May 13, 2026
@BramKaashoek BramKaashoek deleted the changeset-release/main branch May 13, 2026 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant