Skip to content
Examples

How to run a tiered free gift with purchase on Shopify

One free gift offer can carry a different gift on each spend tier. A shopper at $126 gets the $100 gift, not the $50 one and not both, because the engine awards the highest tier the cart satisfies.

  • Free gift
Gift with purchaseHighest qualifying tier wins
  • Spend $50Mini travel shampooTier 1
  • Spend $100Silk scrunchie setTier 2
  • Spend $150$25 gift cardTier 3
Three tiers, one gift awarded. The shopper at $126 is on the middle rung.
What the shopper sees

The cart shows which gift is currently unlocked and what the next one costs to reach. At $126 the scrunchie set is added at no charge and the copy tells the shopper that $24 more moves them to the gift card. They never receive two gifts at once.

Build it

How to set this up

  1. 1

    Campaign > Offer type

    Pick Free gift. One offer holds the whole ladder, not one offer per rung.

    type = free_gift

  2. 2

    Tiers > Tier 1

    Set the threshold to $50 with a free item reward, then attach the mini travel shampoo to this tier.

    tiers[0].minSpend = 5000

  3. 3

    Tiers > Tier 1 gift

    Each tier carries its own gift list. Add the primary gift plus a backup, because the backup is what keeps the tier alive if the primary sells out.

    tiers[0].giftVariantIds = [mini shampoo, backup]

  4. 4

    Tiers > Tiers 2 and 3

    Repeat at $100 for the scrunchie set and $150 for the gift card. Thresholds are in minor units, so $150 is 15000.

    tiers[2].minSpend = 15000

  5. 5

    Tiers > Labels

    Give each tier a name if you want the widget to say "Silver" or "Gold" rather than a raw amount. Labels are display only and never change the math.

    tiers[n].label = Silver / Gold / Platinum

  6. 6

    Limits

    Leave the per-order gift cap at one unless you want a shopper to be able to collect multiple units of the same gift.

    freeGift.maxGiftsPerOrder = 1

  7. 7

    Preview

    Simulate carts at $49, $50, $126, and $152 and confirm exactly one gift appears each time, and that it is the right one.

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
Offer typefree_gifttype
Tier 1minSpend 5000 -> free_itemtiers[0].rewardType
Tier 1 giftmini shampoo plus backuptiers[0].giftVariantIds
Tier 2minSpend 10000 -> free_itemtiers[1].minSpend
Tier 2 giftscrunchie set plus backuptiers[1].giftVariantIds
Tier 3minSpend 15000 -> free_itemtiers[2].minSpend
Tier 3 giftgift set plus backuptiers[2].giftVariantIds
Award rulehighest satisfied tier onlytiers[].giftVariantIds
Gift cap1 per orderfreeGift.maxGiftsPerOrder
Discount classproductdiscountClasses
Watch it

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.

Without an app

What Shopify does natively

What you can do

Shopify can give one free product through a native Buy X Get Y discount, and you can run several of them at once.

Where you need an app

Native Buy X Get Y triggers on quantity rather than spend, and each discount is independent, so three native gift discounts would all fire at $150 and hand the shopper three gifts. There is no native concept of "highest tier only", and no stock fallback when a gift variant runs out.

Before you publish

Watch out for

  • The shopper gets the highest satisfied tier only, never one gift per tier. If you actually want cumulative gifts, that is a different setup and needs separate offers.
  • Every tier must resolve to a gift. A tier with no gift list of its own falls back to the offer-level gift, so check that the fallback is the gift you intended.
  • Thresholds are stored in minor units. Entering 150 instead of 15000 creates a $1.50 tier that fires on almost every cart.
  • Gift stock is real stock. Without a backup variant on each tier, a sellout silently removes that rung of the ladder.

Common questions

Does the shopper get every gift they pass, or just one?
Just one, from the highest tier the cart satisfies. A $150 cart receives the $150 gift and not the $50 and $100 gifts as well.
Can each tier have a different gift?
Yes. Each tier carries its own list of gift variants, and each list can have backups.
What if the shopper removes an item and drops a tier?
The gift is recalculated against the new cart, so they drop to the lower tier gift, or lose the gift entirely if they fall under the first threshold.
Can I name the tiers?
Yes. Each tier takes an optional label such as Silver or Gold, which the widget shows. Labels are cosmetic and never affect which tier applies.

Related examples

Free gift on spend

One threshold, one gift added at no charge, with backups for when stock runs out.

Discount plus free gift

An order discount and a free gift on the same threshold, both applying to one cart.

Spend more, save more

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.

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