How to run BOGO and "buy 2 get 1 free" on Shopify

Updated · SMART Bundles App & Upsells (E-TRADE PARTNER)

Use Shopify's built-in Buy X get Y discount: put the product under both "Customer buys" and "Customer gets", set the quantities and choose Free. Customers add every unit themselves, Shopify discounts the lower-priced item, and nothing shows on the product page. SMART Bundles adds two other ways: a Buy X, get Y bundle offer that shows the deal on the product page and adds the whole set in one click, and a cart-only Buy X get Y discount type.

SMART Bundles App & Upsells is a free Shopify app for bundles, quantity breaks, free gifts and upsells.

Try it free
On this page
  1. BOGO with Shopify's Buy X get Y
  2. BOGO with SMART Bundles: two different tools
  3. Side by side
  4. Which one to use
  5. Frequently asked questions
Buy X, get Y widget with buy one get one free and bigger tiers
Buy X, get Y: buy one, get one free, with bigger tiers below.

BOGO with Shopify's Buy X get Y

  1. In Shopify admin, go to Discounts > Create discount > Buy X get Y, and choose a discount code or an automatic discount.
  2. Under Customer buys, select Minimum quantity of items, enter how many the customer buys, and pick the product or collection.
  3. Under Customer gets, enter how many items get the discount and pick the same product or collection. For BOGO that's buy 1, get 1; for "buy 2 get 1", buy 2, get 1.
  4. Under At a discounted value, select Free, or Percentage for "buy 1, get 1 at 50% off".
  5. Optional: Set the maximum number of uses per order to cap how many times the promotion applies to one order. By default it's unlimited.
  6. Set eligibility, combinations and active dates, then save.

Source: Buy X get Y discounts. When the product or collection is the same on both sides, the lower-priced item the customer chooses gets the discount. Shopify's page doesn't spell out how it counts units when both sides are the same product, so test your setup with a real cart before launch.

Limits of the built-in discount

  • Customers add every unit. The "get" item is never added automatically. A shopper who adds one item for a BOGO sees no discount. Why, and the fixes: Why Shopify's Buy X get Y doesn't add the free item.
  • Nothing on the product page. The deal shows once the items are in the cart, so you have to advertise it yourself.
  • No other product discount on those items outside Shopify Plus. If a code also targets them, Shopify applies the best overall discount (Combining discounts).
  • Minimum amounts use full prices, before other discounts, and never include shipping or taxes.
  • POS: an automatic Buy X get Y applies only at locations with a POS Pro subscription, once you turn it on for POS (Managing sales channel settings for discounts).

BOGO with SMART Bundles: two different tools

SMART Bundles (shown as SMART Discounts in Shopify admin) has a bundle offer named Buy X, get Y and a discount type named Buy X get Y. The names are close; the behavior isn't.

1. The bundle "Buy X, get Y" offer (product page)

This one lives in the product page widget. The Buy X, get Y template has three offer cards: "Buy 1, get 1 free", "Buy 2, get 2 free" and "Buy 3, get 3 free". When the shopper picks a card, the theme's Add to cart button adds the buy and get units together.

  • Same product only. It's always the product on the page, and its variants count together.
  • Fields: Buy quantity, Get quantity and the discount for the get units: Free (the default), Percentage off, Amount off each item, Amount off total, Fixed price per item or Fixed total price. For "buy 2 get 1", set Buy quantity 2 and Get quantity 1.
  • Whole sets. A set is buy + get units. The Function counts the units of that product in the cart and discounts the get units of each complete set, choosing the cheapest units.
  • Repeat for bigger quantities is ticked by default: with buy 1 get 1, 4 in the cart get 2 free. Untick it and only one set is discounted, however many are added.
  • The cart counts, not the click. Units added another way still form sets, unless you tick Apply the discount only to items added through the widget.
  • Several Buy X, get Y cards never stack on the same units. Each unit counts for one offer only.
  • Automatic only: no code, no usage limit, no once per customer. You can limit it by Markets and exclude B2B or POS.

Setup: Buy X, get Y bundle offer.

2. The "Buy X get Y" discount type (cart and checkout)

This one is under Other discount types on Create new discount. It works like Shopify's: nothing on the product page, and the customer adds the Y items.

  • Customer buys: Any items from Products, Variants, Collections or All products (or "other than" each), Based on Product quantity or Product price, with a Required quantity or Required amount.
  • Customer gets: the items and a Free quantity. Every discounted item is free; this type has no percentage or amount off.
  • Units on both sides count twice. When the same product is under Customer buys and Customer gets, its units count toward the required quantity too. One-product BOGO is Required quantity 2 and Free quantity 1; "buy 2 get 1" is 3 and 1.
  • One tier applies, with no repeats per set. If several tiers qualify, the one that frees the most units wins. For BOGO on bigger carts, use Add tier: 2 and 1, 4 and 2, 6 and 3.
  • Application order picks which items get the discount: Default cart order, Lowest priced first or Highest priced first.
  • Codes and targeting: automatic or code, Maximum discount uses for codes (including one use per customer), customer segments, markets, customer tags and countries.

Setup: Buy X get Y discounts.

Side by side

Shopify Buy X get YSMART bundle "Buy X, get Y" offerSMART "Buy X get Y" type
Shown on the product pageNoYes, as offer cardsNo
Adds the free unitsNoYes, buy + get in one clickNo
ProductsProducts or collectionsThe page's product onlyProducts, variants, collections or all
Bigger cartsCan apply more than once; cap with maximum uses per orderRepeats per full set (default)One tier; add a tier per step
Which units are discountedThe lower-priced item the customer chooses (same product or collection)The cheapest units of each setSet by Application order
CodesYesNo, automatic onlyYes
Customer targetingCustomers, segments, marketsMarkets; exclude B2B, POSSegments, markets, tags, countries

Which one to use

  • One product, shown on its page, added in one click: the bundle Buy X, get Y offer.
  • A free item from a different product or collection: the Buy X get Y type, or a gift on a bundle offer if it should be added for the shopper. See Buy X get Y.
  • A code, a usage limit or customer segments: the Buy X get Y type, or Shopify's built-in discount.
  • A gift added on any page once the cart reaches a spend: Free gift, see Free gift.

Show BOGO on the product page

Install SMART Bundles App & Upsells, pick the Buy X, get Y template, and shoppers add the whole set in one click. The app is free.

Install free on Shopify

Frequently asked questions

›Can a BOGO be limited to once per customer?

Only with a code. Shopify's built-in codes have Limit to one per customer, and the app's Buy X get Y type has the same option under Maximum discount uses. Bundle offers are automatic, so they have no per-customer limit.

›Can I run several BOGO promotions at once?

Yes. Each one is its own discount, and Shopify allows 25 active automatic discounts in total. A bundle with three Buy X, get Y cards counts as one.

›Does BOGO work with a discount code?

Outside Shopify Plus, items in a Buy X get Y discount can't get another product discount. An order discount code can apply on top when both discounts allow combining with each other.

Related articles