A discount has a class, and classes never mix unless both sides agree
Every Shopify discount belongs to one of three classes: product discounts, which target particular items or collections; order discounts, which reduce the cart subtotal; and shipping discounts, which lower delivery cost. Shopify's rule is that discounts never combine by default. Each one must be set to allow the classes it can pair with, and both discounts in a pair have to permit the combination. A promotion that works on its own can therefore be refused the moment a second one is in the basket, simply because one of the two settings was left at its default.
Not every pairing is available to every store. Order with shipping, product with shipping, and product with product on different items are documented as available to all merchants. Product with order, and order with order, are limited to eligible merchants. Two shipping discounts on the same order are not supported.
- Open both discounts and read the combination section of each, not just the one you are testing.
- Check the plan-dependent pairings against what your store is allowed.
The limits, the calculation order and what the customer sees
One order can carry up to 25 active automatic discounts and up to five product or order codes plus one shipping code. Calculation runs in a fixed order: product discounts on individual items, then order discounts on the reduced subtotal, then shipping. Stacked percentage order discounts are each worked out on the same subtotal rather than compounding, so ten percent and twenty percent on 100 is 70, not 72. When a percentage and a fixed order discount combine, the percentage is applied first.
When discounts cannot combine, Shopify gives the customer whichever discount or combination is best for their basket. A customer who types codes that cannot stack sees a message saying the code could not be used with existing discounts. A shipping discount that cannot combine with a product or order discount loses to them, and the customer may be told they already have a better combination.
- Two product discounts of equal value on the same item: either may win.
- Buy X get Y discounts have their own stacking rule on non-Plus plans: items in the promotion cannot receive further product discounts.
Settings that look unrelated but refuse a code
Combination is only one cause. A minimum purchase requirement means a code does nothing below the amount. A usage limit may count per customer, and Shopify notes a one-use-per-customer limit belongs to that discount only, so deleting a discount and recreating it with the same limit lets customers who used the old discount use the copy once. Start and end times follow the time zone set in the admin, so a code that starts at midnight starts at midnight in that zone, not the customer's. A code can be limited to products or collections, and one code can be tied to at most 100 customers, products and variants combined; going over that gives an admin-side error, not a customer message.
Two further cases cause confusion. A discount worth zero dollars or zero percent can misbehave, so use at least the smallest valid amount. And a discount's type and method cannot be edited after creation; if the type was wrong, the discount has to be deleted and recreated, which also resets its per-customer usage.
- Special characters in a code name may stop it being added to a checkout link; type the code by hand first.
- Combinations do not work on external checkouts such as social channels.
- Discounts created by a third-party app combine only if its developer supports the combinations API.
A safe first investigation using a basket matrix
Write down five baskets as rows: the items, whether the shopper is signed in, the shipping country and the codes entered, and what you expect to pay for each. Run them on a test store with the same discount settings, not on live checkout, and compare. A matrix turns a vague complaint, the code does not work, into a specific one: this basket, with these two discounts, gives this total instead of that one.
- Include one basket that should be refused, so the refusal itself is tested.
- Include a second use by the same test customer if the code has a per-customer limit.
- Record the message shown, not just the total.
What does not fit
Custom logic written into the checkout, discounts created by an app that does not support combinations, gift cards and store credit, and post-purchase offers are outside what settings can fix. Shopify notes that codes cannot be used on the post-purchase page, and a code applied at checkout does not carry into post-purchase offers.
How the paid check is accepted
The fixed job for this problem makes your discount settings produce the totals you specify. It is accepted when every basket on the agreed list gives the expected discount lines and total on a test store, a basket that should be refused is refused with the message you expect, a per-customer limit behaves as agreed, and the written settings reproduce the same totals on a fresh test store. You decide the promotion; we do not advise on offers or consent wording.
Sources and limits
- Shopify Help Center: Combining discounts Checked 2026-10-11.
- Discounts belong to the product, order or shipping class and never combine by default; both discounts in a pair must allow the combination.
- Up to 25 active automatic discounts, and up to 5 product or order codes plus 1 shipping code, can apply to one order.
- Product discounts apply first, then order discounts on the reduced subtotal, then shipping discounts.
- Stacked percentage order discounts are each figured on the same subtotal rather than compounding.
- Customers who enter codes that cannot stack see a message that the discount could not be used with existing discounts.
- Combinations work only in the Online Store, the Storefront API and Shopify POS, not on external checkouts.
- Discounts worth zero may misbehave, and a discount's type and method cannot be edited after creation.
- Third-party app discounts combine only if the app developer supports the combinations API.
- Shopify Help Center: Discount codes Checked 2026-10-11.
- A minimum purchase requirement, usage limits, active dates, and product or collection limits can restrict a code.
- A one-use-per-customer limit applies only to that specific discount, so a deleted and re-created copy can be used once by past users.
- A single code can be tied to at most 100 customers, products and variants combined.
- Start and end times follow the time zone in the Shopify admin.
- Special characters in a code name may stop it being added to the checkout URL.
- Codes cannot be used on the post-purchase page, and a code applied at checkout does not carry over to post-purchase offers.