How to set up a spend more, save more discount on Shopify
One spend goal offer holds every threshold. At $100 the cart takes 10% off, at $200 it takes 15%, at $300 it takes 20%, and the shopper always gets the highest tier their cart reaches.
- Spend goal
- Spend $10010% off the orderTier 1
- Spend $20015% off the orderTier 2
- Spend $30020% off the orderTier 3
The cart shows the saving already applied and how much more is needed for the next tier. At $115 the shopper sees 10% taken off and a line telling them $85 more unlocks 15%. The same total carries into checkout.
- $180.00
Hand-Loomed Wool Area Rug
5x7 / Qty 1
- $120.00
Ceramic Table Lamp
Qty 1
How to set this up
- 1
Campaign > Offer type
Pick Spend goal. This is an order-class discount, so the percentage comes off the order rather than off individual lines.
type = spend_goal
- 2
Target
Leave the target at all products unless the promotion is meant to be limited to part of the catalogue.
target.scope = all
- 3
Tiers
Add three tiers by spend, not by quantity. A tier sets either a spend threshold or a quantity threshold, never both.
tiers[0].minSpend = 10000
- 4
Tiers > Rewards
Set each tier to a percentage reward: 10, 15, and 20. Percentages are entered as 0 to 100, not as decimals.
tiers[n].rewardType = percentage
- 5
Rounding
Optionally round the discount so prices land on a .99 ending. Rounding is applied to the discount and always downward, so the shopper is never charged more than the plain percentage.
rewardRounding = end99
- 6
Widgets
Turn on the cart progress widget so the shopper can see the next threshold. The nudge is most of the value of this offer type.
- 7
Preview
Simulate carts at $99, $100, $199, and $300 and confirm the tier flips exactly at each threshold, then 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 |
|---|---|---|
| Offer type | spend_goal | type |
| Target | all products | target.scope |
| Tier 1 | minSpend 10000 -> 10% | tiers[0].minSpend |
| Tier 2 | minSpend 20000 -> 15% | tiers[1].minSpend |
| Tier 3 | minSpend 30000 -> 20% | tiers[2].minSpend |
| Reward type | percentage | tiers[n].rewardType |
| Discount class | order | discountClasses |
| Method | automatic | discountMethod |
| Rounding | end99 (optional) | rewardRounding |
See it built end to end
The episode is not up yet
We are recording this one. The written recipe above is complete, so you can build it today.
What Shopify does natively
Shopify supports a minimum purchase amount on an automatic order discount, so a single threshold such as "10% off over $100" needs no app at all.
Native discounts allow one minimum per discount, so three tiers means three separate discounts. They then compete rather than escalate, they each count against the limit on active discounts, and there is no cart widget telling the shopper what the next threshold is.
Watch out for
- A tier sets a spend threshold or a quantity threshold, not both. Mixing the two in one offer is rejected at save time rather than producing a surprising result later.
- Thresholds are stored in minor units, so $100 is 10000. This is the most common data-entry mistake in the whole builder.
- Only the highest satisfied tier applies. Tiers escalate, they do not accumulate.
- Two order-class discounts never combine. If a storewide order discount is already running, decide which one should win before publishing this.
Common questions
- Do the tiers add up?
- No. The cart gets the single highest tier it qualifies for, so a $300 cart gets 20% and not 10 plus 15 plus 20.
- Can I mix spend tiers and quantity tiers in one offer?
- No. Each tier is defined by spend or by quantity. If you need both mechanics, run two offers and decide how they should combine.
- Is the threshold measured before or after other discounts?
- It is measured against the cart subtotal the offer sees when it runs. Use the preview to confirm the behaviour if another discount is also active.
- Can I show the shopper how close they are?
- Yes, the cart progress widget renders the next threshold and the amount remaining.
Related examples
Bigger percentage as unit count rises, with control over how mixed variants are counted.
A spend ladder whose rungs pay out in different forms, and the rule that decides when a rung needs its own offer.
A percentage, free shipping, and a gift all unlocking at the same spend threshold.
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.