Stacking Buy-More-Save-More With Other Shopify Discounts

Short answer: Yes, a buy-more-save-more tier can stack with other Shopify discounts, but only across discount classes. Shopify files every discount as a product, order or shipping discount, and two discounts combine only when each one has the other's class ticked under Combinations. A quantity break is a product discount, so it can sit alongside an order-level code and a free-shipping discount on the same checkout. When two discounts are not allowed to combine, Shopify keeps whichever saves the customer more and drops the other.
Key Facts (Verified September 2026)
- Shopify sorts discounts into three classes: product, order and shipping. Per Shopify's combining-discounts guide, "multiple discounts are applied to an order only when the setting on each discount allows the combination."
- Customers can use up to 5 product or order discount codes plus 1 shipping discount code on one order. Two shipping discounts never combine, and two product discounts on the same item combine only on Shopify Plus (source).
- When discounts cannot combine, "the best discount for the customer's cart is always applied." Shopify picks the winner; the customer does not choose (source).
- Discounts apply in a fixed order: product discounts first, order discounts on the revised subtotal, shipping last. So a 15% tier plus a 10% order code is 23.5% off, not 25%. Two percentage order discounts are both calculated on the original subtotal (source).
- A store can run a maximum of 25 active automatic discounts, and that total includes app-based discounts (source).
What "stacking" means inside Shopify
Every discount, whether a code, an automatic discount or one created by an app, belongs to one of three classes, and the class decides what it can share a checkout with.
| Class | What it changes | Native discount types in this class | Where buy-more-save-more lands |
|---|---|---|---|
| Product | Individual line-item prices | Amount off products, Buy X get Y | Here. A quantity break is "Amount off products" with a "Minimum quantity of items" requirement |
| Order | The cart subtotal after product discounts | Amount off order | Welcome codes, sitewide sale codes, spend-threshold discounts |
| Shipping | The shipping rate only | Free shipping | Free shipping over a threshold, flat shipping credits |
"Can I stack a quantity break with a coupon?" is really "can a product discount combine with an order discount?", and Shopify answers that with a checkbox. If quantity breaks themselves are new to you, start with the ultimate guide to quantity breaks.
The Shopify discount combination matrix
This is Shopify's combinations table rewritten around a quantity break. Every "Yes" assumes both discounts have the other's class ticked under Combinations; otherwise the pair falls back to best-value-wins.
| Combination | Allowed? | What it looks like with buy-more-save-more |
|---|---|---|
| Product + Order | Yes | 15% off at 3 units, then a 10% WELCOME code on the reduced subtotal |
| Product + Shipping | Yes | 15% off at 3 units plus free shipping over $50 |
| Order + Shipping | Yes | 10% WELCOME code plus free shipping |
| Product + Product, different items | Yes | 15% off at 3 mugs and 20% off any hoodie in the same cart |
| Product + Product, same item | Shopify Plus only | A loyalty product discount and a quantity break on the same SKU. Non-Plus stores get the better of the two |
| Order + Order | Yes | A 10% code and a 5% code, both calculated on the original subtotal rather than one on top of the other |
| Shipping + Shipping | Never | Free shipping plus $5 off shipping. Shopify applies the better one |
The "only one automatic discount" rule is stale
Older guides, and some app support docs, still say Shopify allows one automatic discount per order and that automatic discounts cannot combine with codes. That stopped being true when Shopify shipped discount combinations, announced in its Winter '23 Editions release as the ability to combine multiple discounts on a single order.
Today the rules are the matrix above, and the cap that matters is different: up to 25 active automatic discounts per store, including app-created ones. A three-tier ladder built as three automatic "Amount off products" discounts uses three slots, and once you hit the ceiling a new tier simply cannot be activated.
The other stale claim is "customers can only enter one discount code." The current limit is 5 product or order codes plus 1 shipping code per order, so use the Combinations checkboxes, not the one-code assumption, to keep codes apart.
What happens when a code and an automatic discount conflict
Say your quantity break is an automatic 15% product discount that does not allow order discounts, and a shopper types a 10% order code. Shopify does not error or ask the shopper to pick. Its rule is one sentence: "the best discount for the customer's cart is always applied." The discount that saves more on that cart wins; the other is dropped.
Two consequences follow:
- The winner changes with the cart. On a $60 basket, 15% ($9.00) beats 10% ($6.00), so the tier stays; in a cart that misses the tier, the code wins. That is also why "my code isn't working" is usually a combination setting, not a bug.
- Best-value-wins is a safety net, not a strategy. It only governs pairs that cannot combine; tick the boxes and both apply in full.
Exceptions, per Shopify's docs: custom discounts applied manually on draft orders and POS, and legacy Shopify Scripts discounts on Plus, always apply regardless of combination settings.
How each discount type behaves inside a stack
Four discount types do most of the work in a buy-more-save-more stack. Here is the class each one lands in and the rule that decides what it can sit next to.
| Discount type | Class | Combines with | What to watch |
|---|---|---|---|
| Amount off products with "Minimum quantity of items" (the native quantity break) | Product | Order, shipping, and product discounts on other items | Tiers on one collection are "same item" product discounts, so on non-Plus stores only one tier applies, which is what you want. See the tiered pricing setup guide |
| Buy X get Y | Product | Order and shipping discounts | On non-Plus stores every product in a Buy X get Y is ineligible for further product discounts, so "buy 2 get 1 free" and "15% off at 3+" on one collection never both apply. Run BOGO and the ladder on different collections (BOGO apps roundup) |
| Free shipping with "Minimum purchase amount" | Shipping | Product and order discounts, never another shipping discount | Tick "Exclude shipping rates over a certain amount" so express is not silently free. Your cost is one carrier rate per parcel, which does not grow with a fourth unit (free shipping bar guide) |
| Shopify Functions / app discounts | Whichever classes the app declares, possibly more than one | Whatever the app's own combination settings allow | Not a fourth class; checkout resolves conflicts the same way. App automatic discounts count toward the 25 cap, and if an app discount refuses to stack with your code, the fix is in the app's settings |
Safe stacks vs dangerous stacks
"Safe" means the second discount has a bounded cost that does not scale with the first. "Dangerous" means two percentages compound.
| Stack | Classes | Verdict | Why |
|---|---|---|---|
| Quantity break + free shipping over a threshold | Product + Shipping | Safe | Shipping is a flat cost per parcel; the tier grows units, not the shipping bill |
| Quantity break + free gift with purchase | Product + Product (different item) | Safe | The gift costs you its landed cost once, however much the shopper buys |
| Quantity break + fixed-amount order code ($5 off over $50) | Product + Order | Usually safe | Fixed dollars shrink as a share of larger baskets; cap it with a minimum purchase amount |
| Quantity break + percentage order code (10% off) | Product + Order | Dangerous | Compounds on the reduced subtotal; the worked example below shows a 23.5% total giveaway |
| Quantity break + sitewide sale on the same items | Product + Product (same item) | Blocked on non-Plus, dangerous on Plus | Non-Plus stores get best-value-wins; Plus stores can combine both and lose the whole margin |
| Quantity break + Buy X get Y on the same items | Product + Product (same item) | Blocked | Buy X get Y items are ineligible for further product discounts unless you are on Plus |
| Two percentage order codes (10% + 5%) | Order + Order | Dangerous | Both apply in full on the original subtotal; 15% off on top of any tier |
| Quantity break + affiliate or influencer code | Product + Order | Dangerous | You pay the discount and the commission on a basket the tier already discounted |
The margin math, line by line
Take a $60 basket: three units at $20, a 55% gross margin, a 15% tier at 3 units, a 10% welcome code, and free shipping over $50 with a $7.00 carrier rate you absorb. Every combination box is ticked. Here is what Shopify does, in the order it does it.
| Line | Calculation | Amount |
|---|---|---|
| Subtotal | 3 × $20.00 | $60.00 |
| Cost of goods | 45% of $60.00 | $27.00 |
| Gross profit at full price | $60.00 − $27.00 | $33.00 (55.0%) |
| Product discount: 15% tier | 15% × $60.00 | −$9.00 → $51.00 |
| Order discount: 10% code | 10% × $51.00 (the revised subtotal, not $60) | −$5.10 → $45.90 |
| Total discount | $14.10 ÷ $60.00 | 23.5% (not 25%) |
| Gross profit after discounts | $45.90 − $27.00 | $18.90 (41.2%) |
| Shipping discount: free shipping | Carrier rate you now pay | −$7.00 → $11.90 (25.9%) |
| Card processing (assume $1.65) | Illustrative 2.9% + 30¢ on $45.90 | −$1.65 → $10.25 (22.3%) |
Read the last line against the first: a single unit sold at full price, with the shopper paying shipping, earns $11.00 of gross profit before fees. The fully stacked three-unit order earns $11.90 before fees and $10.25 after. You shipped three times the stock for less money, and the shopper has learned that codes work on top of tiers.
Now untick one box. If the 15% tier does not allow order discounts, the code and the tier cannot combine, and Shopify applies the better one: 15% ($9.00) beats 10% ($6.00), so the subtotal is $51.00, gross profit $24.00, minus $7.00 shipping and about $1.80 in fees leaves $15.20 (29.8%). Same shopper, same basket, nearly 50% more profit, and the only thing that changed was a checkbox.
The general rule: a percentage order code compounds on what the tier left behind, so budget (tier %) + (code %) − (tier % × code %); at 15% and 10% that is 23.5%. For tier percentages that survive this, see quantity breaks vs regular discounts.
How to set up safe stacking in Shopify admin
These paths are taken from Shopify's discount type guides for amount off and free shipping discounts. The goal is a tier that combines with shipping and nothing else, a code that cannot reach the tier, and free shipping that combines with both.
Step 1: build the tier as an automatic product discount
- Shopify admin → Discounts → Create discount → Amount off products.
- Under Method, choose Automatic discount and title it "Buy 3, save 15%" (shoppers see the title at checkout).
- Set Value to a percentage of 15, and under Applies to pick the specific collections the ladder covers.
- Under Minimum purchase requirements, choose Minimum quantity of items and enter 3.
- Under Combinations, tick Shipping discounts only. Leave Product discounts and Order discounts unticked.
- Set Active dates and click Save. Repeat for the 5-unit and 10-unit tiers; each is a separate automatic discount and uses one of your 25 active slots.
Step 2: make the welcome code an order discount that cannot reach the tier
- Discounts → Create discount → Amount off order → Method: Discount code, enter the code.
- Set the value (10%) and, under Minimum purchase requirements, a Minimum purchase amount if you want to keep it off tiny carts.
- Under Combinations, tick Shipping discounts and leave Product discounts unticked; because both discounts must allow a combination, this side blocks the stack even if step 1 is wrong.
- Set Eligibility, usage limits, and Save.
Step 3: add free shipping that combines with both
- Discounts → Create discount → Free shipping → Automatic discount.
- Under Minimum purchase requirements, choose Minimum purchase amount and set it just above the 3-unit tier value, so the tier and the threshold pull in the same direction.
- Tick Exclude shipping rates over a certain amount and enter your standard rate, so express shipping stays paid.
- Under Combinations, tick both Product discounts and Order discounts, then Save.
Step 4: audit and test
On the Discounts page, open every active discount and read its Combinations card; a forgotten "Order discounts" tick on last year's sale is the usual leak. Then place a test order with three tier items and the welcome code and confirm checkout shows one discount line, not two.
Where cart-drawer and discount apps fit
Apps do not get their own rules. Anything an app does that changes a price reaches checkout as a Shopify discount, either an automatic discount it registers or a code it applies for the shopper, and both obey the classes and Combinations settings above.
In Oxify Cart Drawer & Upsell, for example, quantity-break tiers, the free gift and free-shipping progress are shown inside the drawer, and the free gift is applied through a discount code the app adds automatically. That code counts toward the 5-code limit and needs "Product discounts" ticked on your native tier if the two are meant to stack; leave it unticked and best-value-wins decides, so a $9.00 tier beats a $6.00 gift. The free shipping bar is display logic that reads your threshold; the free shipping itself is still the discount from step 3. Our guides to quantity breaks in the drawer, free gift with purchase and the drawer discount-code field cover each piece.
If your logic is genuinely conditional ("15% at 3 units unless a code is present, unless the customer is tagged wholesale"), a Functions-based app such as Regios Automatic Discounts (4.9, 177 reviews, Built for Shopify, from $34.99/mo) builds it as a flowchart; its automatic discounts still count toward the 25 cap. For a straight ladder plus a gift and a shipping bar, a cart drawer is enough; our quantity breaks apps comparison covers both.
Three scenarios: if you do this, Shopify will do that
Scenario 1: automatic tier plus a welcome code, boxes unticked
You create "Buy 3, save 15%" as an automatic product discount with only Shipping ticked, and WELCOME10 as a 10% order code. A shopper adds three $20 items and enters the code. Shopify will find the pair cannot combine and apply the tier, because $9.00 beats $6.00; the code is dropped. With two items ($40) the tier is not met, so Shopify will apply WELCOME10 and take $4.00 off. Tick Order discounts on the tier and Product discounts on the code, and Shopify will apply both: the three-item cart drops to $45.90.
Scenario 2: Buy 2 get 1 free on the same collection as the tier
You add an automatic "Buy 2 get 1 free" on the collection that carries the 15% tier, and you are not on Shopify Plus. A shopper adds three $20 items. Shopify will not stack them, because Buy X get Y items are ineligible for further product discounts; it will apply the free item ($20.00 off) and ignore the tier ($9.00).
Scenario 3: two percentage order codes on one order
WELCOME10 (10%) and SAVE5 (5%) are order codes with Order discounts ticked on each. A shopper with a $50 cart and no tier enters both. Shopify will apply both, each calculated on the original subtotal: $5.00 + $2.50 = $7.50 off, a $42.50 total, not the chained $42.75. The shopper can keep going up to five product or order codes on one order, so leave Order discounts unticked on any code you do not want joining a pile.
Launch checklist
- Rerun the worked example with your own margin and percentages; if the stacked order earns less than one full-price unit, untick a box.
- Open every active discount and read its Combinations card, including discounts created by apps.
- Count active automatic discounts against the 25 cap before adding tiers; app discounts count.
- Put minimum purchase amounts and usage limits on every percentage code that is allowed to combine with anything.
- Place a test order for each stack you allow and screenshot the checkout discount lines.
- Write the rule in one sentence on the product page and in the cart drawer, for example "Volume pricing cannot be combined with discount codes."
Show the stack in the cart, not at checkout. Oxify Cart Drawer & Upsell shows quantity-break tiers, the free gift and free-shipping progress inside the slide-out cart, so shoppers see what they have unlocked before checkout. It is rated 4.9 (37 reviews), carries the Built for Shopify badge, starts at $9.99/mo with every feature on every plan, and has a 14-day free trial. See the listing or read how the free gift with purchase feature applies its discount.