Campaigns

Multiple offers — ordering, diversity limits & fallbacks

How several offers inside one campaign are evaluated, ordered, capped by the diversity limit, and how out-of-stock fallbacks behave.

When one campaign holds several offers, the app does more than just stack them — it evaluates each offer independently, shows every qualifying offer at once, and caps how much a shopper can claim with a diversity limit. This page goes deep on that behavior: ordering, the Total Limit, the Hide added offers toggle, and the edge cases that trip merchants up.

New to multiple offers? Start with the setup primer, Managing multiple offers, which covers adding, renaming, switching, and deleting offers. This page picks up where that one leaves off and explains the evaluation rules.

Which campaign types support multiple offers

Only two campaign types let you build more than one offer inside a single campaign:

Campaign typeMultiple offers?What an "offer" is
Gift with PurchaseYesA gift set with its own products, discount, and unlock conditions
Checkout UpsellsYesAn offer set shown at checkout with its own products, discount, and conditions
Product RecommendationsNo — single offerOne condition / one product set
Auto-AddNo — single offerOne condition / one product set
Post-PurchaseNo — single offerOne condition / one product set
UnlockNo — single offerOne condition / one product set

For Product Recommendations, Auto-Add, Post-Purchase, and Unlock you get exactly one condition. If you need different products under different rules in those types, create a separate campaign for each.

How offers are evaluated

Each offer in the campaign is an independent condition. It carries its own:

  • Rules — the trigger conditions, such as a cart subtotal threshold, a collection match, or a customer tag.
  • Products — the items the shopper can claim from that offer.
  • Discount — for example 100% off (a free gift) or a percentage off.

When a shopper's cart is evaluated, the app checks every offer's rules against the cart, not just the first one. This is the key difference from Post-Purchase, which is first-wins (the first matching offer shows and the rest are skipped). In a Gift with Purchase widget or a Checkout Upsells widget, all matching offers can show at the same time. If a cart satisfies the rules for three different offers, the shopper sees products from all three.

Order in the widget follows the order in the editor. Offers appear to the shopper in the same sequence you arranged them in the offer list. Put your most important or highest-value offer first so it leads the widget. Reordering offers in the editor reorders what the shopper sees.

Offers vs. one offer with many products

Two products that should always appear together belong in one offer. Two products that should appear under different rules (different thresholds, collections, or tags) belong in separate offers. Keeping unrelated triggers in separate offers is what lets the app show the right thing to each shopper.

The diversity limit (Product Limit vs Total Limit)

The diversity limit applies to the two multi-offer types — Checkout Upsells and Gift with Purchase. It governs how many items a shopper can actually claim, and there are two distinct caps that are easy to confuse:

SettingWhat it controlsScope
Product LimitThe quantity cap for a single variant — how many of one item a shopper can addPer variant
Total Limit (diversity limit)How many distinct products the shopper may claim across the offerAcross the offer

Product Limit is a per-variant quantity cap: it stops a shopper from adding ten of the same free gift. Total Limit is the variety cap: it controls how many different products the shopper may take. Setting Total Limit to 1 means "pick any one product from this offer"; setting it to 2 means "pick up to two different products," and so on.

How the effective limit is calculated

The Total Limit you enter is not always the number that ends up applying. The app computes the maximum allowed product variety as:

maxAllowedProductsVariety = min(Total Limit, number of available products)

In words: the effective limit is the smaller of your configured Total Limit and the number of offer products that are actually in stock. Only products with at least one available variant count toward the "available products" total.

This has a direct consequence: out-of-stock products shrink the effective limit. If your Total Limit is 3 but only 2 of the offered products are in stock, the shopper can claim at most 2 distinct products — the limit collapses to match availability.

Once the shopper has added a number of distinct products equal to the effective limit, the app marks the maximum as exceeded and blocks any further adds from that offer. Existing additions stay in the cart; new ones are prevented.

Because the effective limit tracks live stock, a shopper's real cap can be lower than the number you typed into Total Limit. If merchants report that shoppers "can't add as many gifts as the limit says," check inventory first — sold-out offer products are the usual cause.

The "Hide added offers" toggle

In the campaign's widget customizer there is a Hide added offers checkbox, found under the Settings section.

PropertyValue
Setting nameHide added offers
DefaultOn (enabled)
In-app hint"If enabled, offers exceeding the diversity limit will be removed"

With Hide added offers enabled (the default), once a shopper has claimed up to the diversity limit, the offers that exceed that limit are removed from the widget. The shopper stops seeing further offers they can no longer claim, which keeps the widget tidy and avoids dangling "Add" buttons that would do nothing.

If you turn Hide added offers off, offers that exceed the limit stay visible even after the shopper hits the cap — their Add actions simply won't add anything more, because the maximum is already reached.

This setting lives in the widget customizer for the Gift with Purchase widget (both Slider and List layouts) and works alongside the related Hide out of stock products and Hide unlisted products toggles in the same Settings section.

Worked example: a tiered gift campaign with exact numbers

Build a Gift with Purchase campaign with three offers, each a separate condition triggered by a higher cart subtotal:

OfferTrigger (cart subtotal)Gift
Bronzeover $25free keychain
Silverover $75free tote bag
Goldover $150free premium item

Now follow a shopper with an $80 cart:

Evaluate every offer

The app checks all three offers against the $80 cart. Bronze (over $25) qualifies. Silver (over $75) qualifies. Gold (over $150) does not. Because evaluation is not first-wins, both Bronze and Silver show in the widget at the same time, in editor order — Bronze first, then Silver.

Apply the Total Limit

Say the Total Limit is 1. The shopper may claim one distinct gift across the qualifying offers. They add the Silver tote. The app now counts one added distinct product against the effective limit of 1, so the maximum is reached.

Hide what can no longer be claimed

With Hide added offers on (default), the Bronze offer — now beyond the diversity limit — is removed from the widget. The shopper sees a clean cart with their tote and no leftover "Add" buttons.

If you instead set the Total Limit to 2, the same $80 shopper could claim both the Bronze keychain and the Silver tote — two distinct products — and only then would the cap be reached.

Edge cases and fallbacks

Troubleshooting

SymptomLikely causeFix
Shopper can't claim as many products as the Total LimitSome offer products are out of stock, so the effective limit collapsed to min(Total Limit, available products)Restock products, or lower the Total Limit to match real availability
Offers disappear after the shopper adds a giftHide added offers is on (default) and the diversity limit was reachedExpected behavior; turn the setting off if you want the offers to stay visible
Only one offer shows when two shouldThe two offers' rules don't both match the cart, or one offer's products are all sold outRe-check each offer's trigger rules and inventory
Offers appear in the wrong sequenceWidget order follows editor orderReorder the offers in the offer list
Renaming an offer didn't change the storefrontNames are internal labels onlyEdit the offer's products, discount, or content instead

Where to go next

On this page