Last updated: August 2026

A customer's cart hits $90. Your promotion says once someone crosses $75, a phone case ships at 30% off alongside whatever they're buying — a natural add-on, not a freebie. Nothing happens. The discount exists somewhere in your Shopify admin, but the case never lands in the cart, so the customer checks out without it and the cross-sell you built never gets seen.

That's the same failure mode that trips up gift-with-purchase offers, applied to a different mechanic: a discounted add-on instead of a free gift. Shopify can apply a percentage off a product. It cannot put that product into a customer's cart on its own. If your offer depends on the item actually appearing once the customer qualifies, you need one of the approaches below.

Free gift vs. discounted add-on: what's the difference?

Both are cart-value-triggered offers, and both suffer from the same native Shopify gap — but they're not the same promotion, and picking the right one changes your margin math.

  • A free gift (100% off) is a reward. It's disconnected from what's already in the cart — usually a small, low-cost item (a sample, a sticker, a travel-size version) that costs you very little to give away. The goal is goodwill and a reason to hit the threshold, not incremental revenue from that specific item.
  • A discounted add-on (e.g., 20–40% off) is a cross-sell. It's usually a complementary product to what's in the cart — a case for the phone, a strap for the watch, a refill for the device — priced low enough to feel like an easy "yes" but not given away outright. You still collect revenue on it, just at a lower margin than full price.

