How to Create Buy One Get One Free Offer on Shopify

Most shoppers buy a single item, even when they'd happily take a second one. A plain percentage discount rarely changes that, because shoppers have to do the math to see the deal.
A buy one get one free offer shows the deal at a glance. Shoppers see the second item marked free on the product page and add both to their cart in one click.
Here are the three ways to create a buy one get one free offer on a Shopify store: with a BOGO app, from your theme settings, or with custom code.
What Is a Buy One Get One Free Offer?
A buy one get one free offer, or BOGO offer, gives shoppers a free product when they buy another product. The free product can be a second unit of the same product or a different product, and the same offer type can also give the second item at a discount, such as buy one, get one 50% off.

A good buy one get one free offer includes:
- A clear badge on each item: Shoppers see which item they buy and which item they get free.
- The free price next to the regular price: A struck-through price shows what the free item is worth.
- A variant picker for each item: Shoppers can choose a different size or color for the free item.
- One button for the whole offer: Both items go into the cart in one click.
The discount on the free item applies at checkout, so shoppers don't need a discount code.
What's the Quickest Way to Create Buy One Get One Free Offer?
- Vitals - All in One App is the quickest way to create a buy one get one free offer for most stores
- Vitals also offers 40+ apps, such as product reviews, a countdown timer and product labels, in one subscription of $29.99/month, so you don't have to install and pay for each app separately
Here's how the three methods compare. If you'd rather weigh several BOGO apps against each other, see our list of the best BOGO apps for Shopify.
How to Create Buy One Get One Free Offer With a BOGO App?
Install the Vitals - All in One App, open its BOGO app and click Create Buy X Get Y. The offer editor opens on one page with a live preview, and the steps below set what shoppers buy, the free reward and where the buy one get one free offer shows.
Step 1: Install the Vitals - All in One App
Install the Vitals - All in One App from the Shopify App Store. The 7-day free trial includes the Vitals BOGO app.

Step 2: Approve the Install in Shopify
Click Install to give Vitals the store data it needs. Shopify then opens the Vitals dashboard.

Step 3: Open Buy X Get Y
In the Vitals dashboard, find Buy X Get Y in the list of apps and click it. Buy X Get Y is the BOGO app inside Vitals.

Step 4: Create a New Buy X Get Y Offer
On the Buy X Get Y page, click Create Buy X Get Y. The offer editor opens with the settings on the left and a Preview of the offer on the right.

Step 5: Choose What Shoppers Buy
Give the offer an Internal name. Only you see the internal name.
In the Applies to card, choose the products shoppers buy to get the buy one get one free offer. Pick All products, or Specific products or collections and click Browse. Use Exclude specific products or collections to leave some products out.
Then set Quantity to buy to 1 for a buy one get one free offer. For a buy 2, get 1 free offer, enter 2.

Step 6: Make the Second Item Free
The Discounts card sets the reward. Enter a Discount name, the label shoppers see in the cart and at checkout, such as "Buy one, get one free". Show savings against sets which price shows struck through, Compare-at price or the current price. The discount shoppers get stays the same.
Reward #1 starts at Quantity 1 with No discount. Set:
- Discount type: Percentage off, with 100 as the discount per item, makes the item free. Amount off or Fixed price give the item at a lower price instead
- Reward products: Keep Smart match, or choose Specific products or collections and click Browse. Pick the same products as Step 5 for a classic buy one get one free offer
- Let customers pick their own product: Tick it to let shoppers choose the free item from a menu in the offer
Tick Discount the cheapest item automatically to make the cheapest qualifying items free at checkout, even if the shopper didn't add them through the offer. With a buy 2, get 1 free offer, 3 items make the cheapest item free. The checkbox works only when the offer has exactly one reward, so skip Add new reward if you want it.

Step 7: Schedule the Offer and Choose Who Sees It (Optional)
In the Schedule card, Immediately starts the offer once you publish it, and Schedule starts it on the date and time you set. Tick Set end date to end the buy one get one free offer on a set date, such as the last day of a holiday sale.
If your store sells in several Shopify Markets, Visibility shows the offer in All markets, Specific markets or All markets except the ones you pick. Under Exclude from this offer, tick Shopify B2B customers or click Add tags under Customers with specific tags to hide the offer from those customers. Excluded customers don't get the discount at checkout either.

