---
title: "Gift With Purchase on Shopify: Setup and Pitfalls"
description: "A free gift is easy to promise and awkward to deliver. The gift has to enter the cart itself, at zero cost, without becoming something people can order on its own."
author: "Aashish Kaushik"
published: 2026-10-14T13:00:57.481Z
updated: 2026-10-14T13:00:57.515Z
url: https://blog.byteinfy.com/gift-with-purchase-shopify
---
# Gift With Purchase on Shopify: Setup and Pitfalls

## Key takeaways

- Native Shopify discounts reduce the price of something already in the cart — they do not add a gift, which is why this mechanic usually needs an app or Functions.
- The gift must not be independently orderable, or you will ship free products to people who bought nothing.
- Inventory is the most common failure: the gift is consumed by demand for other products, at a rate nobody forecast.
- Decide in advance what happens when the cart drops below the threshold after qualifying, because shoppers do remove items.

Gift with purchase is one of the more effective ways to raise average order value, and one of the more technically demanding to implement properly.

The reason is a specific gap in the platform. Shopify's native discounts reduce the price of things already in the cart. A gift is not in the cart — it has to be put there, automatically, at zero cost, without becoming a product anyone can order on its own.

That gap is where the implementations live, and where they break.

> **Why the mechanic is worth the trouble**
> 
> A gift costs you one item. A percentage discount costs you a share of every order. The perceived generosity is often higher and the margin cost lower, which is why this mechanic survives scrutiny better than most.

## What native discounts can and cannot do

Native discounts can reduce the price of a product the shopper has added. So the manual version of this offer is: tell the shopper to add the gift, and configure a discount that makes it free when the threshold is met.

That works technically and fails commercially. Most shoppers will not find and add a product to receive it free — the friction is small and the completion rate is poor. Merchants conclude the offer did not resonate, when what actually happened is that the offer was never taken up.

Automatic insertion is what makes this mechanic work, and it requires either an app or custom logic through Shopify Functions.

## An app or Shopify Functions: how to decide

Both routes solve the automatic-insertion problem. They suit different stores, and the wrong choice tends to surface months later rather than immediately.

A gift-with-purchase app is the faster route to live. Configuration happens in an admin screen rather than in code, the threshold and gift product are set through a form, and most of the edge cases in this article, like removing the gift when the cart drops below threshold, are handled by the app rather than something your team has to build and test. The cost is the usual one for any app: it loads its own script on storefront pages, it is a dependency you do not control, and its logic runs alongside checkout in a way you can configure but not inspect line by line.

Shopify Functions, run at checkout inside Shopify's own infrastructure, is the route for stores with development capacity and a mechanic complex enough that an app's configuration screen cannot express it cleanly. Tiered gifts, gifts that vary by customer segment, or gift logic that has to interact with other custom discount rules are easier to get exactly right in code you control than to coax out of a generic app interface. Functions also avoid the storefront script weight an app carries, since the logic runs at checkout rather than in the browser.

The deciding question is usually not preference but scale and duration. A single seasonal gift offer, run once and retired, rarely justifies custom development, and an app that gets uninstalled afterwards costs little. A gift mechanic that is becoming a permanent fixture of how the store merchandises, running continuously with several variations, is exactly the kind of dependency that is worth owning outright, for the same reason argued elsewhere in this series about apps that become essential: paying for custom logic now is often cheaper than discovering the app's ceiling later, at a point you did not choose.

A reasonable middle path for a store unsure which category it is in: launch on an app to validate that the offer works and the threshold is right, then decide whether to move the proven mechanic to Functions once it has run a full season and the business case for owning it is no longer a guess.

## The gift must not be independently orderable

The failure that costs actual money, and it is more common than it should be.

If the gift exists as a normal product in your catalogue at zero or near-zero price, someone will find it and order it on its own. Then they will tell people. You will ship free products to customers who bought nothing.

The approaches that prevent it:

**Hide it from navigation and search.** Not in any collection, not surfaced by search, no direct link. Weakest option alone, since the URL still resolves.

**Give it a real price** that only the offer logic overrides. If someone orders it directly they pay for it, which removes the incentive entirely.

**Use a dedicated variant** that is not exposed publicly and exists only for the offer.

Whichever route, test it: try to find and buy the gift on its own before the campaign goes live, using search, direct URL and every collection. This takes two minutes and prevents the most embarrassing version of this failure.

## Inventory is where gift campaigns actually break

The gift is consumed by demand for *other* products. If the threshold is easy to hit, every large basket is effectively ordering one.

That means the gift depletes at a rate your ordinary forecast does not describe, and because it was never the point of the campaign, nobody is watching it.

## Inventory preparation for a gift offer
- Set a stock alert on the gift, at a level that gives you time to react
- Decide in advance what the offer does at zero — stops, substitutes, or oversells
- Estimate demand from the share of orders likely to exceed the threshold
- Over-order deliberately if the gift is cheap, since the asymmetry favours surplus
- Confirm the gift is not also being sold or given through another campaign
- Name someone responsible for watching it during the campaign

The out-of-stock behaviour is the item merchants most often have not decided. All three outcomes are defensible; discovering which one your setup does at 2am during a promotion is not.

