Buy-one-get-one is a great offer wrapped in a bad delivery mechanism. The classic version makes the shopper type a code at checkout - and every code you make someone type is a place they drop off, or go hunting for a better code on a coupon site. Here is how to run BOGO on Shopify with no code at all.
Why discount codes hurt BOGO
Codes feel harmless, but they quietly cost you:
- Leakage. The moment a code field appears at checkout, some shoppers open a new tab to search for a bigger discount. Sometimes they find one. Sometimes they just leave.
- Friction. A code is one more thing to remember, copy, and paste. Mobile shoppers especially bounce here.
- Support tickets. "The code did not work" is one of the most common promo complaints, usually because of a typo, a case mismatch, or an eligibility rule the shopper did not read.
Automatic discounts remove all of that. The offer just applies when the cart qualifies. No code, no field, no leakage.
Option 1: Shopify's native Buy X Get Y (automatic)
Shopify Discounts can create an automatic Buy X Get Y discount - no code required. For example, "buy 2 t-shirts, get 1 at 100% off."
This is a real, free, native option, and for simple same-product BOGO it can be enough. Its limits:
- The shopper still has to add all the items themselves. If they add two shirts but not the third, they get no discount and no prompt.
- No on-site messaging. Nothing on the product page or cart says "add one more, the third is free."
- Cross-product BOGO ("buy sneakers, get socks") works, but again only if the shopper manually adds the socks.
If your BOGO is same-product and your shoppers naturally add multiples, start here. It costs nothing.
Option 2: Automatic gift-add (the hands-off version)
For a BOGO where you want the free item to appear on its own, use automatic gift-add. The trigger is the presence of a product (or any product from a collection) in the cart. When it fires, the "get" item is added automatically and discounted 100% at checkout - no code, no manual step.
Valotrix Cart Rewards builds this on Shopify's native discount system using the real product variant, not a $0 clone. That keeps your catalog and inventory clean and keeps Shop Pay express checkout behaving normally. The recipe is written up in Buy one, get one (BOGO).
A typical setup
- Trigger: cart contains a product from the Sneakers collection.
- Reward: a specific pair of socks, added automatically at 100% off.
- Guardrail: optionally add a "no discount code applied" condition so the BOGO does not stack on top of a sitewide sale.
You can surface the offer earlier with a product-page block so shoppers see "buy this, get this free" before they even reach the cart. See Theme blocks.
Handling out-of-stock gifts
A code-based BOGO happily promises a free item you cannot ship. Automatic gift-add can be smarter: if every variant of the gift is out of stock, the rule can auto-disable so you never advertise socks you do not have. It stays off until you re-enable it - either manually once you restock, or through a Shopify Flow automation using the app's enable-campaign action. Details in Out-of-stock gifts.
So which one?
- Same-product, shoppers add multiples anyway - Shopify's native automatic Buy X Get Y. Free and enough.
- You want the free item to appear automatically, with a nudge, and no code - automatic gift-add.
Either way, drop the typed code. It is the part of BOGO that costs you conversions.
Keep reading
- How to set up gift with purchase on Shopify - the three ways to run a free-gift offer.
- Free gift over a spend threshold - "spend $75, get a gift" done cleanly.
Want the automatic version? Install Valotrix Cart Rewards - product and collection triggers start on the Growth plan, with a 7-day free trial.