Skip to main content

Introduction

A Buy One, Get One (BOGO) deal, also known as Buy X, Get X, 2 for 1 and 2 x 1 in some regions, is one of the most popular deals for stores to clear inventory and increase average order value. In this guide, you will learn how to set up automatic BOGO deals using product filters, offers and optionally preconditions in Coupons+.

What you’ll be building

The offer: Buy 1 pair of Nike Shoes (Brand + Category) and get one for free. By the end of this tutorial, you will be able to create deals that:
  • Target very specific items: Buy 1 pair of Shoes Categories in the Nike brand.
  • Apply automatically without the customer needing to enter a coupon code manually.
  • Add the discounted item to the cart automatically if it is not in it.
  • Can be applied repeatedly.
  • Can combine multiple offers per set of eligible items, like a Same Products + Shipping Discount.
  • Can be restricted using preconditions.

Before we begin

For this tutorial we will be using the free Coupons+ plugin for WooCommerce. If you don’t have it already, you can download it here: Coupons+.

Follow along with a demo site

To make it easier for you to test and replicate the steps in this tutorial, we have designed a demo store with some dummy data that you can use for testing. This tutorial uses the exact same site and data set. It is recommended that you replicate the steps in this tutorial using the demo site.

Coupons+ Demo Store

Temporary WooCommerce demo store for testing Coupons+
If at any point in this tutorial you have any problems or questions, you can ask for help here.
1

Creating the coupon

From the WordPress admin dashboard, go to Marketing > Coupons > Add New Coupon, in the same way you would create a regular WooCommerce coupon.

When you launch the demo site, this page is loaded by default.

2

Adding the product filters

The first thing to do is selecting your product filters. For this BOGO deal, these filters target the items that the user must buy in full for the BOGO deal to apply. This is the Buy part of the Buy One, Get One.
  1. Click Configure offer. A new popup will appear. This will guide you through the process of selecting all your necessary product filters. The first screen will ask you to select the type of deal that you plan to create.
    It is important to know that the deals in this screen do not add the offer itself. Instead, these are what we call Suggested Scopes, they help you pick your product filters and offers based on the type of deal with personalized labels, screens and calls to action.
  2. Select Buy One, Get One, since that is what we are building. The Suggested Scopes screen with a list of suggested scopes like buy one, get one, item discounts, bundles, etc. Next, you will be asked the type of products. For this demo we want to target all Shoes Categories from Nike Brands, so the first thing to do is add the Categories filter.
  3. Click In Specific Categories and type Shoes, then from the search results select that category or hit return/enter
    The product filters list selection screen
    The categories filter with the shoes category added in
    Now here’s the interesting part: we don’t just want shoes from any brand. We specifically want shoes from the Nike brand, so we need to add a second filter in this group to narrow down the product selection. To do that, we need to add the Brands filter.
    If you are creating an offer targeting only a specific product or SKU, you can skip the next step.
  4. From the same screen, in the sidebar on the right you will be presented with a list of compatible filters you can combine with your current selection (in this case filters compatible with the Categories filter). Click And From Brands to add the Brands filter and type Nike. Your filters should look like the following image: The filters selection screen showing the categories and brands filters Now we have 2 filters: Categories and Brands. Because these two filters are in the same group, any item in the cart must match both filters in order to be eligible. Finally we just need to specify the quantity that the customer must buy.
  5. Click Next. In this screen you will be asked the required quantity. We’ll leave it at 1 since we are building a regular Buy 1 Get 1. But you can select the quantity that you need. For example, for a buy 2 get 1 offer (also known as 3 for 2, or 3 x 2), you’d need to type 2. Click Apply to finish adding your product filters. The quantity selection screen for the BOGO offer After adding your filters, a new tree will be created. It should look like the following image: The new tree with the product filters but without the offer yet So what do those filters do? I’m glad you asked. As mentioned before, these are product filters, not cart conditions. Coupons+ will take all items in the cart and run this filter group against them. For this example, Coupons+ will look at each item in the cart and only select those that are both in the Shoes category and from the Nike Brand. If there is an item in the Shoes category but from another brand, like Adidas, it will not be selected since that item only matches one filter and we need the item to match both filters. Once Coupons+ has selected items that matched both filters, it will then pick only 1 from the matching items, since we have a Quantity filter.
    Now here’s an important thing to know: when more items match than the required quantity, eg: 3 items in the cart matched but the Quantity filter is only set to 1, what item gets picked from those 3 depends on the offer the filters are attached to.For BOGO offers like the one we are building, the offer uses the passed filtered items as the “buy” part of the BOGO deal (the items that the user must buy for the deal to apply). It does not apply the discount to the passed items, instead it puts them aside and uses them to apply the discount to additional items of the same type in the cart (or adds them automatically when applicable), therefore the most expensive items will be passed to your offer first, because traditionally, in BOGO offers, the most expensive item is the one that the customer buys and the cheapest is the one that gets the discount.A practical example: In this tutorial we are targeting 1 pair of Nike Shoes. If the customer adds 1x Nike Alphafly 3 ($220) and 1x Nike Air Force 1 ($120), then Coupons+ will pass the most expensive (Nike Alphafly 3), the BOGO offer will put it aside and then check the cart for more eligible items, since there is another one eligible (Nike Air Force 1) it applies the discount to the latter. If there was only one eligible item and you have the option to add the gift items automatically, then an extra item of the same product would be added to the cart.This is in contrast to other offers like Discount. The Discount offer applies the discount directly to the filtered items, so for a Discount offer, the cheapest items will always be filtered first.
