Shopify can combine discounts — but only in the ways you explicitly permit, and the defaults are not a strategy. Stacking is either a deliberate ladder you designed or an accident that shows up in next month's margin report. Here is how the mechanism works and how to keep it on the first side of that line.
Shopify sorts discounts into classes — product discounts, order discounts, and shipping discounts. When you create a discount you choose which other classes it is allowed to combine with. Those combination settings, not the shopper, decide what stacks.
Because the behaviour depends on per-discount settings, the fastest way to know what your store currently does is to review the combinations toggles on your active discounts — not to reason about it from first principles.
Markdown plus code. A product already at 30% off, plus a 15% sitewide code, is 40.5% off — and if your gross margin was 45%, almost all of it is gone. Exclude sale items from codes, or cap codes to full-price collections.
Free shipping plus a percentage code. The percentage reduces revenue while shipping cost stays fixed, so the blended margin falls faster than the headline discount implies. Set a minimum spend on free shipping and keep it there.
Tier plus loyalty. A spend-threshold discount and a standing loyalty discount both landing on your best customers — see tiered discounts vs. loyalty programs. Give the two systems different reward currencies.
BOGO plus a code. Buy one get one free is already an effective 50% on two units. Anything on top of it is almost certainly below cost. Mark BOGO campaigns as non-combinable by default.
Gift plus everything. A free gift is cheap because it costs you the gift's cost, not a percentage. That makes it the safest thing to allow on top of other discounts — which is exactly why GWP is the better stacking partner than a second percentage.
NUO AI's funnel analytics report discount cost per campaign alongside the order values that claimed it, so an accidental stack shows up as a cost line rather than as an unexplained dip in a month-end margin report. More on controlling it: discount stacking.
Only where you allow it. Shopify groups discounts into product, order and shipping classes, and each discount has combination settings controlling which other classes it can apply alongside. Two discounts in the same class generally will not both apply, while cross-class combinations such as a product discount plus a shipping discount can.
Yes, when both are configured as combinable with the other's discount class. If the combinations are not enabled, Shopify applies a single discount rather than compounding them.
Turn off the combination settings on each discount so it cannot combine with other classes, exclude sale and already-discounted items from your codes, and mark high-cost promotions such as BOGO as non-combinable by default.
In practice they compound rather than add: a 30% markdown followed by a 15% code is roughly 40.5% off, not 45%. The total is still usually far more than you intended, which is why a floor and a test order matter more than the arithmetic.
Yes, when the second reward has a fixed cost. One percentage discount plus free shipping or a free gift makes the worst case knowable in advance, which is not true of two percentages. The safe pattern is one percentage discount, maximum, plus fixed-cost rewards on top.
Review the combinations settings on each active discount in the Shopify admin, then place a real test order that claims every discount a shopper could legitimately claim at once and compare the final total against your margin floor.