Shopify does allow discounts to combine, but only within a specific structure, and only when each discount has been explicitly told to. The defaults are off. Once you know the three classes and where the settings live, almost every stacking problem resolves in a couple of minutes.
There are three discount classes. Product, order, and shipping. Combination is governed class by class, not discount by discount.
Each discount carries its own settings. On every discount you create, you choose which other classes it may combine with. A new discount does not inherit last time's choices.
Both sides must agree. If discount A permits order discounts but discount B does not permit product discounts, they do not combine. Check both, not one.
Same-class stacking is restricted. Two product discounts generally do not stack with each other. If you need that effect, you are usually looking for one deeper discount rather than two.
Product discounts act on specific items: a percentage or amount off selected products or collections, and Buy X Get Y. Most promotional mechanics are product discounts, which is why so many of them conflict with each other.
Order discounts act on the cart subtotal: a percentage or amount off the whole order, usually with a minimum spend. Sitewide sale codes are typically order discounts.
Shipping discounts act on shipping cost: free shipping, or a discount on rates, often with a minimum.
The practical consequence: a free-shipping discount combining with a sitewide 15% order discount is a normal, supported configuration. A Buy X Get Y combining with a 20%-off-everything product discount is the case Shopify is restrictive about, because both are product discounts competing over the same lines.
Even where Shopify permits it, stacking is usually a margin mistake. Each discount was priced as though it were the only one running. A cart that collects a 20% volume tier and a 15% code is a 32% cart, and that number was nobody's plan.
There is a clarity cost too. Three offers in a cart drawer is not three times the persuasion — attention is fixed, so each additional offer dilutes the others and pushes the checkout button further down the screen. Single-offer carts routinely outperform multi-offer carts on acceptance.
And stacking destroys attribution. If several offers can fire on one cart, no offer's numbers mean anything, so you cannot decide what to keep. The better pattern is explicit precedence: decide which offer wins for which cart, and let exactly one fire. Offer priority rules do that, and they sit above Shopify's combination settings rather than replacing them.
Because combination is off by default and must be enabled on both discounts. Shopify splits discounts into product, order, and shipping classes, and each discount separately specifies which other classes it may combine with. Enabling it on one side is not enough.
Generally no. Same-class stacking is restricted, which is why a sitewide percentage off and a Buy X Get Y usually will not apply together. If you need that effect, make one offer deeper rather than trying to run both.
No. A customer-entered code is subject to the same class and combination rules as an automatic discount. It has no special precedence.
Yes — they are different classes, so a shipping discount and an order discount is a supported combination, provided both have the other's class enabled in their settings.
Because an order discount lowers the subtotal, which can drop the cart below the gift's threshold. Both discounts are working correctly and are working against each other. Either raise the threshold during the sale or make the threshold read pre-discount subtotal.
Usually not. Each discount was priced as if it were the only one running, stacking dilutes shopper attention, and it makes per-offer reporting meaningless. Explicit precedence — one offer per cart — is the more profitable pattern.
Shopify limits how many automatic discounts can be active simultaneously. Old automatic discounts left active consume that allowance, so a newly scheduled discount can silently fail to be active.