Step 8: Pick the Layout and Write the Offer Text
In the Placements card, the Product page placement is on. Choose a Layout: Modern puts the button below the products, and Classic puts it next to the free item.
Then write the Header, the Buy badge on the item shoppers buy, the Get badge on the free item and the Button text. Each field starts with dynamic text, such as "Buy {{ buy_quantity }}, get {{ get_quantity }}", which fills in the offer's numbers for you. Color theme at the top of the card sets the offer colors, with nine presets to choose from.
If you set an end date in Step 7, tick Add countdown timer to show the time left above the offer. Customize appearance opens more settings, such as the offer's Position on the product page.

Step 9: Show the Offer in More Places (Optional)
Switch on more placements in the same Placements card:
- Cart page: Suggests the free item when shoppers view their cart
- Pop-up on Add to Cart: Shows the offer right after a shopper adds one of the offer's products with your store's own button
- Pop-up on Checkout: Shows a last-chance offer when the shopper clicks the Checkout button
- Thank you page: Shows the offer after the shopper completes a purchase
With two or more rewards, the Cart page, Pop-up on Add to Cart and Thank you page placements show Unavailable. Below the placements, Add to cart redirect sets where shoppers go after adding the offer. Use global setting follows your store default.

Step 10: Publish, Test on Your Phone and Watch the Results
Click Publish at the top of the editor to put the buy one get one free offer live, or Save as draft to finish it later. A published offer still follows the dates in its Schedule card.
Open a product page on your phone and on desktop. Check that the offer shows the right items, that each variant picker works, and that the cart shows the free item grouped under the item bought. Once the offer is live, Analytics in the More actions menu shows how the offer performs.

Step 11: Voila, Your Buy One Get One Free Offer Is Live on the Store
Your shoppers now see a buy one get one free offer on your product pages, so they can add both items to their cart in one click.

