Skip to main content

How to Create Buy One Get One (BOGO)?

Learn how to create BOGO offer in your Shopify store

Written by Neo
Updated over a month ago

BOGO offers let you reward customers by giving them a free or discounted product when they buy another. For example, Buy 1, get 1 free or Buy 1, get 50% off the 2nd. This guide explains each setting step by step.

To get started, navigate to Quantity X → Create Offer and choose Buy One Get One.

Step 1: Pick a Layout

You can decide how the widget will display discounts on product pages:

  • List – discounts stacked in a vertical list with progress bar.

  • Grid – table format with “Buy” and “Get” columns.

👉 Note: The Choice List layout is not available for BOGO offers.

👉 If you choose List or Grid layout, you can hide these widgets on the product page. The widget will then be visible only in the cart.

Step 2: Enter General Information

  • Offer name – internal only, customers won’t see it.

  • Apply offer to:

    • Specific products/variants

    • Specific collections

    • Whole store

  • Exclude products:

    • Specific collections

    • Specific tags

👉 If you want the BOGO to apply across your entire catalog, choose Whole store. For targeted promos, select specific products or collections.

If you choose “Specific products/variants” or “Specific collections,” click Browse to select them.

You can exclude products by specific collections or tags. For example, let's say you have created products with certain tags. If you don't want to show the offer for these products, you can exclude them:

Step 3: Configure Discount Conditions

Here you define when the BOGO applies:

  • Condition type

    • Minimum quantity items → e.g., Buy 1 item, get 50% off the 2nd.

  • Value type

    • Percent discount (%) → e.g., 50% off the 2nd item.

    • Amount discount ($) → e.g., $10 off the 2nd item.

👉 The discount applies only when the set condition is met.

Step 4: Edit Price Tiers

You can create multiple BOGO rules.Example:

  • Tier 1: Buy 1 → Get 1 free

  • Tier 2: Buy 2 → Get 1 for 50% off

👉 Highlight certain tiers with tags like Most popular or Best value to grab attention (only available for the list view).

Step 5: Edit Messages (Optional)

Control the text customers see in your discount widget and cart.

  • Offer header – shown above the widget (e.g., Buy One Get One!).

  • Current discount message – displayed when the discount is active. Use variables like {percent_discount} to dynamically show the discount.

  • Discount tag – short tag (e.g., BOGO) that appears in cart and at checkout.

👉 Even if discount messages are off, the discount tag will still appear at checkout.

Step 6: Upsell & Progress Messages (Optional)

Encourage customers to qualify for the BOGO by showing progress messages:

  • Upsell message – shows what’s needed to unlock the deal.
    Example: Add 1 more item to unlock your free product.

  • Success message – shows when the condition is met.
    Example: Congrats! You unlocked Buy 1 Get 1 free.

You can display upsell messages and the progress bar on product pages, cart pages, or checkout pages.

On product pages:

On cart and checkout pages:

👉 Use variables:

  • {quantity_left} → items left to qualify

  • {percent_discount} → discount percentage earned

Step 7: Advanced Settings

Control how the BOGO applies:

  • Any product
    Example: Buy 1 T-shirt, get 1 pair of pants free.
    Use case: Great for mixed-category BOGO promos.

  • Same product
    Example: Buy 1 T-shirt, get another T-shirt 50% off.
    Use case: Encourages bulk buying of one product.

  • Same product variant
    Example: Buy 1 black T-shirt, get another black T-shirt free.
    Use case: Best for promoting a single product variant.

👉 You can also exclude BOGO discounts for B2B customers if you don’t want them applied to wholesale orders.

Exclude customers

Here, you can also choose who is not eligible for this discount:

Need Help?

If you have any questions, please contact our support team.

📩 Contact Support: Reach out to us via live chat or send an email to [email protected].

Did this answer your question?