Buy X Get Y Free BOGO Offers for WooCommerce lets you run promotions customers understand and store owners can trust.
Set up classic
buy 2 get 1 deals, gift another product, or sell the reward at a discount. Works on simple products and on each variation of a variable product.
No complicated builders. No two deals fighting on the same item. One product, one offer.
Highlights
- Buy X get Y of the same product or a different gift
- Reward as a gift, percent off, or fixed price
- Store-wide global rules with drag-and-drop priority
- Target all products, specific products, categories, or tags
- Custom or Disabled mode on each product and variation
- One offer per product — rules never stack
- Schedules, user roles, sale-item and coupon controls
- Badges, offer text, and a gift highlight on the product page
- Works with Cart / Checkout blocks, classic cart, and HPOS
- Shortcode
[bxgy_offer] for templates
Feature list
Deals
- Same-product BOGO — buy X, get Y of that product
- Different-product gift — buy X, get Y of another product or variation
- Buy quantity and Get quantity set per rule, product, or variation
Rewards
- Gift — reward line at zero price
- Percent off — discount the reward by a percentage
- Fixed price — sell the reward at a set price
Global rules
- Add as many store-wide rules as you need
- Scope: all products, products, categories, or tags
- AJAX search pickers with a selected list
- Categories show Parent › Child labels
- Drag to reorder; numbered priority (1, 2, 3…)
- Expand / collapse each card; expand all / collapse all
- Enable or disable a rule without deleting it
- Optional rule title for admin use
- Higher rules win first when more than one could match
Per product
- Mode: Inherit global / Custom / Disabled
- Full custom deal on a simple product
- Option to let Custom mode overwrite global rules
Per variation
- Separate settings on each variation
- Mode: Inherit / Custom / Disabled
- Gift search includes products and variations
- Product-page offer text updates when a variation is selected
Priority (conflict-free)
- Each product gets at most one offer
- Disabled — excluded from every BOGO offer
- Custom (when overwrite is on) — only that item’s own deal
- Otherwise the first matching global rule wins (top to bottom)
- If a product is in two categories, the higher rule applies
- Recommended order: specific products → narrow categories/tags → broader → All products last
Limits
- Maximum applications per order (0 = unlimited)
- Exclude sale items
- Block other coupons with this BOGO
- Apply to all variations of a variable product
- Limit to selected user roles (empty = everyone)
Schedule & messages
- Start and end date/time
- Message before the offer starts
- Message while the offer is active
- Upcoming / active / ended status
Storefront
- Optional badges on shop and product pages
- Offer text on shop / category pages
- Offer text on single product pages
- Gift highlight card (image + name) for different-product deals
- Custom cart label on the reward line
- Customers can remove the reward from the cart
- Shortcode:
[bxgy_offer] with product_id, badge="yes|no", text="yes|no"
Placeholders
Use in messages and cart labels:
{buy_qty} {get_qty} {reward} {title} {remaining} {start_date} {end_date} {product_name} {gift_name}
Admin
- Dedicated Buy X Get Y menu
- Priority / conflict notice on the settings screen
- Searchable pickers for products, categories, and tags
- WooCommerce product search for gift fields
- Settings link on the Plugins screen
Compatibility
- WooCommerce 6.0+
- High-Performance Order Storage (HPOS)
- Cart and Checkout blocks
- Classic cart and mini-cart
- Simple and variable products
In detail
1. Deal types
Create
buy X get Y of the same product (classic BOGO) or
buy X of one product, get Y of a gift. Gift products can be simple items or a specific variation of a variable product. Buy and Get quantities are set on each global rule, simple product, or variation.
2. Reward types
The extra item can be a
gift (zero price),
percent off, or a
fixed price. Percent and fixed rewards still add a clear reward line in the cart so the promotion is visible at checkout.
3. Global rules
The
Buy X Get Y settings screen holds a repeater of rule cards. Each rule has a scope: all products, a product list, categories, or tags. Search pickers show what is selected and let you add or remove items. Drag the handle to change priority. Put specific product or category rules above a fallback “All products” rule. Turn a rule off without deleting it. Give it a title so the list stays readable.
4. Product and variation settings
On a simple product, choose Inherit, Custom, or Disabled. Custom lets you define the full deal on that product. On a variable product, each variation can inherit, use its own deal, or be excluded. The product page offer updates when the customer selects a variation.
5. How the winning offer is chosen
Offers never stack.
Disabled wins first (no offer).
Custom wins next when product overwrite is enabled (only that item’s deal). Otherwise global rules are checked from top to bottom and the first matching scope is used. If a product belongs to two categories with different rules, the higher rule in the list applies.
6. Limits, schedule, and display
Cap how many times an offer applies per order. Exclude sale items. Disallow other coupons. Restrict by user role. Set start and end times with messages for before and during the offer. Optionally show badges and offer text on shop and product pages. Different-product deals can show a gift card with image and name. The cart line can use a custom label with placeholders. Shoppers can remove the reward; changing the main quantity can offer it again.
7. Shortcode
[bxgy_offer] — optional attributes:
product_id,
badge="yes|no",
text="yes|no".
Author:
hell0bunny