WebToffee Logo
WebToffee Logo
  • Home
  • Plugins
  • Shopify apps
  • Bundles
  • Resources
    • Blog

      Explore expert guides, how-tos & insights to grow your eCommerce business.

    • Info Library

      Explore short reads on WordPress, eCommerce & privacy topics.

    • Infographics

      Easy-to-share visuals that explain eCommerce and privacy concepts.

    • Customer Stories

      Read inspiring stories of our customers and their successful business.

    • Customer Testimonials

      See what customers say about using WebToffee tools and plugins.

  • Help
    • Documentation

      Get started with step-by-step guides for our WordPress & Shopify solutions.

    • Frequently Asked Questions

      Find quick answers to commonly asked questions about our solutions.

    • Support

      Reach out for plugin setup, technical issues, licenses, or billing help.

    • Free Plugin Documentation

      Setup guides for all our free WordPress plugins to help you get started.

Login
cart 0

Set Up WooCommerce BOGO Offers

Last updated on June 26, 2025

⚠️

Note: This guide for BOGO offers in WooCommerce is intended solely for users of the Smart Coupon for WooCommerce (free) plugin, version 2.0.0 or higher. For those using an earlier version of the plugin, please visit the previous documentation.

BOGO, short for “Buy One, Get One,” is an effective promotional strategy that drives sales and draws in more customers to your online shop. Be it “Buy X, Get X” or “Buy X, Get Y,” WooCommerce BOGO Offers encourage customers to include additional products in their cart, which leads to a higher average order value for your store.

With the Smart Coupon for WooCommerce(free) plugin, you can design advanced BOGO offers tailored to different discount strategies. This guide will assist you in setting up various types of BOGO offers on WooCommerce.

Popular BOGO offers

  • Buy X, Get Y – Customers buy one product and get another at a reduced price or for free.
  • Discount on the Second Product – Offer a fixed amount or percentage off the second item.
  • Spend and Receive Complimentary Products – Reward customers with a discounted or free product when their cart total reaches a specific threshold.

How to set up a BOGO offer

Once you have the plugin installed and activated:

  1. In your WordPress dashboard, go to Smart Coupons > BOGO.
  2. Click on + Add New to create a new offer.
  3. Choose a pre-defined BOGO type or customize your own:
    • Buy product X, get product X/Y: Add the same or a different product to the cart for free or at a discount.
    • Cheapest/Most Expensive Product in Cart (Premium feature): Automatically apply the offer to the least or most expensive item.
  4. Fill in the Offer Details – Enter a campaign title and description, specifying how these will appear to customers.
  5. Click Continue to set up your BOGO offer.
Create new BOGO offer
Create new BOGO offer

Buy product X, get product X/Y

Buy product X, get product X/Y. These offers allow you to buy a product and add either the same item or other selected products to your cart for free or at a discounted price.

Step 1: Set up what customers get as a giveaway

The first step is to determine what customers will receive once the conditions for the BOGO offer are fulfilled. To set up what the customer gets:

  • Choose an offer product.
  • Set offer quantity.
  • Set offer value/discounts.
👉

The free version of the plugin offers only one option, which is a Specific product.

The other premium options include:

  • Same product as in cart: Add the same product that triggered the offer to the cart.
  • Product from a selected category: The customer will be asked to add a product from the selected category to the cart.
  • Any product from the store: A random product(s) from the store will be added to the cart.

Get Smart Coupon for WooCommerce to get these premium options.

Set up what customers get as a giveaway
Set up what customers get as a giveaway
  • Specific product(s) – Select one or more products customers will receive when the offer is triggered. Multiple products can be selected at a time.
    • Select Any of the above to provide just one of the chosen products, or pick All of the above to include all selected products as giveaways.
  • In quantity of – Set the offer quantity by specifying how many selected products will be added as giveaways. For example, if you choose a quantity of 2, the customer will receive 2 of the selected product(s).
  • Discount type – Set offer value by offering a special discount for your giveaway product! You can provide the product for free or offer a percentage or fixed discount. The discount applies only to the offered products, not to the entire cart.
👉

