---
title: "How to offer a free gift with purchase on Shopify"
description: "Shopify's Buy X get Y never adds the gift to the cart. How to run a gift with purchase natively, and how SMART Bundles adds the gift by itself, in tiers."
url: "https://smart-bundles.io/guides/free-gift-with-purchase-on-shopify"
updated: "2026-11-02"
product: "SMART Bundles App & Upsells"
section: "Guides"
---


# How to offer a free gift with purchase on Shopify

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.

![Bundle widget whose top tier is selected and shows a + FREE GIFT band with the gift product](https://smart-bundles.io/screens/template-free-gift.png)

*Bundle with a free gift: the top tier adds a gift to the cart.*

## The built-in way: a Buy X get Y discount

1. In Shopify admin, create a Buy X get Y discount, automatic or with a code.
2. Under **Customer buys**, choose a minimum quantity of items or a minimum purchase amount, and the products or collections that count.
3. Under **Customer gets**, add the gift product, a quantity, and set the discount to Free.
4. 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](https://help.shopify.com/en/manual/discounts/discount-types/buy-x-get-y). 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](https://smart-bundles.io/guides/buy-x-get-y-free-item-not-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](https://help.shopify.com/en/manual/discounts/discount-types/buy-x-get-y)).
- **Subscriptions:** the "get" item must be a one-time purchase ([Subscription discounts](https://help.shopify.com/en/manual/products/purchase-options/subscriptions/manage-subscriptions/subscription-discounts)). Shopify's developer docs say pre-orders don't support Buy X get Y discounts ([Pre-orders and TBYB](https://shopify.dev/docs/apps/build/purchase-options/deferred)).
- **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](https://help.shopify.com/en/manual/checkout-settings/script-editor/examples/line-item-scripts)). See [Tiered discounts after Shopify Scripts](https://smart-bundles.io/guides/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](https://help.shopify.com/en/manual/discounts/discount-methods/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

1. 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](https://smart-bundles.io/help/getting-started/turn-on-the-app-embed).
2. Open **Create new discount** and pick **Free gift**.
3. Enter a **Discount name** (only you see it) and choose the **Application method**: **Automatic** or **Code**.
4. Set the **Trigger** and **Counts toward the tier**.
5. 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.
6. Set eligibility, combinations and dates, then click **Create**. It goes live on its start date (now, by default).
7. 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](https://smart-bundles.io/help/free-gifts/set-up-a-free-gift). Tier rules: [Free gift tiers](https://smart-bundles.io/help/free-gifts/free-gift-tiers). Code gifts: [Free gift with a discount code](https://smart-bundles.io/help/free-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](https://smart-bundles.io/help/free-gifts/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](https://smart-bundles.io/help/bundles/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 SMART Bundles App & Upsells on the Shopify App Store](https://apps.shopify.com/smart-automatic-discounts).

## Frequently 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**.
