Shopify Discount Combinations: How to Stack Discounts

A discount code does not stack on top of your automatic discount. It replaces it, and nothing on the page says so. Here is the Combinations setting that fixes it, and where the fix usually stalls. Tested on a live store.

By AjayCodeWiz · September 10, 2026 · 9 min read

The problem

You have an automatic discount running. A shopper types a code at checkout. You expect the two to add up.

They do not. The code applies, the automatic discount is removed, and Shopify says nothing about it.

I set this up on a test store to watch it happen. One product in the cart, a Harbour Cotton Tee at $40.

An automatic discount called "Autumn 10% off apparel" was already running. At checkout it took $4 off. Total savings: $4.

Shopify checkout showing an automatic 10 percent discount taking 4 off a 40 cotton tee, with total savings of 4Shopify checkout showing an automatic 10 percent discount taking 4 off a 40 cotton tee, with total savings of 4

Then I applied a $5 code called SAVE5.

The same checkout after applying the SAVE5 code, showing only the 5 off and no sign of the automatic discountThe same checkout after applying the SAVE5 code, showing only the 5 off and no sign of the automatic discount

The automatic discount is not reduced, it is removed, and total savings dropped from a possible $9 to $5. Shopify shows no warning at either step, so the shopper believes they got the better deal and you believe both promotions are running.

Why it happens

Shopify sorts every discount into one of three classes:

  • Product discount - takes money off specific items
  • Order discount - takes money off the whole order
  • Shipping discount - takes money off delivery

By default, a discount refuses to run alongside any other discount. It does not matter whether one is automatic and one is a code. It does not matter that they are different classes. The default answer is no.

When two discounts both want to apply and neither allows the other, Shopify picks one and drops the other. That is the whole mechanism.

The setting that changes this is called Combinations, and it sits on the discount itself.

Where the Combinations setting is

Open Discounts, click a discount, and scroll down. You will find a small card called Combinations with a sentence in it.

The Combinations card on a Shopify discount, reading that the discount will not combine with other product, order or shipping discountsThe Combinations card on a Shopify discount, reading that the discount will not combine with other product, order or shipping discounts

The sentence reads: "Autumn 10% off apparel won't combine with other product, order, or shipping discounts in the customer's cart."

That is the default state on every discount you create. The card looks like a status message, so it is easy to read it and move on. It is not a status message. It is a control.

There is a small plus icon in the top right corner of that card. Click it.

The Combinations popover open, showing checkboxes for Product discounts, Order discounts and Shipping discountsThe Combinations popover open, showing checkboxes for Product discounts, Order discounts and Shipping discounts

Three checkboxes, headed "Allow this discount to combine with other discounts":

  • Product discounts - Multiple can apply per order
  • Order discounts - Multiple can apply per order
  • Shipping discounts - Only one can apply per order (best value wins)

Read the small print under each one. Product and order discounts can pile up. Shipping is different: only one shipping discount ever applies, and the customer gets the best one.

Where the fix usually stalls

Here is where most people stop, and why the fix still does not work for them.

My automatic discount is a product discount. My code SAVE5 is an order discount. So I ticked Order discounts on the automatic discount, saved it, and went back to checkout.

Checkout with the code applied, still showing only the 5 off and no automatic discountCheckout with the code applied, still showing only the 5 off and no automatic discount

Nothing changed. Still $5 off. Still no automatic discount.

Both discounts have to allow each other. Permission is not one way. Ticking "Order discounts" on the product discount says I am willing to run beside an order discount. It does not give the order discount permission to run beside a product discount.

You can see this in the admin. After ticking one side, the Combinations card shows the class you allowed with a small count badge next to it. Mine read 0. That number is how many discounts on the other side are set to combine back. Zero means the pairing is still broken.

So I opened SAVE5 as well, ticked Product discounts there, and saved. The count badge went from 0 to 2.

What it looks like when it works

Same cart, same code, both sides ticked.

Checkout showing the tee reduced from 40 to 36 by the automatic discount and a further 5 off by SAVE5, with total savings of 9Checkout showing the tee reduced from 40 to 36 by the automatic discount and a further 5 off by SAVE5, with total savings of 9

Now the line item reads $40.00 struck through, "AUTUMN 10% OFF APPAREL (-$4.00)", and $36.00. Below it, the order discount takes another $5.00 off. Total savings: $9.00.

Subtotal went $40 to $36 to $31 before tax. Both discounts ran. That is the fix.

To recap the two edits:

  1. On the product discount, tick Order discounts.
  2. On the order discount, tick Product discounts.

Save both.

Why is my discount code not working?

This is the same problem wearing a different hat, and it has a visible symptom you can look for.

When a shopper already has a discount applied and tries to add a second one that is not allowed to combine, Shopify does show a message. It looks like this:

Checkout showing the message that SHIPFREE could not be used with your existing discountsCheckout showing the message that SHIPFREE could not be used with your existing discounts

"SHIPFREE couldn't be used with your existing discounts."

I got that by applying a free shipping code while a $20 order code was already on the cart. The free shipping code was set to combine with everything. The order code was set to combine with nothing. One closed door is enough.

So if a customer tells you a code "does not work", check this before you check anything else:

  • Is another discount already on that cart? An automatic discount counts.
  • Does each discount tick the other one's class?

That message only shows when the shopper adds a second code. When the conflict is between a code and an automatic discount, there is no message at all. The automatic one just disappears, which is exactly the case in the first two screenshots on this page.

