How to stack discounts in Shopify without the checkout guessing game
How to stack discounts in Shopify comes down to settings the platform hides by default: every discount belongs to a class (product, order, or shipping), and whether two discounts combine is decided per offer, per class. Stackable puts those combine switches on every offer, so a volume tier, a spend goal, and free shipping add up exactly the way you configured them, every time.
Merchants on the Shopify forums ask the same question on repeat:
“Why does my store apply only the highest discount and ignore the rest? I need a volume discount and free shipping to work on the same order, and Shopify support says the platform just picks one discount and drops the other.”
Shopify sorts every discount into a class (product, order, or shipping) and, unless each discount explicitly opts in, refuses to combine them: when two discounts could both apply, checkout keeps one and silently drops the other. Merchants running a volume tier alongside a storewide order discount get inconsistent results with no warning, and the only way to catch it is to place a test order and read the receipt.
How Stackable solves it
Screenshot coming soon
Set the combine switches on every offer
Each offer has three switches: combine with product discounts, with order discounts, and with shipping discounts. They map one-to-one to how Shopify decides combinations at checkout, and an allocation control decides which units get a partial reward. Nothing is left to a hidden default.
Screenshot coming soon
Preview the combined math before it's live
Run a sample cart through every active offer and see the exact line-by-line total, the same calculation checkout will run.
Screenshot coming soon
Checkout applies the identical stack
The math runs inside a Shopify Function, so cart, checkout, and Shop Pay compute the same total off one engine, not separate logic to keep in sync.
The discount-class combination matrix
Shopify sorts every discount into one of three classes: product, order, or shipping. Whether two discounts combine across classes is decided per offer, and Stackable puts that switch on every offer you create.
| Combines with → | Product discounts | Order discounts | Shipping discounts |
|---|---|---|---|
| Product discounts | Combines, one product discount per cart line | Configurable per offer | Configurable per offer |
| Order discounts | Configurable per offer | Never combines | Configurable per offer |
| Shipping discounts | Configurable per offer | Configurable per offer | Never combines |
Configurable means each offer's own combine switch decides whether the two classes add up. Two product discounts can apply to the same cart, but Shopify applies at most one product discount per cart line; two on the same line is a Shopify Plus feature. Two order discounts, or two shipping discounts, never combine.
Use it like this
A skincare brand wants "3+ items get 15% off" to also unlock free shipping, without customers needing a separate code.
Create a volume-tier offer scoped to the skincare collection and switch on "Combine with shipping discounts." Create a free-shipping offer with the same 3-item threshold and switch on "Combine with product discounts."
A 3-item cart shows 15% off product totals plus free shipping at checkout, matching exactly what the cart page already displayed.
An always-on "buy 2, save 10%" volume tier should let a BFCM spend goal ($20 off orders over $150) add on top for big carts.
On the volume offer, switch on "Combine with order discounts." On the spend-goal offer, switch on "Combine with product discounts."
A qualifying cart gets both discounts totalled on one order; smaller carts still get the automatic 10%, and neither offer breaks the other.
A clearance sale (40% off) and a storewide order discount (15% off) must never combine, since running both would sell some products below cost.
Leave the combine switches off on both offers. Off is the default: every offer runs on its own unless you explicitly opt it in.
Checkout applies exactly one of the two, never both stacked, and the simulator confirms the behavior on a sample cart before the campaign goes live.
Common questions
Does Shopify support discount stacking natively?
Only within limits, and the controls are buried. Shopify can combine discounts across classes (product, order, shipping) when each discount opts in, but only one product discount applies per cart line (two on the same line is a Shopify Plus feature). Stackable puts the three combine switches on every offer, so you see and control exactly what checkout will do.
Will stacked discounts work with Shop Pay, Apple Pay, and Google Pay?
Yes. Every calculation runs inside a Shopify Function at checkout, so accelerated checkouts compute the identical stacked total as the regular checkout page.
Can I stop offers from combining?
Yes, that's the default. Every combine switch starts off, so an offer never adds on top of another discount class unless you opt it in. The simulator confirms the behavior on a sample cart before the campaign goes live.
How do I know what will actually stack on a real cart?
Run the cart simulator before going live: it shows which offers fired, which didn't, and why, with the exact combined total checkout will charge. Per-order reporting of which offers applied is on the roadmap.
Related features
Volume Discounts
Shopify quantity breaks, natively, pool every product in a collection toward one shared threshold. Stackable's tiers count the exact product, and only the variants you choose, so a chair buyer doesn't get a discount by adding three unrelated items to the cart.
Spend Goal
A spend goal discount pays off the order once a cart crosses a spend threshold you set, like spend $50 get 10% off or spend $100 get $15 off. It runs on the same server-side engine as every other Stackable offer, so the reward a shopper sees on the cart page is exactly what checkout charges, and a live progress bar shows how close they are to unlocking it.
Free Shipping
Free shipping over $75, free shipping over $100, whatever threshold fits your margins: Stackable pairs a shipping-class discount with a live cart progress bar, computed by the same server-side engine, so the number on the bar and the shipping cost at checkout can never drift apart.
Install Stackable and start with Discount Stacking
Every offer type runs on the same server-side engine, so whatever you combine, the checkout math holds.
Free plan available. No card required.