Do more with Smart Coupons for WooCommerce Pro.

  • Allow Customers to Choose a Complimentary Product of Choice
  • Buy a Product and Get the Same Product for Free or at a Discount
  • Spend an Amount X and Get a Product for Free or at a Discount

Step 2: Set up a trigger – Condition for offer activation

In this step, you will define when the Buy One Get One (BOGO) offer becomes active. You can establish conditions that will automatically trigger the offer once they are met. To configure a BOGO trigger:

  • Choosing a trigger type.
  • Set up product or category restrictions.
  • Adding optional conditions.
WooCommerce BOGO Offers - Offer Trigger
WooCommerce BOGO Offers – Offer Trigger
  • Customer – Choose to base your offer on the cart’s quantity or the cart’s subtotal.
    • Spend subtotal of – Set a minimum and maximum amount range for the cart subtotal that activates the offer—for example, a subtotal between $50 and $100.
    • Buy quantities of – Choose specific product quantities that need to be in the cart for the offer to apply. 
  • Customer buys – You can restrict the offer by adding more conditions to the cart rather than the number of products in the cart or the cart value. As for the free version, you can only restrict the offer based on products in the cart. Click on the +Add button to set a product restriction. The available options are:
    • Customers must buy specific products.
    • Customers can buy any products except selected ones.
👉

The other options available in the premium version, Smart Coupon for WooCommerce, are:

Category restrictions for offer

  • The cart must contain products from a specific category.
  • The cart can include products from any category except selected ones.


  • OR Condition: The offer applies if any chosen conditions are met.
  • AND Condition: The offer applies only if all chosen conditions are met.


  • Optional conditions: Click on + Add under Optional conditions to access additional trigger conditions.
    • Quantity of each product: Each product in the cart should meet your specified range.
    • Usage limit per user: Limit how often each customer can redeem the offer.
    • Usage limit per offer: Set the maximum number of times the offer can be redeemed. (Across all users)
    • Allowed email: Apply the offer to users with specific email addresses only.
BOGO - Trigger
BOGO – Trigger

Step 3: Set Offer Frequency

Apply Offer – choose how often the offer applies when the cart meets the trigger condition:

  • Once – The offer applies a single time based on the defined conditions. Example: For “Buy 2, Get 1 Free,” the offer applies only once.
  • Repeatedly – The offer repeats each time the conditions are met. You can set a limit for repeating the offer. Example “Buy 2, Get 1 Free” can scale to “Buy 4, Get 2 Free” or “Buy 6, Get 3 Free.”
BOGO - Offer apply frequency
BOGO – Offer apply frequency
👉

