Guides Fix a problem
How do I stop discount codes from stacking with an automatic discount on Shopify?
Turn off stacking on the automatic sale
Shopify applies two discounts together only when "the setting on each discount allows the combination" (Shopify's discount combinations help page, checked November 9, 2026). So you change one discount, the automatic sale, and every code is covered.
- From your Shopify admin, go to Discounts.
- Click your automatic discount, for example Fall sale 20% off.
- In the Combinations section, untick Product discounts and Order discounts.
- Leave Shipping discounts ticked if a free shipping code should still work during the sale. Untick it too if it shouldn't.
- Click Save.
- Test: add a sale item to a cart, go to checkout, type one of your codes, and read the discount lines. Then leave the checkout before you pay.
You don't need to open each code. A code that allows the sale's class still can't stack, because the sale no longer allows the code's class.
What the shopper sees after the change
Shopify doesn't reject the code. It compares the two and keeps the better one: "the best discount for the customer's cart is always applied" (Shopify help).
- The code saves less than the sale. A shopper with a $100 cart under a 20% sale types WELCOME10 for 10% off. The sale stays at $20 off, and the code doesn't apply.
- The code saves more than the sale. The same shopper types VIP30 for 30% off. Shopify applies the code and drops the sale, so the shopper gets $30 off instead of $20.
Either way the shopper never gets both. When a typed code loses, Shopify can show Discount couldn't be used with your existing discounts, and its troubleshooting list names an active automatic discount as one cause.
If a big code like VIP30 should not replace the sale either, end that code before the sale starts. Each code has its own Active dates, so you set an end date on each one.
For every other pair, such as two codes together or product and order discounts on eligible stores, see the full matrix in Combine and stack discounts on Shopify.
Shopify can
- Stop every code stacking on an automatic sale with the sale's Combinations setting, because both discounts must allow the combination Source: help.shopify.com
- Apply the single discount that saves the customer more when two discounts can't combine Source: help.shopify.com
Shopify can’t
- Keep the sale when a bigger code is typed, since the better discount always wins Source: help.shopify.com
- Pause every code for a sale's dates in one place; each code has its own active dates Source: help.shopify.com
Pause every code during the sale with Discount Genie
Shopify's setting picks the better deal. It can't refuse a code with your own words, and it can't pause every code for the sale's dates in one place. Discount Genie's rejection rules do both. Discount Genie is a Shopify discount app by Shopstack, and rejection rules are available on the basic free plan, which covers up to 3 basic discounts.
- In Shopify admin, open Discount Genie and click Rejection rules, then click Create rejection rule.
- In Rule title, name it, for example Fall sale: no codes. Shoppers never see it.
- Under Code rejection rules, choose Limit codes in cart, then No codes allowed.
- Under Set reject message, write what the shopper reads, for example Our sale price is already applied. Codes are paused until Monday.
- In Active dates, enter the same start and end as your sale.
- Save the rule and test a code at checkout. Expect your message and the sale price.
No codes allowed doesn't look at a code's class, so it also removes a free shipping code. To keep one, use Reject codes based on title matching rules instead. Full options and examples: Limit and block discount codes on Shopify.
Shopify vs Discount Genie for stopping codes on a sale
| Need | Shopify | Discount Genie |
|---|---|---|
| Stop a code stacking on the automatic sale | Yes, untick Combinations on the sale | Not needed, use Shopify |
| Keep the sale when a bigger code is typed | No, the better discount wins | Yes, No codes allowed removes the code |
| Show the shopper your own message | No | Yes, Set reject message |
| Pause every code for the sale's dates in one place | No, set an end date on each code | Yes, one rule with Active dates |
| Price | Included with Shopify | Basic free plan (up to 3 basic discounts); paid plans: new stores pay $0.99/mo for the first 3 months on any monthly paid plan |
FAQ
How do I stop customers from using a discount code on top of a sale?
Open the sale's automatic discount, untick Product discounts and Order discounts under Combinations, and save. Both discounts must allow a combination, so no code can stack on the sale after that (Shopify help).
Can a customer use a discount code and an automatic discount together on Shopify?
Only when each one is set to combine with the other's class. If either one doesn't allow it, Shopify applies the single discount that saves the customer more.
Why does my discount code replace my automatic discount instead of being blocked?
Shopify always applies the best discount for the cart when two can't combine. A code worth more than the sale wins. To stop that, end the code before the sale starts, or reject codes with an app such as Discount Genie.
Can I disable all discount codes during a sale on Shopify?
Shopify has no single switch for that. You set an end date on each code. Discount Genie's No codes allowed rejection rule pauses every code for the dates you enter and shows your message.
Will free shipping codes still work during my sale?
Yes, if your automatic sale keeps Shipping discounts ticked under Combinations and the free shipping code allows the sale's class.
