Blog

Can You Stack Discounts on Shopify? Combination Rules for Quantity Breaks and Codes

Shopify discount stack: a buy-more-save-more quantity break combined with a discount code and free shipping

Short answer: Yes. Shopify puts every discount in a product, order or shipping class, and two combine only when each has the other's class ticked under Combinations. A quantity break is a product discount, so it can share a checkout with an order-level code and free shipping. If a product or order pair cannot combine, Shopify applies whichever saves the shopper more.

Key Facts (Verified October 11, 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. The exception is shipping: product and order discounts take priority over a shipping discount they cannot combine with (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).
  • Two product discounts hit the same line item only on Shopify Plus, and only when the two discounts carry reciprocal discount tags. Percentage discounts are applied before fixed-amount ones (source).
  • Product + order and order + order combinations need an eligible store: no checkout.liquid customizations and no Licensify app. Shopify documents combinations only for orders placed through the Online Store, the Storefront API and Shopify POS (source).
  • A store can run a maximum of 25 active automatic discounts, and that total includes app-based discounts (source).

What does "stacking discounts" mean in 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.

ClassWhat it changesNative discount types in this classWhere buy-more-save-more lands
ProductIndividual line-item pricesAmount off products, Buy X get YHere. A quantity break is "Amount off products" with a "Minimum quantity of items" requirement
OrderThe cart subtotal after product discountsAmount off orderWelcome codes, sitewide sale codes, spend-threshold discounts
ShippingThe shipping rate onlyFree shippingFree 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.

Which Shopify discounts can be combined? The 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.

CombinationAllowed?What it looks like with buy-more-save-more
Product + OrderYes, on eligible stores (no checkout.liquid, no Licensify)15% off at 3 units, then a 10% WELCOME code on the reduced subtotal
Product + ShippingYes15% off at 3 units plus free shipping over $50
Order + ShippingYes10% WELCOME code plus free shipping
Product + Product, different itemsYes15% off at 3 mugs and 20% off any hoodie in the same cart
Product + Product, same itemShopify Plus only, with reciprocal discount tagsA loyalty product discount and a quantity break on the same SKU. Non-Plus stores, and Plus stores without matching tags, get the better of the two
Order + OrderYes, on eligible storesA 10% code and a 5% code, both calculated on the original subtotal rather than one on top of the other
Shipping + ShippingNeverFree shipping plus $5 off shipping. Shopify applies the better one

The same matrix applies whether each discount is a code or automatic. A code can combine with an automatic discount, two automatics can combine, and two codes can combine; the method does not matter, only the class and the ticked boxes.

Is it still true that Shopify allows only one automatic discount?

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 discount code meets an automatic discount?

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 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.

Two cases break the quiet version of that rule, both from Shopify's troubleshooting steps (checked October 11, 2026). First, a code that cannot combine with what is already in the cart can be refused with the message "Discount couldn't be used with your existing discounts"; Shopify's order of checks is both discounts' Combinations cards, then any active automatic discount, then apps that touch checkout. Second, shipping loses by rule rather than by value: product and order discounts take priority over a shipping discount they cannot combine with, because the discounted cart value is used to calculate shipping options, and the shopper sees "You already have a better combination."

A last exception, per Shopify's docs: custom discounts a staff member applies manually to an order (draft orders, POS) always apply regardless of combination settings. The docs list Shopify Scripts discounts as a second exception, but Scripts stopped executing on June 30, 2026, so any line-item script that used to layer a volume discount over your codes no longer runs; that logic has to be rebuilt as a discount with Combinations settings or as a Shopify Functions app.

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 typeClassCombines withWhat to watch
Amount off products with "Minimum quantity of items" (the native quantity break)ProductOrder, shipping, and product discounts on other itemsTiers 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 YProductOrder and shipping discountsOn 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"ShippingProduct and order discounts, never another shipping discountTick "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 discountsWhichever classes the app declares, possibly more than oneWhatever the app's own combination settings allowNot 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

How does Shopify Plus stack two product discounts on the same line item?

By default one product discount applies per line item. On Shopify Plus you can let several apply, but ticking "Product discounts" is not enough: Shopify uses discount tags, and the setup must be reciprocal. In Shopify's own example, Discount A is tagged promo and set to combine with discounts tagged clearance, while Discount B is tagged clearance and set to combine with promo. If only one side names the other, the pair falls back to best-value-wins. The Admin API exposes the same rule as productDiscountsWithTagsOnSameCartLine, which requires Plus and productDiscounts: true, and a third discount joins only if it matches every discount already in the group.

Same-line discounts are applied one after another, percentages before fixed amounts. Shopify's example: 10% off takes $100 pants to $90, then a $20 product discount takes them to $70. Applied to a quantity break, three $20 units with a 15% tier and a tagged $5-per-item loyalty discount come to $60.00 → $51.00 → $36.00, a 40% giveaway before any order code. For Buy X get Y, only the customer-gets items can take a second product discount, never the customer-buys items. Shopify's docs do not spell out how two percentage product discounts on one line are sequenced, so test that pair at checkout before relying on it.

Do quantity break apps built on Shopify Functions follow the same rules?

Yes. A Functions-based volume discount is a normal discount node with the same combinesWith flags, so it is a product discount that needs the same ticked boxes. What differs, per the Discount Function API reference:

  • One discount, several classes. A single function can return product, order and shipping savings together, for example a tier plus free shipping, which is how an app delivers a "stack" that uses one slot.
  • Limits. A store can activate a maximum of 25 discount functions, functions run concurrently with no knowledge of each other, and app automatic discounts count toward the 25 active automatic discounts.
  • Tiers resolve inside the function. The app picks one tier per line (selection strategies such as FIRST or MAXIMUM), so a whole ladder is one discount rather than one per tier.
  • Codes can be refused. An automatic discount function can reject an entered code with a custom message, which is how some apps enforce "no codes on volume pricing" more visibly than an unticked box.

Our comparisons of quantity breaks apps and volume discount apps cover the individual apps.

Which discount stacks are safe for your margin, and which are dangerous?

"Safe" means the second discount has a bounded cost that does not scale with the first. "Dangerous" means two percentages compound.

StackClassesVerdictWhy
Quantity break + free shipping over a thresholdProduct + ShippingSafeShipping is a flat cost per parcel; the tier grows units, not the shipping bill
Quantity break + free gift with purchaseProduct + Product (different item)SafeThe gift costs you its landed cost once, however much the shopper buys
Quantity break + fixed-amount order code ($5 off over $50)Product + OrderUsually safeFixed dollars shrink as a share of larger baskets; cap it with a minimum purchase amount
Quantity break + percentage order code (10% off)Product + OrderDangerousCompounds on the reduced subtotal; the worked example below shows a 23.5% total giveaway
Quantity break + sitewide sale on the same itemsProduct + Product (same item)Blocked on non-Plus, dangerous on PlusNon-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 itemsProduct + Product (same item)BlockedBuy X get Y items are ineligible for further product discounts unless you are on Plus
Two percentage order codes (10% + 5%)Order + OrderDangerousBoth apply in full on the original subtotal; 15% off on top of any tier
Quantity break + affiliate or influencer codeProduct + OrderDangerousYou pay the discount and the commission on a basket the tier already discounted

How much margin does a stacked discount cost? A worked example

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.

LineCalculationAmount
Subtotal3 × $20.00$60.00
Cost of goods45% of $60.00$27.00
Gross profit at full price$60.00 − $27.00$33.00 (55.0%)
Product discount: 15% tier15% × $60.00−$9.00 → $51.00
Order discount: 10% code10% × $51.00 (the revised subtotal, not $60)−$5.10 → $45.90
Total discount$14.10 ÷ $60.0023.5% (not 25%)
Gross profit after discounts$45.90 − $27.00$18.90 (41.2%)
Shipping discount: free shippingCarrier 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, and for how many rungs the ladder should have, how many quantity break tiers to offer.

How do you set up discount combinations 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

  1. Shopify admin → Discounts → Create discount → Amount off products.
  2. Under Method, choose Automatic discount and title it "Buy 3, save 15%" (shoppers see the title at checkout).
  3. Set Value to a percentage of 15, and under Applies to pick the specific collections the ladder covers.
  4. Under Minimum purchase requirements, choose Minimum quantity of items and enter 3.
  5. Under Combinations, tick Shipping discounts only. Leave Product discounts and Order discounts unticked.
  6. 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

  1. Discounts → Create discount → Amount off order → Method: Discount code, enter the code.
  2. Set the value (10%) and, under Minimum purchase requirements, a Minimum purchase amount if you want to keep it off tiny carts.
  3. 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.
  4. Set Eligibility, usage limits, and Save.

Step 3: add free shipping that combines with both

  1. Discounts → Create discount → Free shipping → Automatic discount.
  2. 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.
  3. Tick Exclude shipping rates over a certain amount and enter your standard rate, so express shipping stays paid.
  4. 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 do 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 & Upsells (our own app), for example, quantity-break tiers, the free gift and free-shipping progress are shown inside the drawer, and the free gift is discounted automatically by the app, with nothing for the shopper to type. That gift discount 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, 208 reviews, Built for Shopify, from $34.99/mo, checked October 11, 2026) 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.

