A customer adds a product to their cart. Your 10% automatic discount kicks in. They paste a discount code at checkout. Then free shipping applies. Three discounts on one order — did Shopify's discount combining actually let all three stack, or did it silently drop one?
Most merchants don't know the answer until a customer complains or margins look wrong at month-end. Shopify's discount combining system has clear rules, but they're buried in settings most store owners never open. With Scripts locked for editing since April 15 and shutting down completely on June 30, 2026, the native combining system is now the only game in town for most stores. Getting it right matters.
The Three Discount Classes (And Why They Matter)
Shopify groups every discount into one of three classes: Product, Order, and Shipping. This classification determines what can combine with what.
- Product discounts — apply to specific items (e.g., 15% off a collection, buy 2 get 1 free)
- Order discounts — apply to the cart total (e.g., $20 off orders over $100)
- Shipping discounts — reduce or remove shipping costs (e.g., free shipping over $75)
Each class can be delivered as either an automatic discount or a discount code. The class matters more than the method. A 10% automatic product discount and a 10% product discount code follow the same combining rules.
Which Shopify Discounts Can Stack Together?
Shopify allows discount combining across different classes (product + order, product + shipping, order + shipping) but blocks stacking within the same class for most cases. Here's the full combining matrix:
Product + Order — Yes, these can combine. A product discount applies first to individual line items, then the order discount applies to the revised subtotal. This is the most common stacking scenario.
Product + Shipping — Yes. Your item-level discount applies, and then free shipping applies separately.
Order + Shipping — Yes. The cart-level discount reduces the subtotal, then the shipping discount handles delivery costs.
Product + Product — No. Only one product discount applies per line item. If two product discounts compete for the same item, Shopify picks the one that saves the customer more money. The other gets dropped silently.
Order + Order — These can combine if you enable it, but both discounts must have the combination setting turned on.
Shipping + Shipping — No. Only one shipping discount applies per order.
The critical detail: combining only works when both discounts have their combination settings enabled for the other's class. If Discount A allows combining with order discounts but Discount B doesn't allow combining with product discounts, they won't stack.
How to Enable Combining in Shopify Admin
- Go to Discounts in your Shopify admin
- Open the discount you want to make combinable (or create a new one)
- Scroll to the Combinations section
- Check the boxes for which discount classes this discount can combine with: product discounts, order discounts, or shipping discounts
- Save the discount
- Repeat for the other discount — both must allow the combination
If you skip step 6, nothing stacks. This is the mistake most merchants make. They enable combining on one discount and assume it's done.
The Application Order: Product → Order → Shipping
When multiple discounts do combine, Shopify applies them in a fixed sequence:
First: Product discounts reduce individual line item prices. If a $100 item has a 15% product discount, it becomes $85.
Second: Order discounts apply to the new subtotal. If the cart subtotal is now $85 and there's a $10 order discount, the subtotal drops to $75.
Third: Shipping discounts apply to the shipping cost. If free shipping is active, the customer pays $0 for delivery.
This sequence matters because discounts compound. The order discount applies to the already-reduced subtotal, not the original price. A 15% product discount plus a $10 order discount on a $100 item results in $75 — not $75 (which would be 25% off the original). In this case the math works out the same, but with percentage-based order discounts, the compounding effect can surprise you.
The Limits You Need to Know
Shopify enforces hard caps on discount stacking:
- 5 discount codes maximum per order (product and order codes combined)
- 1 shipping discount code per order
- 25 active automatic discounts at any time across your store
- 1 product discount per line item — even if you have multiple product discounts active, each item only gets one
These limits apply across the Online Store, Storefront API, and Shopify POS. Draft orders and other sales channels have different rules.
When two product discounts compete for the same line item, Shopify applies the "best discount wins" rule — whichever saves the customer more money gets applied. You don't get to choose which one takes priority.
Three Common Stacking Scenarios (Set Up Correctly)
Volume discount + free shipping
Create an automatic product discount for quantity breaks (buy 3+ get 10% off). Create a separate free shipping discount with a minimum order threshold. Enable combining on both — check "shipping discounts" on the product discount, and "product discounts" on the shipping discount. The customer gets cheaper items and free delivery. These are different classes, so they stack cleanly. If you want to set up quantity discount tiers directly on your product page without code, EasySell's order form handles that natively.
Loyalty code + automatic sale
You're running a site-wide 10% automatic order discount. A returning customer also has a loyalty code for 15% off a specific collection. The collection discount is a product discount; the site-wide sale is an order discount. Different classes. If both have combining enabled, the customer gets the collection items at 15% off, then 10% off the revised cart total. Watch your margins here — that's roughly 23.5% off those items, not 25%.
Bundle discount + coupon code
You offer "buy any 3 t-shirts, get 20% off" as an automatic product discount. A customer also has a $10 off coupon (order discount). Different classes again. Enable combining on both. The bundle discount reduces the line items first, then the $10 comes off the total. Clean and predictable.
The Margin Trap Most Merchants Miss
Stacking discounts is easy to set up. Knowing whether you should is harder.
A 20% discount doesn't reduce your profit by 20%. On a product with 50% gross margin, a 20% discount cuts your profit nearly in half. To make the same profit, you'd need to sell roughly 70% more units. Most stores don't see anywhere near that volume increase during a promotion.
When you stack a product discount with an order discount, the compounding effect accelerates margin erosion. A 15% product discount plus a 10% order discount on a $100 item with $50 COGS leaves you with $26.50 in gross profit instead of $50. That's a 47% margin hit from what felt like "just 25% off."
Before enabling any discount combination, run the math on your actual COGS. If the stacked discount pushes a product below your break-even point, the combination is costing you money on every sale.
What Shopify Functions Change
With Scripts sunsetting on June 30, 2026, Shopify Functions is the replacement for custom discount logic. Functions run on WebAssembly and integrate with the native discount system, which means they respect combining rules rather than bypassing them like Scripts sometimes did.
The practical change: if you had Scripts handling complex discount logic (tiered pricing, customer-tag-based discounts, conditional stacking), you need either a Functions-based app or a developer to rebuild that logic. The native combining system covers straightforward scenarios. Anything conditional — like "stack these two discounts only for VIP customers" — requires Functions or an app.
For stores that used Scripts purely for simple discount stacking, the native combining system is a full replacement. For anything more complex, check our Best Shopify Discount Apps to Replace Scripts roundup for apps built on Functions.
Set Up Your First Combination in 10 Minutes
Pick your two highest-value discount scenarios — likely a product discount and a shipping discount. Open both in your Shopify admin, enable combining for each other's class, and test with a dummy order. Check the order details page afterward to confirm both discounts appeared. Then run the margin math: if the stacked result still leaves you profitable, you're set. If it doesn't, tighten the conditions — raise the minimum order value, cap the discount amount, or limit which products qualify.
Discount combining is one of those features where the setup takes minutes but the margin impact lasts months. Get the rules right once, and you won't be one of the merchants wondering why their bestseller is suddenly unprofitable. For a deeper walkthrough on creating individual discounts, see our guide to creating discount codes on Shopify.