Skip to content

Shopify Discount Combinations: What Actually Stacks

Which Shopify discounts combine, which pairings need eligibility or Plus, the limits on automatic discounts and codes, and how to test before launch.

How-to guidesThe diex team10 min read

You launch a free shipping promotion on Monday. On Wednesday you add a 15% off code for a collection. A customer uses both, or tries to, and you find out from a support ticket that only one applied. The rules for which Shopify discounts combine are documented, but they are easy to get wrong, especially for two product discounts on the same item. Here is what Shopify's own documentation says, what the math does when two discounts both apply, and how to confirm a combination works before you send the email.

The three discount classes decide what can combine

Every discount on Shopify belongs to one of three classes, and the class is what the combination rules operate on. Per Shopify's discount combinations documentation, the classes are:

  • Product discounts, which apply to specific items or collections
  • Order discounts, which apply to the cart subtotal
  • Shipping discounts, which apply to shipping costs

The class is not something you pick from a dropdown labeled "class." It follows from the discount type you create. An amount off products discount is a product discount. An amount off order discount is an order discount. A free shipping discount is a shipping discount. Buy X get Y is a product discount.

Two things follow from this. First, when you are planning a promotion calendar, the useful question is not "will these two discounts stack" but "what classes are these two discounts, and is that pairing allowed on my plan." Second, the order of application is fixed by class, not by which discount the customer entered first. Shopify applies product discounts first to individual items, then order discounts to the revised subtotal after product discounts, then shipping discounts last.

Which pairings every store gets, and which need eligibility

Shopify splits the pairings into three groups.

Pairing Who can use it
Order discount + free shipping discount All stores
Product discount + free shipping discount All stores
Product discount + another product discount, on separate items All stores
Product discount + order discount Eligible stores
Order discount + another order discount Eligible stores
Two product discounts on the same line item Shopify Plus only
Two shipping discounts Not supported

The Plus line is the one to read twice. Shopify states directly: "To combine multiple product discounts on the same line item, your store must be on the Shopify Plus plan." On a store that is not on Plus, two product discounts do not stack on the same item. Two product discounts can coexist in one cart, but each one lands on different lines. If both target the same t-shirt, only one applies to that t-shirt.

"Eligible stores" has a specific meaning too. To combine product with order discounts, or order with order discounts, Shopify's requirements are that your store must not use any checkout.liquid customizations or features, and that you are not using the Licensify app. The checkout.liquid condition is the one that catches older stores. If you still have a legacy checkout customization in place, these two pairings are off the table until it is removed, and nothing in the discount editor will explain why your combination is not firing.

One more constraint that is easy to miss: discounts can only be combined on orders made through the Online Store, the Storefront API, and Shopify POS. A combination you configured will not behave the same way in every order creation path.

What happens when two discounts of the same class could apply

The arithmetic matters for margin, and Shopify's rule is not what most people assume.

For two order discounts that give a percentage off, Shopify says: "If two or more order discounts that provide a percentage off are applied to the same order, then both percentages are calculated on the original subtotal." Shopify's example is a $100 subtotal with a 10% discount and a 20% discount applied, giving a total of $70.

So the percentages add rather than compound. A 10% and a 20% order discount on $100 is 30% off, not the $72 you would get by taking 20% off $90. On a small order the gap is a couple of dollars. On a calendar where a sitewide 20% sale overlaps with a 15% loyalty code, you are giving away 35% and you should price the promotion as 35%.

Product plus order is different, because the classes apply in sequence. For example, say a customer has a $100 cart where every item qualifies for a 10% product discount, and they also have a 20% order discount. The product discount takes $10 off the line items. The subtotal becomes $90. The order discount then applies to that revised subtotal, taking $18 off, for a $72 total. Same two percentages, different result, purely because of which classes they are.

When a combination is not allowed, Shopify does not reject the order. It picks a winner: "If two or more discounts are applied, but can't be combined due to the discount combination setting or the content of the cart, then the best discount for the customer's cart is always applied." With codes, the customer sees a message. Shopify's discounts FAQ gives the exact wording: "Some discount codes couldn't be used together. We applied the best combination."

That message is worth understanding properly, because merchants read it as confirmation that stacking worked. It is the opposite. It means the customer entered codes that cannot all be used together, and Shopify kept whichever set saves them the most. "Best combination" is Shopify resolving a conflict, not Shopify stacking everything. If your support inbox has customers quoting that message back to you, your combination settings are not doing what you think.

The limits that quietly break a promotion calendar

Three numbers from Shopify's documentation are worth writing on a sticky note.