How to Create Buy One Get One Free Offer From Your Theme Settings?
Shopify themes don't include a buy one get one free offer block. Shopify's own Buy X Get Y discount, set up in Discounts in the Shopify admin, applies the discount at checkout, but your theme doesn't show the deal on the product page. To check your theme's settings:
- In the Shopify admin, go to Online Store → Themes and click Customize
- Use the page menu at the top to open a product page
- Click the Product information section and look for a promotion or offer block
A Shopify Buy X Get Y discount with a theme text block can tell shoppers about the deal. There are no badges, no free price on the product page and no single button that adds both items to the cart. Shoppers have to find and add the free item themselves.
How to Create Buy One Get One Free Offer Without an App?
Hire a developer to build a buy one get one free offer into your theme with Liquid, CSS and JavaScript, plus a Shopify discount for the free item.
A custom buy one get one free offer usually involves:
- Duplicating your theme, so the live store keeps working while the code is tested
- Adding the offer's markup to the product page template
- Writing a script that adds both items to the cart in one click and keeps each variant picker in sync
- Setting up a Shopify Buy X Get Y discount or a discount function so the free item applies at checkout
- Testing every product and variant, then publishing the theme copy
Custom code means no extra app, but you or your developer have to maintain it. A theme update can replace the files that hold the code, so the offer may need rebuilding after each update. Cart reminders, pop-ups, scheduling and offer analytics all have to be built by hand too.
How to Increase AOV With a Buy One Get One Free Offer?
A buy one get one free offer increases average order value (AOV) by moving two items, or a second product, in the same order. A BOGO app gets more of those extra items into orders with these settings:
- Ask for more items before the reward. Set Quantity to buy to 2 or 3 for a buy 2, get 1 free or buy 3, get 1 free offer. Shoppers then add more paid items to get the free one
- Discount the second item instead of giving it away. Use Percentage off at 50 for a buy one, get one 50% off offer, so the second item still adds to the order total
- Point the reward at products you want to sell through. Choose Specific products or collections for the reward, so the free or discounted item comes from stock you want to move
- Reward with a different product. A free pair of socks with every pair of shoes adds a second product to the order. Set different products in Applies to and in the reward
- Add more rewards to one offer. Click Add new reward to give several discounted products with one purchase, so the offer adds more items to each order
- Remind shoppers in the cart. Turn on Cart page to suggest the free item to shoppers who added only the paid item
- Offer the reward again at checkout. Turn on Pop-up on Checkout to show the offer when the shopper clicks the Checkout button
Why Isn't My Buy One Get One Free Offer Showing or Working?
Most buy one get one free offer problems have one of these causes:
- The offer doesn't show at all: Check that the offer is published, not saved as a draft, and that today falls between its Schedule dates. An offer also hides when one of its products is deleted or isn't published to your Online Store sales channel
- A different offer shows on the product page: Only one Buy X Get Y offer loads per product page. Narrow Applies to so each product belongs to one buy one get one free offer
- The Add to cart button doesn't work on a sold-out product: The offer still shows on a sold-out product page, but its button can't be used while a sold-out variant is selected. Rewards from a collection or Smart match are offered only while in stock
- Discount the cheapest item automatically is missing: The checkbox shows only when the offer has exactly one reward. Delete the extra rewards to use it
- A placement shows Unavailable: The offer has more rewards than that placement supports. Remove rewards to turn on Cart page, Pop-up on Add to Cart or Thank you page
- The discount doesn't apply at checkout: When a product qualifies for more than one Vitals offer, the higher discount applies to it. Check Discount combinations too, since a turned-off discount type can stop the offer when the cart already has a discount of that type
- You can't publish more offers: Vitals allows up to 100 active discount offers. Turn off or delete offers you no longer use
Which Buy One Get One Free Offer Method Should You Choose?
Vitals - All in One App suits most stores, but the right method depends on your theme and how you want shoppers to see the deal.
- Choose Vitals - All in One App if you want a buy one get one free offer on the product page, a cheapest-item-free option and cart and pop-up placements. It also includes 40+ other apps in one subscription of $29.99/month, so you don't have to install and pay for each app separately
- Choose your theme's setting if a Shopify Buy X Get Y discount at checkout is enough and you don't need the offer on the product page
- Choose custom code if you have a developer, want no BOGO app, and can recheck the code after theme updates
If you already use another BOGO app, see our BOGOS alternatives, Discount Ninja alternatives and Discounty alternatives.
Start a 7-day free trial: Install the Vitals - All in One App and create a buy one get one free offer
Frequently Asked Questions
1. What is the best way to create a buy one get one free offer on Shopify?
Vitals - All in One App is the best way for most stores. It creates a buy one get one free offer without code, with badges, a variant picker for each item, a cheapest-item-free option and placements on the product page, cart page and pop-ups.
2. Does Shopify have a built-in buy one get one free offer?
Shopify has a Buy X Get Y discount that applies at checkout, but Shopify themes don't show the offer on the product page. You'll need a BOGO app or custom code to show the deal and add both items in one click.
3. Can I create a buy 2, get 1 free offer?
Yes. Set Quantity to buy to 2 in the Applies to card and keep the reward at Quantity 1 with Percentage off at 100. Tick Discount the cheapest item automatically to make the cheapest of the three items free.
4. Can the free item be a different product?
Yes. Choose Specific products or collections for the reward and pick the product you want to give away. Tick Let customers pick their own product to let shoppers choose the free item from several products.
5. Can shoppers pick a different size or color for the free item?
Yes. The offer shows one variant selector per unit, so shoppers can add a different variant for each item to the cart in one click, such as one tee in M and the free tee in L.
6. How does the free item show in the cart?
The free item is grouped under the product the shopper bought, in the Vitals Cart Drawer and in Shopify Checkout. If the shopper removes the product bought, the free item is removed too. A free item of the exact same variant shows as its own cart line.
7. Can I offer buy one get one free for a limited time?
Yes. In the Schedule card, choose Schedule to set a start date, then tick Set end date to end the offer on a set day. With an end date set, you can tick Add countdown timer to show the time left above the offer.