The practical difference: a free gift trades margin for goodwill and rarely needs to relate to the rest of the order. A discounted add-on trades some margin for an incremental sale you likely wouldn't have gotten otherwise, and works best when it's genuinely relevant to what the customer is already buying. If you're deciding between the two, ask whether the item is something the customer would plausibly buy at a discount versus something they'd only take for free — that answer tells you which mechanic fits. (If you've landed here comparing the two directly, our gift with purchase setup guide covers the free-gift version of this same mechanic in full.)

Why Shopify can't do this natively

Shopify's built-in Buy X Get Y automatic discount can apply a percentage discount to a product — including a "get Y at X% off" configuration that's exactly the pricing part of a discounted add-on offer. What it can't do is add that product to the cart for the customer. Per Shopify's own documentation, the discounted "get" item only applies once it's already in the cart; the customer has to find it and add it themselves.

That's a meaningful gap for a cart-value-triggered discount specifically, because the whole point is that the add-on is a surprise cross-sell — something the customer wasn't already shopping for. If they have to go find it manually, most won't, and the offer quietly fails to redeem even though the discount is configured correctly.

That leaves two ways to make the add-on appear automatically: Shopify Functions (custom code), or a rule-based app.

Method 1: Native discount only (works, but the item still has to be found manually)

This costs nothing and takes minutes to set up — the tradeoff is that it only prices the item, it doesn't add it.

Setup steps:

  1. In Shopify admin, go to Discounts and create a new automatic discount.
  2. Choose Buy X, get Y as the type.
  3. Set the "buy" condition to a cart subtotal or quantity threshold (e.g., cart total over $75).
  4. Set the "get" product to your add-on item, with the discount value set to your percentage off (e.g., 30%).
  5. Save, then test by building a cart to the threshold and manually adding the add-on product to confirm the discount applies.

The catch: nothing tells the customer the offer exists or adds the item for them. Redemption depends entirely on the customer already knowing to look for it — which defeats the purpose of a cross-sell that's supposed to appear at the right moment.

Method 2: Shopify Functions (custom code, for genuinely custom logic)

Shopify Functions can programmatically add a line item to the cart based on custom logic, which solves the auto-add problem. But cart and checkout customization through Functions is a Shopify Plus feature, and building one requires a developer working through the Shopify CLI.

What this involves, at a high level:

  1. Define the trigger logic (cart subtotal threshold, specific products already in cart) with a developer.
  2. Build and test the function using Shopify's CLI and function templates.
  3. Deploy it and configure the discount percentage through a companion admin extension.
  4. Maintain it as Shopify's Functions APIs evolve and cart logic needs re-testing.

This is the right call if your discount logic is genuinely complex — tiered percentages by customer segment, multiple add-ons competing for the same trigger, and so on. For a standard "cart hits $X, add-on drops to Y% off" offer, it's a lot of engineering time and Plus cost to solve a problem a purpose-built app already handles.

Method 3: A rule-based app (no code, no Shopify Plus)

This is the middle ground — automatic like Functions, without the developer time or Plus subscription. Apps like AutoCart let you define the cart-value trigger and the discount percentage in one rule; the app adds the discounted product to the cart itself the moment the customer qualifies. (For the plain-language version of what a "rule" is, see our beginner's guide to Shopify cart rules.)

Setup steps using AutoCart:

  1. Install AutoCart from the Shopify App Store and open the app dashboard.
  2. Create a new rule and set the trigger condition to cart value threshold (e.g., "cart subtotal over $75").
  3. Select offer type discounted product, choose the add-on item, and set the discount percentage (e.g., 30% off).
  4. Set the cart message explaining the offer — for example, "You've unlocked 30% off this phone case."
  5. Decide whether customers can remove the add-on, and save the rule.

For price-only promotions, compare this workflow with the native ways to auto apply a Shopify discount code. Once live, the discounted item appears in the cart automatically the moment the threshold is crossed — no code, no discount code to remember, no manual search for the product. If the customer removes items and drops back under the threshold, AutoCart removes the add-on automatically too, so the discount doesn't ride along to checkout on a cart that no longer qualifies. The same rule engine also handles the free-gift version of this mechanic — see our BOGO setup guide if your add-on should be 100% off instead of a percentage discount.

Which method should you use?

Native discount Shopify Functions Rule-based app
Auto-adds the discounted product No — customer must add it Yes Yes
Requires Shopify Plus No Yes No
Requires a developer No Yes No
Setup time Minutes Days to weeks Minutes
Cost Free Plus subscription + dev time Low monthly fee
Auto-removes if cart drops below threshold No Depends on build Yes

If you're testing whether the offer moves your numbers at all, the native discount costs nothing to try — just expect low redemption, since customers won't discover the add-on on their own. If you already have Shopify Plus and a genuinely custom pricing logic requirement, Functions gives you full control. For most merchants running a standard "spend $X, get Y% off this add-on" offer, a rule-based app gets you the automatic behavior without the Plus subscription or the build time.

Common mistakes with cart-value discount triggers

  • Choosing an add-on that isn't actually complementary. A discounted product that has nothing to do with the rest of the cart reads as a random upsell, not a helpful suggestion. Pick items that pair naturally with what customers are already buying.
  • Discounting too deep. A 50%+ discount on an add-on can erase the margin gain you were trying to create in the first place. Test smaller discounts (15–30%) before assuming you need a steep one to move behavior.
  • Setting the threshold at or below your current AOV. If most carts already clear $80 and your trigger is $75, you're discounting orders that would have happened anyway instead of lifting basket size.
  • Not explaining the discount in the cart. An item that appears already discounted with no context can look like a pricing error. State the offer plainly ("30% off — unlocked at $75+").
  • Skipping the removal case. If the customer edits their cart back below the threshold, check whether the discounted item and its price adjustment are removed together. An orphaned discounted line item at checkout is a margin leak.

Discounted add-on vs. free gift vs. BOGO: frequently asked questions

What's the difference between a discounted add-on and a free gift on Shopify? A free gift is typically a low-cost item given away at 100% off as a reward for reaching a spend threshold, with little connection to the rest of the cart. A discounted add-on is usually a complementary product priced at a percentage off — you still earn revenue on it, and it works best when it's relevant to what's already in the cart.

Can Shopify automatically add a discounted product to the cart? Not on its own. Shopify's native Buy X Get Y discount can price a product at a percentage off, but the customer has to add it to their cart manually before the discount applies. To have it appear automatically, you need Shopify Functions (Shopify Plus) or a rule-based app like AutoCart.

Do I need Shopify Plus to run a cart-value discount trigger? No. You only need Shopify Plus if you build the auto-add logic with Shopify Functions. The native discount method and rule-based apps both work on standard Shopify plans.

What happens to the discount if the cart drops below the threshold? With the native discount method, nothing automatically removes an item that no longer qualifies once it's in the cart. A rule-based app like AutoCart removes the discounted add-on the moment the cart falls back under the threshold, so the offer doesn't leak to checkout.

Start with the offer that fits your margin

If you're not sure whether a free gift or a discounted add-on fits your store better, the underlying question is whether you'd rather give something away outright or make an easy, complementary sale at a lower margin. Either way, the setup problem is identical: Shopify can price the offer, but it can't add the product to the cart by itself.

For most merchants without Shopify Plus, a rule-based app is the fastest path to an offer that actually redeems — set the threshold, the discount percentage, and the product once, and the cart handles the rest automatically. This is one of several levers worth testing against your baseline; see the full list of AOV tactics for the others. The same discounted-product mechanic also works for gift wrap or gift note upsells — see our guide to auto-adding a paid gift wrap upsell to Shopify orders if that's the offer you're building.

Try AutoCart free on your Shopify store: apps.shopify.com/autocart-auto-add-to-cart