The easiest way to add a free gift to a Shopify cart when the total is over $25 is to use a dedicated Shopify app that can auto-add the gift based on cart value. Shopify's native discounts can make the gift free, but on most stores they do not automatically insert the product into the cart without extra app logic.
I've worked on Shopify apps for years, and this is one of those features merchants ask for constantly because it sounds simple but gets messy fast. The moment you need the gift to appear automatically, disappear when the cart drops below the threshold, work with drawer carts, and behave properly with discounts, you move beyond a basic discount setup.
In this guide, I'll show you the best current methods for 2026, explain what still works, what is now outdated, and how to choose the right setup for your store. I'll also cover the practical details most tutorials skip, like gift costs, variant handling, cart conflicts, and testing.
How do I add a free gift to Shopify cart when the total is over $25?
You can add a free gift to Shopify when the cart total is over $25 by using either a free gift app, Shopify's Buy X Get Y discount, or a custom theme-based solution. For most merchants, an app is the best option because it can automatically add and remove the gift without custom maintenance.
If your goal is simply to make one item free after the customer adds it, Shopify's native discount tools may be enough. If your goal is to automatically place the gift in the cart the moment the threshold is hit, you will usually need an app or custom development.
What is the best way to do this on Shopify in 2026?
The best method in 2026 is a dedicated free gift app with cart-value rules and auto-add support. It is the most reliable option for modern Shopify themes, AJAX carts, cart drawers, and stores that want a polished customer experience.
In my experience building Shopify apps, merchants often start by trying to force this through native discounts alone. That works up to a point, but once they want automatic cart insertion, gift progress messaging, or multiple thresholds, they usually end up installing an app anyway.
| Method | Best for | Auto-adds gift? | Technical difficulty | My verdict |
|---|---|---|---|---|
| Shopify Buy X Get Y | Simple promotions | No, not by itself | Low | Good if manual add is acceptable |
| Free gift app | Most merchants | Yes, usually | Low to medium | Best overall option |
| Custom theme code | Custom storefronts and dev teams | Yes | High | Only worth it if you need full control |
| Legacy Shopify Scripts | Old Plus setups | Partly | High | Not recommended for new builds |
Why offer a free gift over $25 in the first place?
A free gift threshold works because it gives shoppers a clear reason to increase their basket size. A spend target like $25, $50, or $75 can lift average order value while making the offer feel more exciting than a plain percentage discount.
I've seen this work especially well for beauty, supplements, snacks, stationery, jewellery, and giftable DTC brands. Customers respond well when the reward feels tangible, and the key is making the gift feel high in perceived value while staying cheap to fulfil.
A useful rule of thumb is to keep the real cost of the gift at around 5 to 10% of the qualifying order value. So if your threshold is $25, your ideal gift cost is usually around $1.25 to $2.50, while the perceived value should feel much higher.
If you're already working on basket-building tactics, my guides on how to upsell on Shopify in 2026 and Shopify cart drawer upsells pair well with this strategy.
Which Shopify apps are best for automatic free gifts?
The best Shopify apps for automatic free gifts are the ones that can trigger by cart value, auto-add the correct product or variant, and remove it again if the order no longer qualifies. For most stores, that is far more dependable than patching together theme code and discounts.
The apps below are the ones most often mentioned in current merchant discussions and setup guides for this use case. I always recommend checking the latest reviews, compatibility notes, and pricing before installing.
| App | Best use case | Key strength | Potential limitation |
|---|---|---|---|
| BOGOS | Advanced gift campaigns | Strong auto-add and promotion logic | Can be more than some small stores need |
| EasyGift | Gift with purchase offers | Built specifically for automatic gifts | Depends on your theme and cart setup |
| Monk | Upsells plus gifts | Combines offers, upsells, and cart incentives | May be broader than needed for gift-only use |
| CartBot: Auto add to cart | Rule-based cart additions | Simple trigger-based auto-add | Less promotional polish than full upsell suites |
BOGOS is usually the name I see most often when merchants want a polished free-gift setup with threshold rules. If you're on Shopify Plus and care about checkout-stage offers, that is one reason it comes up so often in forum answers and merchant recommendations.
If your store is smaller and you just need one straightforward rule like spend $25, get sample pouch free, a lighter app can be enough. The best choice depends less on brand popularity and more on whether it supports your cart type, your theme, and your promotional logic.
How do I set this up with a Shopify app?
Setting this up with an app usually takes 10 to 20 minutes. The standard flow is to install the app, create a promotion rule, define the threshold, choose the gift product, and enable auto-add.
The exact screens vary by app, but the setup logic is usually similar.
- Install your chosen app from the Shopify App Store.
- Create a new promotion such as Spend $25, get a free gift.
- Choose the trigger condition, usually cart subtotal or cart value.
- Set the threshold, for example $25.
- Select the gift product or gift variant.
- Enable automatic add to cart if the app supports it.
- Choose whether the gift should be auto-removed if the cart drops below the threshold.
- Test on product pages, cart page, and cart drawer.
When I test these setups, I always try at least four scenarios: below threshold, just over threshold, threshold hit with a discount code, and threshold lost after removing an item. That catches most of the annoying edge cases before customers do.
Can I do this with Shopify's native discounts only?
Yes, but with an important catch. Shopify's native Buy X Get Y discount can make the gift free, but it usually does not automatically add the gift item to the cart on its own.
This is why so many merchants end up confused. They create the discount correctly, but then discover the customer still has to manually add the gift product before the discount applies.
How do I create a Buy X Get Y free gift discount?
You can create a native free-gift discount from the Shopify admin in a few minutes. It is the cheapest method because it uses built-in Shopify functionality.
- In Shopify admin, go to Discounts.
- Click Create discount.
- Select Buy X get Y.
- Choose Automatic discount or a discount code.
- Set the customer condition to a minimum purchase amount, such as $25.
- Select the gift product as the item the customer gets.
- Set the discount value to Free.
- Save and test the offer.
You can read more about Shopify discounts in the official Shopify help docs at Shopify Help Centre.
This method is best for stores that are happy to ask customers to add the gift themselves. If you want a smoother experience, pair it with an app or use an app-only setup.
What are the limitations of Shopify's native free gift setup?
The biggest limitation is simple: native discounts do not reliably auto-insert the gift into the cart. They discount an eligible item, but they do not act like a cart automation engine.
There are a few other limitations merchants should know about before committing to the native route.
- Customers may need to add the gift manually, which hurts redemption rates.
- Cart drawers and AJAX carts can make messaging harder.
- Variant-specific gifts can be awkward if the customer should choose colour or size.
- Multiple gift tiers are harder to manage cleanly.
- Stacking with other discounts can create confusion.
In practice, this means native discounts are fine for a simple promotion banner saying, Add our sample pack to your cart and it becomes free over $25. They are much less ideal if you want a premium, frictionless experience.
How do I automatically add and remove the gift based on cart total?
You need logic that watches the cart total and updates the cart when the threshold is met or lost. In modern Shopify stores, that usually means an app or custom AJAX cart code.
The key behaviour you want is this:
- If cart total is below $25, no gift is present.
- If cart total becomes $25 or more, the gift is added automatically.
- If the customer removes items and drops below $25, the gift is removed automatically.
- If the customer qualifies again, the gift returns.
This sounds straightforward, but it can get tricky with cart drawers, bundles, subscriptions, and discount combinations. That is one reason I usually tell merchants to avoid home-made hacks unless they have a developer who can maintain them.
Is custom code still a good option?
Custom code is still possible, but it is no longer my default recommendation for most merchants. Modern Shopify themes use asynchronous cart behaviour, and a custom solution can break during theme updates or conflict with other apps.
The original version of this article included a Liquid and AJAX approach. The broad idea is still valid, but the implementation is now more of a legacy workaround than a best practice.
If you do go custom, the logic usually looks like this:
- Watch the current cart state through Shopify's cart endpoints.
- Check whether the qualifying subtotal exceeds your threshold.
- Add the gift variant if missing.
- Remove the gift if the threshold is no longer met.
- Prevent loops where the gift itself affects the qualification logic.
That last point matters. If your code includes the gift's own value when checking the threshold, you can create odd behaviour where the cart qualifies only because the gift is already there.
What did the old custom snippet approach do?
The old snippet method checked the cart total, looked for a specific variant ID, and then posted updates to /cart/update.js. It could work on older themes, but it was fragile and often required page reloads or manual fixes.
If you inherited a store using this kind of script, test it carefully before relying on it in 2026. I would only keep it if it is stable, well-documented, and cheaper to maintain than replacing with an app.
{% assign free_gift_over_price_25 = 2500 %}
{% assign variant_id = '31059890110524' %}
<script>
(function($) {
var cartItems = {{ cart.items | json }},
qtyInTheCart = 0,
cartUpdates = {},
cartTotal = {{ cart.total_price }};
for (var i=0; i<cartItems.length; i++) { if ( cartItems[i].id === {{ variant_id }} ) { qtyInTheCart = cartItems[i].quantity; break; } } if ( ( cartItems.length === 1 ) && ( qtyInTheCart > 0 ) ) {
cartUpdates = { {{ variant_id }}: 0 }
}
else if ( ( cartItems.length >= 1 ) && ( qtyInTheCart !== 1 ) && (cartTotal >= {{ free_gift_over_price_25 }} ) ) {
cartUpdates = { {{ variant_id }}: 1 }
}
else {
return;
}
var params = {
type: 'POST',
url: '/cart/update.js',
data: { updates: cartUpdates },
dataType: 'json',
success: function(stuff) {
window.location.href = '/cart';
}
};
$.ajax(params);
})(jQuery);
</script>
Even here, you can see the usual weaknesses: hardcoded IDs, reload behaviour, and assumptions about cart structure. I would not use this as a fresh implementation unless you know exactly why you need it.
What about Shopify Scripts and Script Editor?
Shopify Scripts are deprecated for this use case and should not be used for new setups. If you still have an old Shopify Plus store using Script Editor, you should plan a migration path before the feature becomes a maintenance problem.
The old Script Editor method was useful because it could make a line item free once present in the cart. But again, it did not solve the full modern problem as neatly as many merchants hoped, especially around automatic insertion and storefront UX.
For new stores, focus on Shopify Functions-compatible approaches, native discounts, or apps designed for free gifts. If you are already reviewing your Plus stack, my article on when to upgrade your store to Shopify Plus may help frame whether extra complexity is justified.
How do I choose the right free gift product?
The best free gift is cheap to fulfil, easy to ship, and high in perceived value. A bad gift can kill your margin, create stock headaches, or encourage low-quality orders from bargain hunters.
When I look at merchant campaigns that perform well, the free gift usually has three traits: it is lightweight, brand-relevant, and desirable enough to change behaviour.
| Good gift ideas | Why they work | Risk level |
|---|---|---|
| Samples and minis | Low cost, high perceived value | Low |
| Branded accessories | Improves brand recall | Medium |
| Consumable add-ons | Encourages repeat purchase | Low |
| Heavy or fragile products | Can increase fulfilment costs fast | High |
If you sell made-to-order or customised products, also think about operational complexity. A free gift is only a good promotion if your warehouse or production workflow can handle it consistently. If your orders involve special handling, you may also want to read how to track customised orders in Shopify.
Should the threshold be based on subtotal, total, or checkout amount?
Most stores should use cart subtotal before shipping, and be very clear about it in their messaging. Using the wrong threshold logic is one of the fastest ways to create support tickets.
There are three common ways merchants think about this threshold:
- Subtotal before shipping - easiest for customers to understand
- Total after discounts - stricter, but sometimes necessary for margin control
- Checkout total including tax or shipping - usually more confusing
My preference is to keep it simple and message it clearly, for example: Free gift when you spend $25 or more, excluding shipping. If you also run discount codes, test whether the threshold is checked before or after discounts, because that changes customer expectations.
This is similar to the confusion merchants hit with stacked promotions. If you run sale pricing plus codes, my guide on stopping double discounts on Shopify is worth a read.
What if I want customers to choose from multiple free gifts?
You can do this, but it usually requires an app with gift selection support rather than a basic discount. Multi-gift choice is popular, but it adds complexity around variants, stock, and UX.
For example, a merchant may want a customer spending $25 to choose one of three samples, or a customer spending $75 to choose one full-size accessory. That is much easier with an app that can present a selector or popup rather than a hidden auto-add rule.
In my experience, the more choice you offer, the more carefully you need to test mobile UX. A cluttered gift selector can reduce conversion more than the promotion helps.
How should I promote the free gift on my storefront?
The best free gift offers are visible before the cart, not just after. Customers need to know the threshold early enough to change their basket behaviour.
I recommend promoting the offer in at least three places:
- Announcement bar - simple threshold reminder
- Product page or cart drawer message - shows progress towards the gift
- Cart page - confirms eligibility or amount remaining
A progress message like You're $6 away from a free gift often performs better than a static promo line. It gives the customer a clear next step, which is why these campaigns pair so well with upsells and related products.
For more on that side of the equation, see how to maximise revenue from your Shopify product pages and how to cross-sell matching variants.
What common problems should I watch out for?
The most common problems are gift duplication, gifts not being removed, and threshold confusion. These issues are fixable, but you need to test them before launching the promotion.
Here are the main issues I see merchants run into:
- Gift duplicates when a customer refreshes or updates the cart repeatedly
- Gift stays in cart even after the order no longer qualifies
- Discount code conflicts with the free gift logic
- Out-of-stock gifts breaking the promotion mid-campaign
- Cart drawer incompatibility with older themes or custom JavaScript
- Analytics confusion because the free item appears as a product sale
One practical tip: create a dedicated product for the gift and keep it hidden from normal browsing if possible. That makes reporting, inventory tracking, and promotion management much cleaner.
How do I test a free gift promotion properly?
You should test the promotion across the full customer journey, not just on the cart page. A free gift campaign can look fine in the admin but still fail in real browsing conditions.
- Add products and stop just below the threshold.
- Add one more item to cross the threshold.
- Confirm the gift appears automatically, if expected.
- Remove an item and confirm the gift disappears.
- Apply a discount code and check the threshold again.
- Test on mobile, especially if you use a cart drawer.
- Test accelerated checkouts if your app claims compatibility.
- Place a real test order and verify fulfilment behaviour.
In my own testing, mobile cart drawers are where issues show up most often. If your store uses multiple conversion apps, test each one together because app-to-app conflicts are common.
What is my recommended setup for most Shopify stores?
For most stores, I recommend using a dedicated free gift app with a cart subtotal rule and automatic add/remove behaviour. It is the fastest route to a reliable customer experience and usually the cheapest route once you factor in developer time.
If you have a very simple promotion and do not mind customers adding the gift manually, Shopify's native Buy X Get Y discount is a good no-frills option. If you need total control and have development resources, custom code can still work, but it should be a deliberate decision rather than a default one.
That is the same pattern I see across a lot of Shopify functionality. Native tools are improving, but once a promotion touches UX, automation, and cart logic at the same time, a specialised app is usually the more sensible choice.
Final practical checklist before you launch
Before you turn the offer on, make sure the promotion is profitable, understandable, and technically stable. A free gift campaign should increase AOV, not create support overhead.
- Choose a gift with low fulfilment cost and high perceived value
- Use a clear threshold like $25 subtotal
- Decide whether the gift should auto-add or require manual addition
- Test discount interactions and cart removal behaviour
- Promote the offer on product pages, cart, and announcement bar
- Track whether the campaign actually improves average order value
If you want the shortest answer possible, here it is: use an app if you want true automatic free gifts, use Shopify discounts if manual gift addition is acceptable, and avoid legacy script-based setups for new stores.