How to run a tiered shipping discount on Shopify
Rather than one all-or-nothing free shipping threshold, give something at a lower spend. Half-price shipping at $40 and free shipping at $80 gives a shopper two reasons to add one more item instead of one.
- Free shipping
Shipping half price. $36.00 more for free shipping
Free shipping unlocks at $80.00
- Spend $4050% off shippingTier 1
- Spend $80Free shippingTier 2
The shipping line drops to half at $40 and to zero at $80. Between the two rungs the cart shows what has already been earned and what the next rung costs, which is a stronger nudge than a single distant threshold.
How to set this up
- 1
Campaign > Offer type
Pick Free shipping. Despite the name, the reward can be partial.
type = free_shipping
- 2
Tier 1
Threshold $40 with a 50% reward. This discounts the shipping rate rather than removing it.
tiers[0] = minSpend 4000, percentage 50
- 3
Tier 2
Threshold $80 with a 100% reward, which is free shipping.
tiers[1] = minSpend 8000, percentage 100
- 4
Stacking
Opt into combining with product and order discounts so the shipping reward survives alongside a sale.
stacking.combinesWithProductDiscounts = true
- 5
Widgets
Turn on the cart progress bar so both rungs are visible.
- 6
Preview
Simulate at $39, $40, $79, and $80 and confirm the shipping line changes at each rung, 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 | free_shipping | type |
| Tier 1 | minSpend 4000 -> 50% | tiers[0].minSpend |
| Tier 2 | minSpend 8000 -> 100% | tiers[1].minSpend |
| Discount class | shipping | discountClasses |
| Award rule | highest satisfied tier only | tiers |
| Combine with product discounts | true | stacking.combinesWithProductDiscounts |
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
A native free shipping discount can carry one minimum purchase amount, so a single threshold works without an app.
Native free shipping is all or nothing at one threshold. Two rungs means two discounts competing for the same cart, and neither shows the shopper the ladder.
Watch out for
- Two shipping discounts never combine, so the rungs must live in one offer as tiers rather than as two offers.
- Check your shipping profile for an existing free-shipping rate that would fight with this offer.
- A product discount that lowers the subtotal can push a borderline cart back under a rung. Verify in the preview if both are running.
- Thresholds are minor units, so $80 is 8000.
Common questions
- Can a shipping discount be partial rather than free?
- Yes. A percentage reward under 100 discounts the shipping rate rather than removing it.
- Do the rungs stack?
- No, the cart gets the highest rung it qualifies for.
- Should the rungs be one offer or two?
- One offer with two tiers. Two shipping offers would not combine and one would lose.
- Does this work with express shipping?
- It applies to the rates within the offer scope. Check the preview to confirm which rates are covered.
Related examples
Free shipping once the cart passes a threshold, with a progress nudge in the cart.
Free shipping restricted to customers carrying a specific tag.
Three spend thresholds, each unlocking a bigger percentage off the order.
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.