Gift With Purchase on Shopify: How to Set It Up (3 Methods)
Shopify never adds a free gift to the cart on its own. Here is how to set up a gift with purchase with the native Buy X Get Y discount, theme code or an app, and how to pick a gift and threshold that actually pay off.

Shopify will not put your free gift in the cart. Its own help center says it plainly: with a Buy X Get Y discount, "the free or discounted 'get' item is never automatically added to the cart". That one sentence explains most of the support tickets merchants get about gift offers. The customer qualifies, expects the gift, never adds it, and then emails you asking where it is.
So setting up a gift with purchase on Shopify is really two jobs. Making the gift free. And getting it into the cart. This guide covers both, with the native method, the code method and the app method, plus the rules that decide whether the offer makes money.
Why a free gift often beats a discount
A discount teaches customers your real price is lower. A gift does not touch your price at all.
There is research behind that intuition. In a set of studies with 750 participants published in the Journal of Consumer Research, Palmeira and Srivastava found that shoppers were willing to pay more for a product after the promotion ended when it had been offered free rather than at a discount. Their explanation: a free item borrows the perceived value of the product it comes with.
Shoppers also say they like gifts. A Harris Interactive survey commissioned by IDR Marketing Partners found that nearly 90% of free-gift recipients were at least somewhat likely to buy more often from that online retailer. That survey dates from 2012, so treat it as a direction, not a benchmark.
The most practical case for gifts is margin and price protection. Spork Marketing ran a test for an aftermarket auto parts retailer that could not discount because of minimum advertised price (MAP) rules. They offered a popular cleaning accessory free on orders over $299. Result reported: conversion rate up nearly 30% and average order value up nearly 15%. One store, one test, no baseline published. Still, it shows the shape of a good gift offer: a cheap-to-you item customers already buy, tied to a threshold above your normal basket.
Pick the right gift before touching any settings
Most gift offers fail at this step, not in the admin.
What makes a good gift
- High perceived value, low cost to you. A travel-size version of a bestseller, a branded accessory, a sample pack.
- Related to the main purchase. A cleaning kit with sneakers. A shaker with protein. A pouch with sunglasses.
- Something people already add on their own. Look at your top 25% of orders by value and see which small items show up often. That is how Spork picked its gift.
- Always in stock. A gift that sells out mid-campaign breaks the offer and the promise.
What to avoid
- A gift that costs so much it eats the extra margin the threshold brings in.
- A random product you need to clear. Customers can tell, and it cheapens the order.
- Gifts on low-margin hero products where any added cost turns the order negative.
Choose your trigger
There are three common ways to trigger a gift, plus codes. Each one pushes a different behavior.
Trigger | Example | Best for | Watch out for |
|---|---|---|---|
Cart value threshold | Free tote on orders over $75 | Raising average order value | Threshold too far above your current AOV |
Specific product or collection | Free cleaning kit with any sneakers | Pushing a product line or launch | Gift cost on low-margin items |
Quantity | Buy 3 serums, get a free mini | Stock clearance, repeat items | Overlap with volume discounts |
First order or code | Free sample set with code WELCOME | Acquisition, influencer campaigns | Code leaking to coupon sites |
For the threshold, a simple rule of thumb: start around 20 to 30% above your current average order value, then adjust with data. If you do not know your AOV, check our guide on what a good average order value is for Shopify. The same logic as a free shipping threshold applies here, and we cover it in detail in the psychology of free shipping thresholds.
Method 1: Shopify's native Buy X Get Y discount
Free, built in, and fine for small stores. The catch is the manual add-to-cart.
Step by step
- In your Shopify admin, go to Discounts and click Create discount.
- Choose Buy X get Y, then select Automatic discount and write a customer-facing title like "Free tote over $75".
- Under Customer buys, set a minimum purchase amount (for example $75) or a minimum quantity, and pick the qualifying products or collections.
- Under Customer gets, set the quantity to 1, select the gift product, and choose Free.
- Set the maximum number of uses per order to 1. Usage is unlimited by default, which means a large cart could claim several gifts.
- Configure Combinations and dates, then save.
Rules that trip merchants up
Shopify's documentation spells out a few behaviors worth knowing before you launch:
- The minimum purchase amount counts product prices only, never shipping or taxes.
- Products count toward the minimum at full price, before other discounts.
- A discount that cannot be combined with your Buy X Get Y discount never applies at the same time. If a customer uses a 10% code that is not set to combine, they may lose the gift.
Two habits on top of that: keep the gift product out of the qualifying selection, otherwise its own price can help a cart reach the threshold. And give the gift a real price. A $0 product can be bought by anyone, without the offer.
The missing piece: telling customers to add it
Because the gift is not added automatically, you need to make it obvious. At minimum:
- A banner on product pages and in the cart: "Spend $75, get a free tote. Add it to your cart before checkout."
- A visible product card for the gift on the cart page, with a clear add button.
- An email or SMS reminder in your abandoned cart flow that mentions the gift.
This works. It also loses some customers who never notice. Which is why most stores that run gifts often move to method 2 or 3.
Method 2: auto-add the gift with theme code
If you or your developer are comfortable with Liquid and JavaScript, you can add the gift yourself using Shopify's Cart AJAX API. The logic:
- Listen for cart changes.
- Read the cart with
/cart.jsand compare the subtotal to your threshold. Prices come back in cents. - If the cart qualifies and the gift is missing, add it with
/cart/add.js. - If the cart drops below the threshold, remove the gift with
/cart/change.js. - Keep the Buy X Get Y discount active so the gift line is priced at zero at checkout.
Step 4 matters more than it looks. When a cart falls below the threshold, the discount stops but the gift stays in the cart at full price. Customers notice that at checkout, and it feels like a trick.
My take: this route is cheap but fragile. A theme update, a cart drawer app, or a sold-out gift variant (which returns an error on add) can break it silently. Only go this way if someone will test it after every theme change.
Method 3: use a free gift app
Apps package the add, remove and messaging logic, and usually add a progress bar ("$12 away from your free gift"), gift choice, and stock handling.
Two dedicated options worth looking at:
- EasyGift (listing) focuses on auto-adding gifts with a wide range of rules.
- CartBot (listing) handles gift with purchase and auto-add rules, built by the team behind Bundler.
We put them side by side in EasyGift vs CartBot, including prices and where each one is stronger.
If you already need a cart drawer, upsells and bundles, a separate gift app may be one app too many. Some all-in-one tools include gifts inside the cart experience. ConvertX, for example, handles gifts in its Upsells module next to the cart drawer and its free shipping bar, so the gift message sits where the customer is already looking.
Native vs code vs app
| Native Buy X Get Y | Theme code | Gift app |
|---|---|---|---|
Cost | Free | Developer time | Monthly fee |
Gift added automatically | No | Yes | Yes |
Removed when cart drops | No | Yes, if coded | Yes |
Progress bar or messaging | Manual | Custom build | Usually included |
Breaks on theme update | No | Possible | Rare |
Best for | Testing the idea | Stores with a developer | Stores running gifts often |
Make the offer visible at every step
A gift nobody sees does nothing. Place the message where decisions happen:
- Announcement bar: one line, the threshold and the gift.
- Product page: near the add to cart button, not in the footer.
- Cart drawer: a progress bar toward the gift, then a confirmation once it is unlocked. Our guide on in-cart upsells covers how to lay out that space.
- Checkout: the gift as its own line at $0, so the customer sees the value.
- Order confirmation: mention the gift again. It reinforces the good feeling.
Show the gift's normal price struck through. "Free tote (worth $25)" reads stronger than "Free tote".
Measure whether it paid off
Gift offers feel good. That is not the same as profitable. Track these four numbers for the campaign period against a comparable period without the gift:
- Average order value. Did baskets grow toward the threshold?
- Conversion rate. Did more visitors buy?
- Share of orders above the threshold. This tells you if the threshold is reachable.
- Gift cost per order. Product cost plus any extra shipping weight.
Then the quick check: extra gross margin from bigger baskets minus total gift cost. If it is negative, raise the threshold or pick a cheaper gift. If almost no orders reach the threshold, lower it.
Running a gift during a big sale? Plan it early. Our Black Friday CRO checklist shows where it fits in the six-week calendar, and the BOGO guide helps you decide when "buy one get one" beats a separate gift.
A launch checklist
- Gift chosen from items customers already buy, with stock for the whole campaign.
- Gift product has a real price and is excluded from the qualifying products.
- Threshold set 20 to 30% above current AOV.
- Maximum uses per order set to 1.
- Combination rules checked against your active codes.
- Auto-add tested on mobile and desktop, including cart drawer.
- Removal tested when the cart drops below the threshold.
- Messaging live on product page, cart and announcement bar.
- Baseline numbers saved so you can compare after the campaign.
Start with one gift, one threshold and two weeks of data. Then adjust. The stores that win with gifts are the ones that treat them as a test, not a decoration.
Frequently asked questions
No. Shopify's help center states that the free item in a Buy X Get Y discount is never automatically added to the cart. The customer has to add it, unless you use theme code with the Cart AJAX API or a gift app that adds it for them.
Create an automatic Buy X Get Y discount, set a minimum purchase amount under Customer buys, select the gift under Customer gets with the Free option, and limit uses per order to 1. Then make sure the gift is added to the cart, either with clear messaging, theme code or an app.
Usually because the cart dropped below the threshold, or because another discount that cannot be combined took priority. The Buy X Get Y discount stops applying but the gift stays in the cart. Check your combination settings and remove the gift automatically when the cart no longer qualifies.
Often, when you want to protect your prices. Research published in the Journal of Consumer Research found shoppers were willing to pay more for a product after a promotion when it had been offered free rather than discounted. Test both on your own store, since results depend on your margins and the gift.
A practical starting point is 20 to 30% above your current average order value. Then watch the share of orders that reach it and your gift cost per order, and move the threshold up or down after two weeks of data.