Additional offer frequency method with the premium plugin: Smart Coupons for WooCommerce.

  • Custom: You can customize the offer frequency based on spend or quantity thresholds. Define intervals that specify when the trigger activates again, allowing for entirely personalized offers.
    • Based on Spend:
      • Spend $10–$100: Get 1 free product.
      • Spend over $100: Get 3 free products.
      • Spend over $300: Get 4 free products
    • Based on Quantity:
      • Buy 4–10 items: Get 4 free products.
      • Buy more than 10 items: Get 6 free products.
      • Buy over 51 items: Get 10 free products.

      For more info on how to offer frequency works, refer to How to Set Up Recurring BOGO Offers: Buy 1, Get 2 – Buy 2, Get 4

      Step 4: Set offer apply method

      The offer typically activates automatically when the cart satisfies the specified conditions. Alternatively, you can manually apply it using a coupon code. Provided the trigger conditions are fulfilled, the offer will be applied once the code is entered.

      Activate BOGO Offer
      Activate BOGO Offer

      Step 5: Set offer display options

      Under Display Offer On, Choose the pages where you’d like customers to see the offer, such as My Account, Checkout, or Cart (optional).

      Display offer on selected page
      Display offer on selected page

      Step 6: Schedule the offer

      If you want to schedule your offer, go to Schedule and select a Start and/or End Date. The offer will only be available within the chosen timeframe.

      Schedule offer
      Schedule offer
      • Both Dates Set: The offer remains valid within this range.
      • Only Start Date Set: The offer begins on that date and stays active until manually disabled.
      • Only End Date Set: The offer is active immediately and ends on the specified date.

      Step 7: Publish the offer

      Once you’re satisfied with the offer settings, click Save & Activate. The coupon is now live and ready to attract more customers to your WooCommerce store!

      Demo

      This example showcases a BOGO offer: when a customer buys any product from the store, they receive a free hoodie.

      Bogo demo
      Bogo demo

      Unlock More Customization with the Pro Version

      The Smart Coupons for WooCommerce (Pro) plugin offers additional BOGO customizations such as:

      • Category restrictions for BOGO offers
      • Offer the cheapest product in the cart as giveaway
      • Fully customizable Buy X Get Y coupon
      • Buy X & Get any product in the store
      • Buy X & Get the same product in the cart
      • Buy X & Get any product from specific category

      Get plugin now

      Avatar

      Written by

      Nayana

      Content writer @ WebToffee. Fueled by caffeine and a love of sarcasm. When not writing, you can catch her binging the latest drama series.

      Comments (2)

      1. Carl Fiorentino

        November 28, 2022

        On the BOGO I keep getting that the product is not eligible for a coupon. I have the same product listed with a discount and that works.

        Reply
        • Mike

          December 5, 2022

          Hi Carl,
          Sounds like you need some technical assistance. Please visit our support page for technical assistance: https://www.webtoffee.com/support/. Our support agents will definitely help you out.

          Reply

      Got any query? Please leave a comment or reach out to our support

      Cancel reply

      Your email address will not be published. Required fields are marked *

      Product icon

      Smart Coupons for WooCommerce

      Get free plugin

      On this page

      • Popular BOGO offers
      • How to set up a BOGO offer
      • Buy product X, get product X/Y
      • Step 1: Set up what customers get as a giveaway
      • Step 2: Set up a trigger - Condition for offer activation
      • Step 3: Set Offer Frequency
      • Step 4: Set offer apply method
      • Step 5: Set offer display options
      • Step 6: Schedule the offer
      • Step 7: Publish the offer
      • Demo
      • Unlock More Customization with the Pro Version

      Get started with your WebToffee plugin!

      Your plugin will be downloaded in a few seconds...

      All you need to do is add the plugin to your WordPress website.

      To install and activate the plugin, view our installation guide.

      download now
      Webtoffee
      Facebook
      Twitter
      Youtube
      Linkedin
      WordPress

      We develop awesome WordPress and WooCommerce plugins and Shopify apps to help build successful online businesses.

      © 2025 WebToffee. All rights reserved.

      Our plugins

      • GDPR Cookie Consent
      • PDF Invoices & Packings Slips
      • Product Import Export Plugin
      • User & Customer Import Export
      • Import Export Suite
      • Sequential Order Numbers
      • Smart Coupons for WooCommerce
      • URL Coupons for WooCommerce
      • PayPal Express Checkout
      • Stripe Payment Gateway
      • Subscriptions for Woocommerce
      • WooCommerce Product Feed & Sync Manager
      • PrintNode for PDF Invoices
      • Order, coupon, subscriptions for WooCommerce
      View more +

      Get Started

      • Plugins
      • Testimonials
      • Customer Stories
      • Affiliates
      • We're hiring

      Help & Support

      • Installation Guides
      • Documentation
      • Documentation (Basic)
      • Info Library
      • Infographics
      • FAQ
      • Support

      Company

      • About Us
      • Terms & Conditions
      • Privacy Policy
      • Cookie Policy
      • Refund Policy
      • Support Policy

      © 2025 WebToffee. All rights reserved.

      We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. However you may visit Cookie Settings to provide a controlled consent.
      Cookie settingsReject allAccept all
      Privacy & Cookies Policy

      Privacy Overview

      This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of the basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website, to store user preferences and provide you with content and advertisements that are relevant. Such cookies will be stored on your browser but only upon procuring consent.

      You will also have the option to opt-out of these cookies should you want to. But opting out of some of these cookies may have an effect on your browsing experience as per the descriptions elucidated against the respective categories below.

      Necessary
      Always Enabled
      The cookies defined under this category are absolutely essential for the website to function. Hence they are loaded by default irrespective if user consent.
      CookieDescription
      __cfruidCloudflare sets this cookie to identify trusted web traffic.
      __stripe_midStripe sets this cookie cookie to process payments.
      __stripe_sidStripe sets this cookie cookie to process payments.
      cookielawinfo-checkbox-advertisementSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
      cookielawinfo-checkbox-analyticsSet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category .
      cookielawinfo-checkbox-necessarySet by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category .
      cookielawinfo-checkbox-preferencesThis cookie is set by the GDPR Cookie Consent plugin to check if the user has given consent to use cookies under the "Preferences" category.
      CookieLawInfoConsentRecords the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
      PHPSESSIDThis cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user sessions on the website. The cookie is a session cookie and is deleted when all the browser windows are closed.
      viewed_cookie_policyThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not a user has consented to the use of cookies. It does not store any personal data.
      Analytics
      Analytics cookies help us understand how our visitors interact with the website. It helps us understand the number of visitors, where the visitors are coming from, and the pages they navigate. The cookies collect this data and are reported anonymously.
      CookieDescription
      _gaThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assigns a randomly generated number to identify unique visitors.
      _ga_BQH8MSKD4MThis cookie is installed by Google Analytics.
      _gat_gtagIdentification code of website for tracking visits.
      _gidThis cookie is installed by Google Analytics. The cookie is used to store information on how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visited in an anonymous form.
      _hjAbsoluteSessionInProgressHotjar sets this cookie to detect the first pageview session of a user. This is a True/False flag set by the cookie.
      _hjFirstSeenHotjar sets this cookie to identify a new user’s first session. It stores a true/false value, indicating whether it was the first time Hotjar saw this user.
      _hjidHotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID.
      _hjIncludedInPageviewSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's pageview limit.
      _hjIncludedInSampleThis cookie is set to let Hotjar know whether that visitor is included in the sample which is used to generate heatmaps, funnels, recordings, etc.
      _hjIncludedInSessionSampleHotjar sets this cookie to know whether a user is included in the data sampling defined by the site's daily session limit.
      _hjSessionUser_1376571No description
      _hjTLDTestTo determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails.
      CONSENTYouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
      has_recent_activityThis cookie is used to signal to the code repository website if the user has browsed other website resources during the current session.
      tk_aiGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
      tk_lrThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
      tk_orThis cookie is set by the JetPack plugin on sites using WooCommerce. This is a referral cookie used for analyzing referrer behavior for Jetpack.
      tk_qsGathers information for our own first-party analytics tool about how our services are used. A collection of internal metrics for user activity and is used to improve user experience.
      tk_r3dThe cookie is installed by JetPack. Used for the internal metrics for user activities to improve user experience.
      Advertisement
      Advertisement cookies help us provide our visitors with relevant ads and marketing campaigns.
      CookieDescription
      _fbpThis cookie is set by Facebook to deliver advertisements when they are on Facebook or on a digital platform powered by Facebook advertising after visiting this website.
      frThe cookie is set by Facebook to show relevant advertisements to the users and measure and improve the advertisements. The cookie also tracks the behavior of the user across the web on sites that have Facebook Pixel or Facebook social plugin.
      VISITOR_INFO1_LIVEA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
      YSCYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
      yt-remote-connected-devicesYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
      yt-remote-device-idYouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
      Preferences
      Preference cookies are used to store user preferences to provide them with content that is customized accordingly. This includes the language of the website or the location of the visitor.
      CookieDescription
      _gh_sessThis cookie is used to preserve users' states across page requests.
      Others
      Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
      CookieDurationDescription
      _hjSession_137657130 minutesNo description
      _octo1 yearNo description available.
      _zendesk_authenticatedpastNo description
      _zendesk_sessionsessionNo description available.
      _zendesk_shared_sessionsessionNo description available.
      edd_wp_session12 hoursNo description available.
      logged_in1 yearNo description available.
      m2 yearsNo description available.