Can two discount codes stack on Shopify?

Yes, but only if they are in different classes and both allow each other.

Two discount codes of the same class cannot stack, no matter what you tick. Two order discounts will never both apply. The checkbox for "Order discounts" on an order discount means combine with other order discounts on top of my own class, and in practice Shopify still keeps one order-level reduction. The reliable combinations are:

  • Product discount + order discount
  • Product discount + shipping discount
  • Order discount + shipping discount
  • Product discount + product discount, when they hit different items

If you want a "10% off plus $5 off plus free delivery" promotion, build it as three discounts in three different classes and tick every relevant box on all three. If you have not made the codes yet, start with how to create a discount code in Shopify.

The class change when you pick "All products"

This one cost me a few minutes and it is worth knowing.

I first built the automatic discount as "10% off, applies to all products". Shopify classified it as an order discount, not a product discount. The admin labelled it "Amount off order".

Then SAVE5, also an order discount, could never stack with it.

The rule: a percentage or amount off that targets all products becomes an order discount. Point the same discount at specific products or specific collections and it becomes a product discount.

If two of your discounts refuse to combine and you cannot see why, open both and read the Type line in the right hand sidebar. If they both say the same class, that is your answer, and the fix is to re-target one of them rather than to tick more boxes.

Do automatic discounts and codes combine?

They follow exactly the same rules. Automatic versus code makes no difference to combining. Only the class matters, and only the Combinations settings decide.

That surprises people because automatic discounts feel like a background setting rather than a discount. They are not. An automatic discount competes with a code the same way two codes compete.

One practical consequence: if you run a permanent automatic discount and then launch a campaign code, you have to go back and edit the automatic discount too. It will not pick up the new code on its own.

How to check what is set, without opening every discount

Each discount page has a Details list in the right hand sidebar. The last-but-one line tells you the combination state in plain words:

  • "Can't combine with other discounts" - nothing is ticked
  • "Combines with product discounts" - product is ticked
  • and so on for order and shipping

That line is faster to scan than opening the Combinations card, and it updates the moment you save. When I ticked Product discounts on SAVE5, the sidebar flipped from "Can't combine with other discounts" to "Combines with product discounts".

Discount combinations and free shipping

Shipping is the one class with a hard limit. The checkbox itself says it: only one shipping discount can apply per order, and the best value wins.

So you cannot stack a "free shipping" code on top of a "$5 off shipping" code. Shopify picks whichever is worth more to the customer and ignores the other.

You can, however, run a shipping discount alongside a product discount and an order discount at the same time, which is what most stores actually want.

There is a second, sneakier interaction between discounts and free shipping that has nothing to do with Combinations: if your free shipping comes from a shipping rate with a minimum order amount, a discount can drag the subtotal under that minimum and take the free shipping away. That one is covered in how to offer free shipping on Shopify.

What to check if it still is not stacking

Work through these in order. In my testing, the first two account for almost everything.

  1. Both sides ticked? Open both discounts, not just the one you think is failing.

    The Discounts list has a Combinations column, so you can see at a glance which ones are set to stack:

The Shopify Discounts list with a Combinations column, showing which discounts are set to combine with product, order and shipping discountsThe Shopify Discounts list with a Combinations column, showing which discounts are set to combine with product, order and shipping discounts 2. Same class? Two order discounts, or two shipping discounts, will not both apply. Check the Type line. 3. Did you save? The Combinations popover stays open while you tick. The change is not live until you press Save in the top bar. 4. Are both discounts active? An expired or deactivated discount fails with no error, exactly like a blocked one. 5. Do the conditions overlap? A product discount limited to one collection and an order discount with a minimum spend can both be set to combine and still not both apply, simply because the cart does not satisfy both. 6. Is one of them from an app? App discounts follow the same Combinations settings, but the app has to have been built to expose them. If the Combinations card is missing on an app discount, that app does not support stacking.

Product, order and shipping: which is which

Worth pinning down, because the whole system turns on it.

Product discount. Takes money off named items. In the admin it is created as "Amount off products". It shows on the line item at checkout, struck through, like "$40.00 → $36.00". Use it for "20% off jackets".

Order discount. Takes money off the cart total. Created as "Amount off order". It shows as its own row under the subtotal. Use it for "$10 off orders over $75".

Shipping discount. Created as "Free shipping". It strikes through the delivery charge. Use it for "free delivery this weekend".

Two of these are decided for you by what you target rather than by which menu item you picked, which is the behaviour described earlier. Target specific products or collections to get a product discount. Target everything to get an order discount.

The main points

  • A code does not stack on an automatic discount by default. It replaces it, with no warning.
  • The control is Combinations, on the discount page, behind a small plus icon.
  • Both discounts must tick each other's class. One side is not enough, and the count badge next to the class shows you when the other side is missing.
  • Only one shipping discount ever applies. Product and order discounts can stack.
  • A percentage off "all products" is an order discount. Point it at specific products or collections to make it a product discount.
  • When a shopper reports a code "not working", check for another discount already on the cart before anything else.

Tested end to end on a store running Shopify's current admin, with the numbers above taken straight off the checkout.

Spending too long on manual Shopify busywork?

PinFlow turns your Shopify catalog into Pinterest pins and posts them on a schedule, automatically. Same idea as the setting above, let the system handle the repetitive part.

Get PinFlow on the Shopify App Store