3

Adding your offers

Now that you’ve added the product filters, we need to tell Coupons+ what to do with the filtered items after they are filtered from the cart. There are two options: add an offers branch that will take these items and use them for the offer, or add a tiers branch that can allow you to add offers in tiers. Since the latter is used for bulk and tiered offers, we will be adding a simple offers branch with the BOGO offer
  1. Click Add offer
  2. Select BOGO: Different Products. This will open the configuration screen for that offer.
  3. Set the quantity of the discount items, the items that will receive the discount (the free items). For this tutorial, set it to 1. This does not include the filtered items. The filters for this tutorial will select 1 pair of Nike Shoes. The quantity for this offer excludes the 1 pair that was filtered and will select another 1 from the cart. For this example, we will leave it at 1 since we are building a simple Buy 1, Get 1 offer. But you can select the quantity that you need. For example, if you are building a buy 3 get 2 deal, then you would need to set the quantity to 2 and 2 items would be discounted when buying 3. Your filters would need to have a quantity of 3. Here’s a table that illustrates this behavior:
    Filter QtyBOGO QtyCart ItemsFilter TakesBOGO Takes
    111 eligible item (A)1 (A)0
    112 eligible items (A) + (B)1 (A)1 (B)
    212 items (A) + (B)2 (A) + (B)0
    213 items (A) + (B) + (C)2 (A) + (B)1 (C)

    *Order depends on the price. See below

    the config screen for a BOGO offer
  4. Optionally select the type of discount for your BOGO offer. We’ll leave it at FREE since we are building a traditional Buy One, Get One FREE. But you can choose other discount types. Click on the free selected option to select a different type. The following table shows each discount type and examples when the user has 2 matching items. (eg: one $120 pair and one $100 pair of Nike shoes, no other items). Without the offer the total is $220.
  5. Click Done. The offer will be added. Your tree should look like the following image: the final tree showing the product filters and the BOGO offer attached to them
4

Applying the coupon automatically

Right now if you save the coupon, the customer will need to apply the coupon manually for the offer to take effect. You can make the coupon apply automatically when the cart has eligible items from your product filters.On the top-right, click Manually Applied to change the mode to auto. It should look like the following image:the apply mode is: autoNow when the customer has at least 1 pair of Nike shoes, the coupon will be added.
If they only have 1 pair in the cart, then the coupon will be added but the discount will not be applied until the customer adds another eligible pair.
5

Saving the coupon

All that’s needed to get this offer live is to click Save in the top-right corner of the dashboard. Your coupon will be saved and ready to be used in your shop.
You do not need to enter a coupon code! Coupons+ will automatically generate one for you if you choose to leave the coupon code field empty.

How does the BOGO offer use the filtered items?

With the full picture now ready, here’s a simplified overview of what the BOGO offer does with the filtered items.
  • Coupons+ runs the product filters with the items from the cart. It finds several pairs of Nike shoes. The BOGO offer tells the product filters to get the most expensive ones first, since they are the items that the customer must buy in full. The filters then pass that pair to the offer. The BOGO offer will then try to look in the cart for more Nike shoes, ignoring the pair that was passed to it.
  • If it finds another one, it will pick it and apply the BOGO discount to it.
  • Otherwise, it will try to add an extra pair if you selected the option Automatically add them to the cart. If you did not select that option, no extra pair gets added and the customer will need to add another themselves. After they do, the BOGO offer will apply the discount to the cheapest pair. The default mode is: Let the customer add them manually.

