All Collections
WooCommerce Discount Rules
Buy One get One Scenarios
Buy X and Get Y Product for free (or at 50% discount) - Discount Rules 2.0
Buy X and Get Y Product for free (or at 50% discount) - Discount Rules 2.0
Learn how to create 'Buy a product and get another product for Free' discount in your WooCommerce store with these straightforward steps
Kowsaliya avatar
Written by Kowsaliya
Updated over a week ago

This is a simple BOGO discount scenario where you buy Product A and get Product B free.

This guide is useful in the following scenarios only:

  • You want to provide a specific product free when purchasing another product (Buy A, get B free).

  • You know which product to give free.

  •  You want the free product to be "automagically" added to the cart.

Navigate to Woocommerce -> Woo Discount Rules -> Add New Rule.

After Entering into the rule page, just add the rule name and you can select the Discount Type "Buy x get Y" from the Drop-down.

Example 1:
Choose Product A in filters and choose "Buy X get Y - Products" in the Get discount.

What is recursive?

When the recursive checkbox is enabled, the quantity ranges will be repeated.
So, in my example, I have chosen the "buy" quantity as 1 and the free quantity as 1.
When 2 quantities are in the cart, 2 free products will be added.
When 5 quantities are in the cart, 5 free products will be added and this keeps repeating for every quantity added.

Make sure to choose the auto-add option so that the free product will be automatically added to the cart.

Here is a screenshot of the cart page :

Example 2:

If the free product is a variable product and if you would like to allow the customer to select the variant as per their wish, you can choose the parent product in "Buy X get Y - Products" in the Get discount.

Here is an example rule setup:

Here is a cart page screenshot:

By selecting "change variant" option, customer can change their variant of choice in cart.

* If you do not want the discounts to repeat (buy 1 get 1, buy 2 get 2, buy 3 get 3), you can uncheck the Recursive checkbox and configure ranges according to your requirement.


Still unclear?
Please submit a support request. We are always happy to assist you :)

Did this answer your question?