How to offer a free gift with purchase on Shopify
Updated · SMART Bundles App & Upsells (E-TRADE PARTNER)
Shopify's built-in Buy X get Y discount can make a gift free once the cart reaches a quantity or a spend, but Shopify never adds the gift to the cart: the customer has to add it. SMART Bundles App & Upsells' Free gift adds the gift product to the cart by itself when the cart reaches a tier, or while a code is on the cart, and removes it when the cart stops qualifying.
SMART Bundles App & Upsells is a free Shopify app for bundles, quantity breaks, free gifts and upsells.
Try it freeOn this page

The built-in way: a Buy X get Y discount
- In Shopify admin, create a Buy X get Y discount, automatic or with a code.
- Under Customer buys, choose a minimum quantity of items or a minimum purchase amount, and the products or collections that count.
- Under Customer gets, add the gift product, a quantity, and set the discount to Free.
- Optionally set a maximum number of uses per order. Usage is unlimited by default.
All of this is on Shopify's Buy X get Y help page. For spend thresholds, the same page says the minimum counts product prices only, never shipping or taxes, at full price before other discounts. An item that another combinable product discount already discounted doesn't count toward the minimum at all.
Where the built-in way falls short
- The gift is never added automatically. Customers must add every item, the gift included. A customer who doesn't know about the gift doesn't get it. See Buy X get Y: why the free item isn't added.
- One step per discount. A ladder (gift A over $50, gift B over $100) needs one discount per step.
- POS: automatic discounts apply only at locations with a POS Pro subscription (Buy X get Y).
- Subscriptions: the "get" item must be a one-time purchase (Subscription discounts). Shopify's developer docs say pre-orders don't support Buy X get Y discounts (Pre-orders and TBYB).
- Old gift scripts don't help. Shopify Scripts were deprecated on June 30, 2026, and even Shopify's own gift script example didn't add the gift to the cart (line item script examples). See Tiered discounts after Shopify Scripts.
Some guides still say Shopify runs only one automatic discount at a time, so a gift can't run next to a sale. Shopify allows up to 25 active automatic discounts, app discounts included (Automatic discounts), and whether two discounts apply together depends on their combination settings.
How SMART Bundles adds the gift: Free gift
In the app (it appears as SMART Discounts in your Shopify admin), Create new discount > Free gifts > Free gift. The editor has these cards:
| Card | What you set |
|---|---|
| Trigger | Cart value or Items in cart, with an optional Maximum cart value or Maximum items (no gift above it, for every tier) |
| Counts toward the tier | All products or Specific products, with Require all of these products if the gift needs each of them in the cart |
| Gift tiers | Up to 5 tiers with Add tier (code discounts: 1). Each tier: a minimum, one gift product and variant, Free quantity (1 to 10), Gift price (Free, Percentage off or Fixed price) and a Checkout label (default "Free gift") |
| Higher tier replaces lower | On by default: only the highest reached tier's gift is in the cart. Untick it to add every reached tier's gift |
| Eligibility | Customer tags (with any of, or without), New customers only (guests count as new), Markets |
| Combinations, Active dates | Which other discount classes it combines with, and the start and end |
Steps
- Turn on the app embed: theme editor > App embeds > Deal widget from SMART Discounts > Save. The gift is added only while the embed is on, and the app checks this when you start a Free gift. See Turn on the app embed.
- Open Create new discount and pick Free gift.
- Enter a Discount name (only you see it) and choose the Application method: Automatic or Code.
- Set the Trigger and Counts toward the tier.
- Add your tiers and pick each gift's variant. A gift product must be active on the Online Store sales channel; the editor warns you if it isn't.
- Set eligibility, combinations and dates, then click Create. It goes live on its start date (now, by default).
- Test in a new browser tab: add products until the tier is reached and watch the gift appear, then remove items and watch it go.
Full walkthrough: Set up a free gift. Tier rules: Free gift tiers. Code gifts: Free gift with a discount code.
What shoppers see
- The gift arrives as its own cart line at the tier's Free quantity, on any page of the store. The cart and drawer refresh without the drawer popping open.
- At checkout the gift carries its checkout label. Keep the gift product's real price in Shopify: the app's discount makes it free only while it's earned.
- A raised gift quantity is set back. Extra units added the normal way are charged.
- If the shopper deletes the gift, it isn't added again in that tab while the tier stays reached.
- When the cart drops below the tier, the gift is removed. The checkout button waits a moment for a running update.
- For a code gift, the gift is added only while the code is on the cart: through the cart's discount field, if your theme has one, or a /discount/CODE link.
Where Free gift can't add the gift
- Buy it now, express buttons on the product page and cart links that open checkout directly. They skip the cart.
- A code typed only at checkout. The storefront can't add lines there.
- Shopify POS. Free gift never applies in POS.
- Headless or Hydrogen storefronts, and apps that change the cart outside your theme. Checkouts that replace Shopify's own checkout don't run the app's discounts.
- Not built: a choice between several gift products, a "spend $X more" message, and collections as the counted products.
If a gift doesn't show up, work through Free gift not added to cart.
Gifts inside a bundle
The product page bundle widget has two more gift options, added by the widget when the shopper picks an offer:
- A gift on an offer: in an offer, click Add gift and pick the product. The offer card shows "+ FREE GIFT 🎁" (editable). The Bundle with a free gift template starts with a gift on a tier.
- Progressive gifts (Extras tab): a gift ladder. Each gift is a product or Free shipping, unlocked at Offer #N and higher, Offer #N only or Spend at least.... Show progress prints "Add {{n}} more" or "Spend {{amount}} more". Spend counts the bundle's target products at prices before discounts. See Progressive gifts.
- A bundle gift is removed when its bundle leaves the cart.
Which gift option to use
| Shopify Buy X get Y | SMART Free gift | SMART bundle gifts | |
|---|---|---|---|
| Adds the gift to the cart | No, the customer adds it | Yes, on any store page | Yes, through the product page widget |
| Trigger | Minimum quantity or purchase amount | Cart value or items, up to 5 tiers, or a code | An offer, or a spend step |
| Discount code | Yes | Yes (one tier) | No, automatic only |
| Shopper picks the gift | Yes, from the products in Customer gets | No, one variant per tier | No, one product per gift |
| POS | Automatic: POS Pro locations only | Never | Not added at POS |
Put the gift in the cart for them
Install SMART Bundles App & Upsells, create a Free gift and set your tiers. Free gifts and every other feature are free.
Install free on ShopifyFrequently asked questions
›Can customers choose their free gift?
Not in Free gift: each tier adds one fixed variant. To let customers choose, use a Buy X get Y discount with all the gift options under Customer gets. Customers then add the one they want themselves.
›Why was the free gift charged at checkout?
Usually the cart stopped qualifying in a way the store page couldn't catch: quantities posted straight to checkout, an express button clicked before the cart updated, an app that changed the cart outside the theme, or a customer who signed in at checkout and failed New customers only or a tag rule.
›Does the gift line count toward my other discounts?
It can count toward other discounts' tiers (not bundles). Exclude the gift there, for example in Order goal's Products excluded from discount.