Skip to content
Examples

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
What the shopper sees

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.

Same promotion, two shapesSlots consumed against the cap
  • Built nativelyBuy 2, 3, 5, 8 as four separate discounts4 slots
  • Built as one offerThe same four tiers, one offer1 slot
The same promotion modelled two ways. One row is a wall, the other is one slot.
Build it

How to set this up

  1. 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. 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. 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. 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. 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. 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. 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.

The exact settings

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.

SettingValueConfig key
What the cap countsoverlapping active periodsschedule
Scheduled discountsreserve their window in advanceschedule
Tiers per offermany tiers, one slottiers
Targets per offermany ids, one slottarget.ids
Cross-class stackingcombine instead of duplicatingstacking
What countsautomatic only, ACTIVE or SCHEDULEDdiscountMethod
What does not countcode discounts, any numberdiscountMethod
Scopestore-wide: native, this app, and every other appschedule
Without an app

What Shopify does natively

What you can do

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.

Where you need an app

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.

Before you publish

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

Stacked product and collection discounts

Two product-class discounts on two collections, both applying in one cart, with the per-line rule spelled out.

Limited time discount

A sale that starts and ends on schedule, with a countdown and no manual intervention.

Preview before publishing

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.

We use essential cookies to run this site, and, only with your permission, analytics cookies to understand traffic. Read our Cookie Policy.