What breaks discount stacking on Shopify?

SymptomCauseFix
A product discount and an order discount never combine, even with both boxes tickedThe store is ineligible for product + order combinations: it uses checkout.liquid customizations or the Licensify appMove to Checkout Extensibility and remove the app, then re-save the discounts
Free shipping disappears when the tier applies, and checkout says "You already have a better combination"The tier and the shipping discount do not allow each other's class, and product and order discounts take priority over shippingTick Shipping discounts on the tier and Product and Order discounts on the shipping discount, or use one app discount that returns several classes
A code is refused with "Discount couldn't be used with your existing discounts"It cannot combine with a discount already in the cart, sometimes an automatic one the shopper never addedOpen both Combinations cards, then every active automatic discount, then discount and checkout apps (Shopify's order of checks)
Two product discounts on one SKU never stack on PlusDiscount tags are missing or one-sidedTag both discounts and name the other's tag on each
Adding a code from the cart wipes the code already appliedThe theme or app posts to /cart/update.js with a discount value, which replaces all codes instead of appendingSend every code together, comma-separated; see the cart drawer discount code guide
A new tier will not activate25 active automatic discounts (or 25 discount functions) reachedDeactivate expired automatics or fold the ladder into one app discount
A volume script stopped applyingShopify Scripts stopped executing June 30, 2026Rebuild as a native discount or Functions app
The tier is missing on a post-purchase offerAutomatic discounts created in the admin do not apply on the post-purchase page (source)Price the post-purchase offer on its own; see pricing a post-purchase upsell discount
A staff-applied discount ignores your rulesManual custom discounts on draft orders and POS always applySet a staff policy; Combinations cannot block them

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 & Upsells 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 our app, rated 4.9 (40 reviews, checked October 11, 2026), 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. For tiers on the product page instead, see Oxify Quantity Breaks & BYOB, and for tier ideas, quantity break strategies for AOV.

Related: Want a worked example with real postage? See the best Shopify apps for coffee and tea brands.

Frequently Asked Questions

Can customers stack discount codes on Shopify?

Yes, within limits: up to 5 product or order discount codes and 1 shipping discount code per order, and a pair only combines if both codes have the other's class ticked under Combinations. Otherwise Shopify applies the code worth more and drops the other.

Can automatic and code discounts combine on Shopify?

Yes. An automatic discount and a discount code combine whenever the class rules allow and both discounts have the combination ticked. The old "one automatic discount, no codes on top" behaviour is gone; the current limit is 25 active automatic discounts per store.

Why isn't my discount combining?

Both discounts must have each other's class ticked under Combinations; one side is not enough. The pairing must also be legal: two shipping discounts never combine, and two product discounts on the same item combine only on Shopify Plus. If the pair cannot combine, Shopify applies the better one, so a "missing" code usually lost to a bigger automatic discount.

Does free shipping stack with percentage off?

Yes. Free shipping is a shipping discount, which combines with product and order discounts when the boxes are ticked. Shipping discounts apply last, so a percentage code never touches the shipping rate and free shipping never changes the product subtotal.

How do I stop discounts from stacking?

Open the discount under Shopify admin → Discounts, untick the classes you do not want under Combinations, and save. Because both discounts must allow a combination, unticking one side is enough; Shopify then applies whichever discount is worth more to the shopper.

Can I run BOGO and a volume discount together?

Not on the same items on a standard plan: Buy X get Y products are ineligible for further product discounts, so Shopify applies the better of the two. Run them on different collections, or use Shopify Plus, where the "customer gets" product can be made eligible to combine. Both can still combine with order and shipping discounts.

Can a quantity discount and a free gift apply together?

Yes, because they discount different items: the tier reduces the paid units and the gift is a separate line made free by a Buy X get Y or an app-applied code. Tick Product discounts on both. A code-applied gift also counts toward the 5-code limit on the order.

Does Shopify Plus change any of this?

Plus stores can combine two product discounts on the same item and can make the "customer gets" product in a Buy X get Y eligible for further product discounts. Same-item stacking also needs reciprocal discount tags on both discounts, and percentages apply before fixed amounts. Shopify Scripts stopped executing on June 30, 2026, so they no longer add discounts. The 25 automatic discount cap and best-value-wins are the same.

Why does Shopify say "Discount couldn't be used with your existing discounts"?

Shopify shows this when a code cannot combine with a discount already in the cart, sometimes an automatic one the shopper never added. Open each discount in Admin → Discounts and check that its Combinations card allows the other's class. Then review active automatic discounts, then any discount or checkout apps. Shopify's own troubleshooting steps follow that order (checked October 11, 2026).

Can a quantity discount be used with a discount code on Shopify?

Yes, if the code is an order or shipping discount. Tick Order discounts on the quantity break and Product discounts on the code. The tier applies first and the code is calculated on the reduced subtotal, so 15% plus 10% is 23.5% off. A product-class code on the same items will not stack outside Plus.

How many automatic discounts can run at once on Shopify?

A store can have 25 active automatic discounts, and app-based automatic discounts count toward that total. Shopify separately caps active discount functions at 25. A quantity-break ladder built natively uses one slot per tier, while a Functions app usually delivers the whole ladder as one discount.

Do discount app offers stack with Shopify discount codes?

Only if both sides allow it. App discounts built on Shopify Functions are ordinary product, order or shipping discounts with their own combination settings, usually exposed in the app. If a code is rejected next to an app tier, enable order-discount combinations in the app and product-discount combinations on the code.

Not ready to install?

Get the free Store Optimization Checklist

Cart friction, upsell gaps, merchandising and trust fixes — the audit we run on every store. No call, no install.

Ask AI about Oxify App