Testing the coupon

Now that the coupon has been saved and is set to auto-apply, let’s make sure it is working as expected.

Adding the products to the cart

1
Go to the shop.
2
Add an eligible item. For this tutorial, let’s add the Nike Air Max 90 ($130) and go to the cart. You will see a notification showing that the coupon was applied successfully. No discount will be applied yet because we only have 1 eligible item, and for this offer we need 2.the cart has the coupon applied but no discount yet due to lack of extra eligible items
3
Go back to the shop page and add another pair of Nike shoes. For this example we will add one pair of Nike Air Jordan 1 ($180).
You can add any pair of Nike shoes, as long as they are Shoes and from the brand Nike, including another pair of the same product (Nike Air Max 90), but for this example we want to clarify what happens when there are eligible items with different prices.
4
Go to the cart. You will now see that the bogo discount has been applied to the Nike Air Max 90 because it is the cheaper of the two eligible items. BOGO offers always prioritize the discounts starting from cheapest to most expensive.cart page showing the bogo fully applied now with the discount in place

Applying the BOGO offer more than once

Our bogo offer works like a charm. But it only applies once. Try adding 2 more of the Nike Air Max 90 so that the cart now has 3 of Nike Air Max 90 and 1 of Nike Air Jordan 1. You will see that only 1 pair is being discounted. What happens if you want to apply the bogo offer for every matching pair of eligible items? You can make the bogo offer apply repeatedly for every matching set of items. For example: To enable this feature, from the Coupons+ Dashboard:
1
Click on the BOGO Different Products offer.
2
Scroll down to the section: How many times can this be applied?, select Repeatedly and click Apply Changes. The BOGO offer card will now show a Repeating label below it:bogo offer card configured as Repeatedly
3
Click Save to save the coupon. Your BOGO offer will now be applied for every matching pair of items.cart showing the bogo offer is being applied twice to the cheapest eligible item

Adding the products to the cart automatically

Our current configuration makes the customer manually add the extra discount items. But what if you wanted the items to be in the cart automatically as soon as the customer adds one eligible item to their cart? For example, on an empty cart, when the customer adds one pair of Nike Air Max 90 you want another pair to be added automatically. To do so, from the Coupons+ Dashboard:
1
Click on the BOGO Different Products offer.
2
Locate: When items eligible for discount aren’t in the cart and select Automatically add them to the cart
3
Click Apply changes and save the coupon.

Putting the filters to the test

Remember: for a discount to apply, an item must satisfy all filters in that context (group). For this example, the product filters will only match Shoes from the Nike brand. Try removing all the items from the cart. Then go back to the shop page and add a pair of Adidas Ultraboost Light and one Nike Club Fleece Hoodie. The coupon will not be applied because these items only match one filter: the Adidas Ultraboost Light matches the shoes category but not the brand, and the Nike Club Fleece Hoodie matches the brand but not the category. This is an example of the power of combining product filters in Coupons+, and it is one of the most powerful things about the plugin.

Adding an extra offer

What if you also want to give the customer a free shipping discount alongside the BOGO offer? Coupons+ allows you to add more than one offer per group of filters. To add another offer for this filters group, from the Coupons+ Dashboard:
1
Click on the + button attached to the last offer:plus button sign that is attached to the right of the last offer
2
From the available offers, Click Shipping Discount, configure it and click Done. Your offers tree will now look like the following image:tree showing the filters and two offers: bogo and cart shipping discountNow the Shipping Discount will be applied when the customer has 1 or more Nike Shoes in the cart.
Each offer is configured and applied independently and each will be applied when the filters return at least one valid item. This means, for example, that the BOGO offer that has been configured to apply repeatedly will only be applied repeatedly itself. The Shipping Discount offer will be applied only once.
You can combine other offers too. Like Discount and Different Products.

Restricting the coupon with a precondition

Finally, what if you wanted to restrict this offer only under specific conditions other than the products in the cart, like restricting the offer for a specific user role or a specific date? You would need to add a precondition that must be passed before the coupon can be applied. To add a precondition, from the Coupons+ Dashboard:
1
Click on No Preconditions on the right. You will be presented with a list of available preconditions. For this example let’s just restrict it to a specific date.
2
Scroll down and select Date, configure it and click Done

Stuck? Have a question? We’re here to help!
Ask for help in the official support forums!