How to run more than 25 discounts on Shopify
Shopify limits how many automatic discounts can be active over the same period. The limit counts overlapping active windows rather than total discounts, so a scheduled sale reserves its slot in advance. The fix is to model fewer, richer discounts instead of many thin ones.
- Volume
- Spend goal
Nothing changes for the shopper. Both shapes produce the same prices. The difference is entirely on the merchant side: one of them stops you creating your next promotion, and the other does not.
- Built nativelyBuy 2, 3, 5, 8 as four separate discounts4 slots
- Built as one offerThe same four tiers, one offer1 slot
How to set this up
- 1
Home or Campaigns > the slot meter
Read the "N of 25" meter before you plan anything. It counts store-wide, so it includes discounts created natively in Shopify and by other apps, not just the ones you made here. Open it to see exactly which discounts are holding a slot.
slot meter = N of 25, store-wide
- 2
Discounts > Review what is active
Count discounts whose active periods overlap, not discounts in total. An ended discount is not consuming a slot, and a scheduled one already is.
- 3
Model the promotion
Replace a set of single-condition discounts with one offer carrying several tiers. Four quantity breaks are one offer with four tiers, not four discounts.
tiers = 4 tiers in 1 offer
- 4
Collapse by targeting
Where the same reward applies to several collections, target them from one offer rather than duplicating the offer per collection.
target.ids = several collection GIDs
- 5
Stagger the schedule
Two promotions that never run at the same time do not both consume a slot. Give each a start and end so their windows do not overlap.
schedule = non-overlapping windows
- 6
Use stacking instead of duplication
A percentage plus free shipping plus a gift is three offers in different classes that combine, which is far cheaper against the cap than encoding every combination as its own discount.
stacking.combinesWithProductDiscounts = true
- 7
Before you publish
Check the campaign schedule for overlap before publishing a new promotion, so you find out about the ceiling before Shopify rejects the publish.
Every setting, spelled out
These are the real configuration keys the offer is saved with, so you can check your own setup against this table field by field.
| Setting | Value | Config key |
|---|---|---|
| What the cap counts | overlapping active periods | schedule |
| Scheduled discounts | reserve their window in advance | schedule |
| Tiers per offer | many tiers, one slot | tiers |
| Targets per offer | many ids, one slot | target.ids |
| Cross-class stacking | combine instead of duplicating | stacking |
| What counts | automatic only, ACTIVE or SCHEDULED | discountMethod |
| What does not count | code discounts, any number | discountMethod |
| Scope | store-wide: native, this app, and every other app | schedule |
What Shopify does natively
The Shopify admin will tell you when a publish is rejected because too many discounts overlap, so the limit is enforced and visible at the moment you hit it.
The admin does not show you the overlap before you hit the wall, and it cannot collapse several single-condition discounts into one tiered discount, which is the only real fix.
Watch out for
- The cap is about overlapping active periods, not the total number of discounts you have ever created. Archived and ended discounts are not the problem.
- A scheduled discount reserves its window as soon as it is scheduled. A promotion planned for next month can block one you want to publish today.
- Splitting one tiered offer into one discount per tier is the fastest way to hit the ceiling, and it is exactly what the native admin encourages.
- Code discounts do NOT count. The cap is on automatic discounts only, so moving a promotion to a code frees its slot. That is a real lever when you are close to the ceiling, not a technicality.
Common questions
- What exactly does Shopify limit?
- How many discounts have active periods that overlap. Two discounts that never run at the same time do not compete for the same slot.
- Do scheduled discounts count before they start?
- Yes. Scheduling a discount reserves its window, so a future promotion can block one you want to publish now.
- How do I run a big seasonal sale without hitting the ceiling?
- Model each mechanic once with tiers and multi-target lists rather than duplicating a discount per quantity, per collection, or per combination.
- Do discount codes count against the 25?
- No. Shopify caps active AUTOMATIC discounts. Code discounts are unlimited as far as the cap is concerned, so converting an automatic promotion to a code is a legitimate way to free a slot. The slot meter lists your code discounts separately and says why they are excluded, rather than leaving you to guess.
- Do discounts made by other apps use up my slots?
- Yes. The cap is store-wide across native Shopify discounts and every app on the store. That is why the meter reads the store rather than only counting what this app created.
- Does stacking make the problem worse?
- The opposite. Combining a product discount, a shipping discount, and a gift costs three slots, while encoding every combination separately costs far more.
Related examples
Two product-class discounts on two collections, both applying in one cart, with the per-line rule spelled out.
A sale that starts and ends on schedule, with a countdown and no manual intervention.
Build a test cart and see which discounts apply, and which get dropped, before publishing.
Build this in your own store
Every recipe in this library runs on the same server-side engine, so the cart total and the checkout total agree.