Until now, only one product discount could be applied to a single item. Going forward, discounts grouped by tag can be combined, so overlapping campaigns apply together as-is, with no cart conflicts or workarounds.
When promotions overlapped, only one of them took effect. Working around it required custom logic on the cart side.
Overlapping promotions apply at the same time. A discount code and an automatic product discount can also be combined on the same item.
Multiple product discounts can be combined and applied to the same item.
A discount code and an automatic product discount can be combined on the same item.
For example: loyalty / seasonal / affiliate.
Decide which tagged discounts can be used together.
Discounts apply automatically according to the rules you set.
| Item | Before | After this change |
|---|---|---|
| Product discounts on the same product | Only one | Multiple can be combined |
| Discount codes × automatic product discounts | Cannot be combined on the same item | Can be combined on the same item |
| When promotions overlap | Cart conflicts / workarounds required | Applied together with no conflicts or workarounds |
| How combinations are controlled | Not documented | Tag your discounts and set combinability per tag |
| When it applies | — | Applied automatically at checkout according to the rules |
Whether discounts can stack is decided by rules between tags. In other words, tag design = discount namespace design. Unless you settle on a naming convention that mirrors how you operate — loyalty / seasonal / affiliate — your combination matrix will fall apart as campaigns pile up.
You can now stack a "discount code" and an "automatic product discount" on the same item. Existing operational rules and tracking sheets that treated coupon distribution and always-on sales as separate things need their assumptions revisited.
The changelog states plainly that discounts apply "with no cart conflicts or workarounds." Flip that around, and the machinery you built to make discounts stack (Functions, scripts, manual discounts, etc.) can become a source of double discounting . You need to design them out first when you migrate.
The application order when 20% (percentage) and $10 (fixed amount) overlap, guards for price floors or selling below cost, and caps on the number of discounts are all not documented. This is where gross margin gets hit, so verify the actual numbers in a test store before going to production.
The changelog only covers admin-level operations (tagging, combination settings, automatic application). Tag operations via the Admin API or Discount Functions, eligible plans, and rollout scope are not documented. On projects with automation or reporting requirements, confirming against Shopify's latest documentation is a must before you build.
seasonal, tag the partner campaign with affiliate , then set those two tags as combinable. Same structure as the example in the post (20% off the winter collection + $10 off boots).loyalty, give each distributed code its own campaign tag, and set the two as combinable. Using a discount code together with an automatic product discount on the same item is covered by this release.