## The edge cases that generate support tickets

Four scenarios worth testing explicitly, because each produces a confused customer.

**The cart drops below the threshold after qualifying.** The shopper qualifies, the gift is added, then they remove an item. The gift should be removed too. If it is not, you are shipping free products with unqualified orders.

**The shopper removes the gift.** Some will, either not wanting it or assuming it is a mistake. Decide whether they can add it back, and make that possible.

**Two offers qualify at once.** A gift offer and another promotion in the same cart. Shopify's rules about combining discounts apply, and the outcome should be tested rather than assumed.

**A partial return.** The customer returns enough that the order no longer qualifies. Do you reclaim the gift, absorb it, or adjust the refund? Decide before the first return arrives, because this question comes up without fail and answering it ad hoc produces inconsistent decisions.

That last one is worth writing into your returns policy explicitly. Customers who read it in advance rarely dispute it; customers told after the fact frequently do.

## Choosing the gift

The commercial decision, and it is more consequential than the technical one.

**Cheap for you, desirable to them.** The gap between cost and perceived value is the entire economics of the mechanic. A sample, a travel size, an accessory that would be bought anyway.

**Relevant to what they are buying.** A gift unrelated to the purchase reads as clearing stock, because it usually is.

**Not something they would otherwise buy.** Giving away a product with real standalone demand cannibalises it, and you lose the sale you would have had.

**Small enough to ship without changing the parcel.** A gift that pushes the order into a higher shipping band eats its own margin.

**In genuine supply.** Running out halfway through a campaign is considerably worse than never having run the offer at all.

## Communicating the offer across the store

A gift offer nobody notices performs like no offer at all, and native discounts announce nothing until the cart. Where the offer appears is as much of the implementation as the logic.

**Product page.** A line on qualifying products stating the offer. This is where the add-to-cart decision happens, and it is the highest-value placement.

**Collection pages.** A flag on qualifying products creates discovery while browsing, before the shopper has committed to any single item.

**Cart, with distance to the threshold.** The single most important surface for this mechanic, because it converts an abstract offer into a specific, small next step.

**The gift line itself.** When the gift is added, it should be visibly free and visibly a gift, not a mysterious zero-value line item. Shoppers who cannot tell what a line is will remove it.

**Order confirmation.** Listing the gift explicitly reduces "was my gift included" contacts, which are otherwise a reliable feature of these campaigns.

The rule worth following throughout: drive the messaging from the same source as the offer logic — the collection, the metafield, the date range. Offer messaging left visible after a campaign ends is a common and damaging error, and wiring the two to one source makes it impossible.

## Measuring whether it worked

Gift campaigns produce flattering reports, because orders containing the gift are by definition orders above the threshold. That number always looks good.

The question is whether average order value rose, or whether you gave gifts to people who were already spending that much. Answering it requires a comparison — a matched period before the campaign, or a control group of customers not shown the offer.

Two numbers worth watching together. **Average order value** tells you whether baskets grew. **Revenue per visitor** tells you whether that growth was real or whether it came with a conversion cost. A campaign that raises the first and lowers the second has made your orders bigger and your business smaller.

Also track the gift's cost as a share of the incremental revenue it generated, not as a share of total revenue on qualifying orders. The second number is meaninglessly flattering; the first tells you whether to run it again.

## Setting the threshold

The threshold does the work, so it should come from your data rather than a round number.

Look at your current average order value and the distribution around it. A threshold slightly above the point where most orders currently land gives a meaningful share of shoppers a reachable reason to add one more item. A threshold far above it is invisible to most of your traffic and only rewards customers who were already spending that much.

The second failure is the more common and the more expensive: a high threshold gives free gifts to your best customers for behaviour they were already exhibiting.

> **Show the distance, not the destination**
> 
> "You are ₹400 away from a free gift" outperforms "Spend ₹2,000 for a free gift", because the first is specific to this shopper's current basket. If you build one thing beyond the core mechanic, build the progress indicator — it is where most of this offer's uplift actually comes from.

For the wider offer strategy and margin arithmetic, see [promotions and offers](/category/promotions-offers). App selection is covered in [Shopify apps](/category/shopify-apps), and the inventory side in [POS and operations](/category/pos-operations).

**Gift logic that behaves at checkout**
ByteInfy builds Shopify offer mechanics with Functions — automatic gifts, threshold logic and stacking rules that hold through accelerated checkout.

[Start a project](https://byteinfy.com/#contact)

## FAQ

### Can I do gift with purchase on Shopify without an app?

Not straightforwardly. Native discounts reduce the price of items already in the cart; they do not insert a product.

### How do I stop people ordering the free gift on its own?

The gift should not be a normally purchasable product.

### What happens if a customer removes items after qualifying for the gift?

That depends on your implementation, and many merchants have never checked. The gift should be removed automatically when the cart no longer qualifies.

### Does the free gift affect my inventory?

It should, and this is where most gift campaigns come unstuck.

### Is gift with purchase better than a discount?

Usually for margin, yes. A gift costs you the item, while a percentage discount costs you a share of every order.
