Understanding Shopify's automatic discount limit and how Pareto manages it
Shopify allows a maximum of 25 active automatic discounts per store, and Pareto works within this limit by merging or splitting your campaigns automatically. This guide explains when Pareto uses one discount slot versus several, how to know your optimal number of campaigns, and what to do if you need to optimize for performance.
In this article
- The 25 automatic discount limit
- When Pareto merges campaigns into one discount
- When Pareto splits a campaign into a separate discount
- Finding the optimal number of campaigns for your store
- Optimizing for performance
The 25 automatic discount limit
This is a Shopify platform limit, not a Pareto limit. Shopify allows each store to run a maximum of 25 active automatic discounts at any one time. This cap is store-wide and counts every automatic discount together, including:
- Automatic discounts you create directly in Shopify (Discounts section of the admin)
- Automatic discounts created by Pareto
- Automatic discounts created by any other app that uses Shopify Functions
Pareto's Shopify discount function method runs on Shopify Functions, so every active Pareto campaign that uses this method needs a slot within the 25. Because of this, the way Pareto packages your campaigns into Shopify discount slots matters. Pareto is built to group campaigns together wherever possible so you can run far more than 25 campaigns while still fitting inside Shopify's limit.
Note: The Pareto custom discount function method does not use Shopify Functions and is not affected by this limit. It is intended for orders with 100 or more line items and cannot combine with discount codes or other Shopify-native discounts.
When Pareto merges campaigns into one discount
Pareto does not register one Shopify discount per campaign. Instead, it groups compatible campaigns together and serves them through a single discount function. Campaigns are merged into the same function when they share the same target, the same segment, and do not require a dedicated function (see the split rules below).
Because of this grouping, you can run many campaigns while using only a handful of Shopify's 25 slots. For example, dozens of campaigns that all target products and share the same segment can run through one function.
When Pareto splits a campaign into a separate discount
Pareto creates a separate discount function only in these cases:
- Different target. Pareto uses one function per target type, and there are five: variant, products, collections, groups, and all products. Campaigns that target different levels are served by different functions.
- Shopify Plus combining discount function. On Shopify Plus stores, discount combination is handled by its own dedicated function.
- Custom priority function. If you set a custom priority order for how discounts apply, that is handled by a separate function.
- Different segment (segment here means the customer segment, not the broad customer type). Campaigns aimed at different segments are split into different functions.
Each function counts as one of your 25 slots. In practice this means slot usage is driven by how many distinct targets, segments, and special functions (Plus combining, custom priority) you use, not by the raw number of campaigns.

Finding the optimal number of campaigns for your store
There is no single correct number, but a good rule of thumb is to keep total active automatic discounts comfortably below 25 so you leave room for seasonal promotions and any discounts created by Shopify or other apps.
To check where you stand:
- Open your Shopify admin and go to Discounts.
- Filter by Automatic and Active status.
- Count every active automatic discount, including those from Pareto and other apps.
If you are close to 25, consolidate similar offers into fewer campaigns, pause promotions that have ended, and reuse a single campaign with multiple tiers instead of creating many small campaigns.
Optimizing for performance
If you run many campaigns or want the fastest, most reliable discount behavior at checkout, consider the following:
- Reuse the same target and segment. Campaigns that share a target and segment are grouped into one function, so keeping them consistent uses fewer slots.
- Consolidate similar offers. One campaign with several quantity tiers is lighter than several single-tier campaigns and easier to maintain.
- Pause or delete expired promotions so they do not add processing overhead.
- Use custom priority only when you need it. A custom priority order creates its own function, so apply it only when the default order does not work.
- Review your slot usage before big sales events to confirm you have room for temporary campaigns.
If you have already optimized and still need more slots, reach out to our support team so we can review your setup and suggest the best structure for your store.
Updated on: 07/09/2026
Thank you!