25 active automatic discounts. Shopify states: "You can have a maximum of 25 active automatic discounts. This total includes app-based discounts." The same figure appears in Shopify's automatic discounts documentation. The phrase about app-based discounts is the important part. Every automatic discount created by a discount app counts against the same 25. If you run a lot of always-on automatic offers plus app discounts, you can hit the ceiling and find that a new automatic discount will not activate.

5 product or order codes, plus 1 shipping code. "Customers can use a maximum of 5 product or order discount codes and 1 shipping discount code on the same order." This is a per-order ceiling on what a customer can enter, separate from whether those codes are configured to combine.

20,000,000 codes per store. Shopify's discount codes documentation states there is a cumulative limit of 20,000,000 unique discount codes for each store, and that you need to delete codes before creating more once you reach it. The same page notes a discount code can apply to up to 100 specific customers, products, and variants. That 100 cap is the one that bites when you try to build a per-product promotion by listing products individually.

If you are planning overlapping promotions, audit your active automatic discounts against the 25 limit before the calendar gets busy, not after a launch fails.

Turn the combination on for every discount in the pair

The setting lives on each discount, and both sides have to agree. Shopify is explicit: "Multiple discounts are applied to an order only when the setting on each discount allows the combination."

To set it, open Discounts in your Shopify admin, click the discount you want to edit, find the Combinations section, select which discount classes it combines with, and save. Then do the same on the other discount. A 15% off products discount set to combine with order discounts will still not combine if the order discount it is meant to pair with has all its combination boxes unchecked.

You do not need both discounts to exist first. Shopify notes that if you are creating a new discount to combine with another new discount, you do not have to set up both simultaneously. But you do have to come back and finish the second one.

If you run quantity or spend based offers through an app, check that the app exposes the same settings. diex runs its volume, variable and spend tier discounts as Shopify Functions, and every discount carries start and end dates plus combination settings that follow Shopify's product, order and shipping discount rules. The scheduling, limits and combinations guide covers where those settings sit. The same principle applies either way: the pairing only works if both discounts allow it.

Test a combination before you announce it

Do not trust the editor. Test the cart. Here is a checklist that takes about five minutes.

  1. Write down the two classes. Not the names of the discounts, the classes. "Product + shipping" or "order + order." Check that pairing against the table above and against your plan.
  2. Confirm the setting on both discounts. Open each one, look at the Combinations section, confirm the box for the other discount's class is checked.
  3. Run a draft order sanity check. Per Shopify's draft order discounts documentation, go to Orders then Drafts, open or create a draft, and in the Payment section click Add discount. You can type a discount code there, or check Apply all eligible automatic discounts. Shopify notes that automatic discounts will not automatically apply to orders created as drafts in your admin, so you have to tick that box. Eligible discount combinations can be added to a draft order. The draft order limits are worth knowing: up to 5 discount codes per order, and shipping discount codes and Buy X get Y discount codes are not supported there.
  4. Test on the storefront too. Because shipping codes and Buy X get Y are not supported in draft orders, and because Shopify limits combinations to the Online Store, Storefront API, and POS, a real cart on your live storefront is the authoritative test for anything involving shipping or a Buy X get Y offer. Add the qualifying items, apply the codes or let the automatic discounts fire, and read the order summary line by line.
  5. Check the totals against your own arithmetic. Two percentage order discounts should both come off the original subtotal. A product discount followed by an order discount should show the order discount calculated on the reduced subtotal. If the number is different, something is not combining.
  6. Look for the conflict message. If you see "Some discount codes couldn't be used together. We applied the best combination," the combination is not working. Go back to step 2.
  7. Test the edge cart, not just the happy path. A cart where only one item qualifies for the product discount. A cart just below your spend threshold. Two product discounts targeting the same item, if you are not on Plus, so you can see which one wins.

What to do this week

Pick the two promotions you expect to overlap next month and run the seven steps above on them today. Then open Discounts, count your active automatic discounts, and see how much room you have under 25 before you add anything.

If the pairing you wanted turns out to be Plus only or blocked by eligibility, redesign rather than retry. A product discount plus a free shipping discount works on every plan and gets you a two offer promotion without touching the restricted pairings. If you were trying to layer two product discounts on the same item, a single tiered quantity discount often expresses the same offer in one discount that does not need to combine with anything.

Sources

  1. Shopify Help Center: Discount combinations
  2. Shopify Help Center: Discounts FAQ
  3. Shopify Help Center: Discount codes
  4. Shopify Help Center: Automatic discounts
  5. Shopify Help Center: Adding discounts to draft orders

Drafted with AI from the sources above and checked automatically against them and our product facts. Spotted a mistake? Email help@diex.app.

More articles

Run the promotions you actually want to run

Install diex from the Shopify App Store. One plan at $29.99 a month, billed by Shopify.