Free Gift: spend and get a product free
Give a product free once the cart reaches a spend goal, for example "spend $100, get product X free". You choose the gift, and the storefront widget adds it to the cart automatically once the shopper qualifies.
"Spend $100, get product X free" is its own campaign type. You set a spend threshold and choose the gift product; when the shopper's qualifying cart total reaches the threshold, the gift is priced to free. It is triggered by spend, not by quantity, and it is a separate type from Cart Goal, which gives a percentage or amount off the whole order rather than a free product.
For a ladder of gifts that gets better the more the shopper spends ("spend $50 for gift A, spend $100 for gift B"), see the tiered gift with purchase page. This page covers a single spend threshold with one gift.
What you set
| Field | Choices | Default |
|---|---|---|
| Spend to unlock | A money amount in your store currency | None (you must set it) |
| Gift | One primary gift, plus optional backups | None |
| Gifts per order | A whole number, 1 or more | 1 |
The spend threshold is measured on your targeted items and excludes any gift lines, so a gift can never fund its own threshold. Gifts per order is an anti-abuse cap on how many gift units are priced to free. Whichever chosen gift is present in the cart is discounted 100 percent, up to that cap.
You have to set a spend amount
A blank spend amount is blocked, so a campaign can never go live without a threshold. Setting the amount to 0 is allowed on purpose: it means the gift is given on any purchase, with no minimum.
Choosing the gift: primary and backups
You pick the gift as a product, so it shows with its name and image rather than a bare variant code. The first gift you choose is the primary gift. You can then add one or more backups. Backups exist for one reason: stock. The storefront gives the primary gift when it is in stock, and only falls back to a backup when the primary is unavailable, trying each backup in the order you listed them.
Backups are a stock fallback, not a shopper picker
The shopper does not choose between your gifts. They always get the primary while it is in stock; a backup is only ever used when the primary (and any earlier backup) is out of stock. This keeps the promise deliverable without ever promising a gift you cannot ship.
Which variant is the gift
A gift is always one specific variant. When you choose a gift product in the picker, you also tick the variants you want to include. What you see next depends on how many you ticked:
- A product with a single variant resolves on its own. No variant control appears.
- If you ticked exactly one variant, it is shown by name so you can always see which variant is the gift.
- If you ticked more than one variant, a "Which variant?" dropdown appears so you can pick exactly one to give.
To offer a different variant, tick it in the picker
The "Which variant?" dropdown only lists the variants you ticked when you chose the product. So if the variant you want is not in the dropdown, reopen the picker and tick it (or tick the whole product to include them all), then pick it from the dropdown. This is by design: the dropdown is a chooser among the variants you selected, not the whole catalog.
Gifts per order
Gifts per order caps how many gift units are priced to free on a single order, so a shopper cannot add ten copies of the gift and get them all free. It defaults to 1, which is what most free-gift promotions want. Set it higher only if you deliberately want to give more than one free unit per order.
Do not pick the same gift twice
If you set the same variant as both the primary and a backup (or as two backups), the builder shows a warning. A duplicate can never do anything useful, because it is the same gift, so remove it and choose a different product or variant.
How the gift is added and removed
The storefront widget adds the gift to the cart automatically once the threshold is crossed, and removes it automatically if the cart drops back below the threshold, so a cart never keeps a gift it no longer qualifies for. When the gift is added, a small pop-up tells the shopper their gift is in the cart; if they dismiss it, a floating gift button stays on the page so they can reopen the message.
Express checkouts from a product page skip the gift
The gift is added in the cart, so a shopper who uses express checkout straight from a product page (Shop Pay, PayPal, Buy it now) never touches the cart and will not receive the gift. The gift pop-up and floating button exist partly to encourage a cart visit. This is an honest limitation, stated in the builder too.
A gift that is already in the cart but below the threshold stays at full price, which is the safe default. Carts paying in a foreign presentment currency, and collection, tag, or variant scoped offers, skip the automatic add as a fail-safe; a gift that is present is still priced to free correctly at checkout.
A bigger discount can beat the gift
If a bigger product discount is live at the same time and the two campaigns are not set to combine, Shopify applies only the better deal, and the auto-added gift is charged at full price. Open the Stacking step on both campaigns to let them combine, or do not run them at the same time. See the troubleshooting page "Two campaigns, only one applies".
A worked Free Gift example (cart total in, gift line priced to free out) will slot in here from the tested golden fixtures.
Good to know
- The trigger is spend, not quantity, so there is no counting mode to set.
- The gift does not have to be part of your targeted products; it is priced to free wherever it sits in the cart, up to the gifts-per-order cap.
- Add a higher gift tier in the same builder to turn this into a spend ladder; see the tiered gift with purchase page.
- As with other spend thresholds, the amount is set in your store currency; see "What the builder checks" for the multi-currency note.
Common setups
Free tote over $75
- Spend to unlock
- 75.00
- Gift
- The tote (primary), a mug as backup
- Gifts per order
- 1