Why won't Shopify automatically add my free gift when someone spends $75?
Shopify's native "spend $X, get a free item" discount only makes the gift free once it's in the cart — it never adds it there automatically, and that trips up a lot of merchants.
What's going on
A merchant sets up a promotion: spend $75, get a free candle. They build it as a Buy X Get Y automatic discount in Shopify's Discounts admin, set the free item's discount to 100%, publish it, and test it themselves. The discount works exactly as configured; when the free item is in the cart, its price drops to $0.00. But the gift never actually lands in the customer's cart on its own. Shoppers hit $75, check out, and simply never get the item because nothing added it for them.
This is one of the most recurring complaints in Shopify's merchant community: people assume "Buy X Get Y" is a spend-threshold auto-add mechanic, when it's really a conditional pricing rule that only fires once the qualifying items are already sitting in the cart. For a straightforward "buy this, get that" promo it works fine because the customer picked both products already. For a "spend any $75, get this one specific free item" promo, there's no native trigger that reaches into the cart and adds a product line for the customer.
Why it happens
Shopify's built-in automatic discounts (including Buy X Get Y) are pricing rules, not cart-manipulation rules. They can make a line item's price zero, restrict eligibility by quantity or collection, and stack conditions, but the discount engine was never designed to insert merchandise into a cart on its own. Adding a line item automatically requires actually mutating the cart's contents, which is a different capability than adjusting a price.
That cart-mutation capability exists on Shopify today as the Cart Transform function (part of Shopify Functions), which lets an app programmatically add, merge, or remove cart lines based on custom logic, including spend thresholds. It's a developer-facing API delivered through an app extension, not a merchant-facing checkbox in Discounts, which is why the fix usually comes from installing a purpose-built app or commissioning custom development rather than flipping a setting.
Merchants sometimes remember older stores or agencies using cart or checkout Scripts to auto-add gifts, that Script Editor was Shopify Plus-only and was retired in August 2024, replaced by Shopify Functions. Any legacy Script that used to auto-add a gift stopped working at that point and needs to be rebuilt on the current Functions model.
5 ways to fix it
Use the native "Buy X Get Y" discount, but pair it with an on-cart nudge
In Shopify admin under Discounts, create an automatic Buy X Get Y discount where the "customer buys" condition is a minimum spend and the "customer gets" item is set to 100% off. This is completely free and built into every plan. The catch: Shopify only discounts the item to free once it's in the cart, it does not place it there. So this only feels seamless if you also add a visible cart message (a banner, cart drawer note, or announcement bar) telling shoppers to add the specific free item once they cross the threshold. Without that messaging, most customers never realize they qualify and the item never gets added, which is exactly the complaint in the forums.
Add a cart progress bar or reminder popup pointing at the exact product
A lightweight cart-progress or announcement tool (many free shipping bar apps already do this) can show "You're $12 away from a free candle" and even deep-link or one-click add that specific variant once the threshold is hit. This doesn't change Shopify's underlying limitation, but it closes most of the gap by making the manual add-to-cart step obvious and one click instead of a scavenger hunt. This is the realistic fit for a general-purpose cart reminder or popup tool: it can prompt and guide, but it can't force an automatic add on its own.
Use a dedicated free-gift app built on Shopify's Cart Transform function
If you genuinely need the gift line item to appear and disappear automatically as the cart crosses the spend threshold, that behavior comes from Shopify's Cart Transform API (a Shopify Function), which most "free gift" / "buy X get Y" apps in the Shopify App Store are built on. These apps let the merchant configure spend thresholds and eligible gift products from an admin screen, and the function handles adding, updating, and removing the gift line as cart contents change, including in checkout. This is currently the only reliable way to get true auto-add behavior without writing custom code.
For dev-resourced stores: build a custom Cart Transform + Discount function pair
If you have an in-house developer or agency, you can build this yourself: a Cart Transform function that adds/removes the gift merchandise line based on cart subtotal, paired with a Discount function (or the native automatic discount) that zeroes out its price. This requires a Partner account, Shopify CLI, and deploying the functions as an app extension on the store, so it's realistically a project rather than a merchant-facing setting, but it gives full control over eligibility rules, multiple gift tiers, and edge cases like removing the gift if the order later drops below threshold.
Note on Shopify Scripts
If you're on an older Shopify Plus setup and remember using checkout/cart Scripts to auto-add free gifts, that Scripts editor was retired (Shopify sunset Script Editor in August 2024) in favor of Shopify Functions, including Cart Transform. Any solution built on the old Scripts API no longer works and needs to be rebuilt using the current Functions approach described above.
Bottom line
There's no setting in Shopify that automatically drops a free item into a customer's cart when they hit a spend threshold: the native Buy X Get Y discount only makes an item free once it's already in the cart, so the merchant still has to get the customer to add it themselves. A cart progress bar or reminder popup (the kind BesPoP's cart tools focus on) closes most of that gap by prompting the shopper at the right moment, but true automatic add/remove behavior comes from apps built on Shopify's Cart Transform function, which is worth evaluating directly if hitting a specific attach rate matters more than a simple nudge.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.