Plugin Wizards
Pricing & discounts

BOGO Buy X Get Y Deals for WooCommerce

Buy one get one free, buy X get Y, 3 for 2 and free gift deals with automatic free items in the cart, for any products, categories or roles.

  • Block cart and checkout
  • Classic cart and checkout
  • High-performance order storage
  • WooCommerce 9 – 11
  • WordPress 6.6 – 7.1
  • PHP 7.4+
yourstore.com/cart

What BOGO Deals does

WooCommerce coupons cannot do "buy 2, get 1 free". This plugin can, and it handles every variation of the idea from one screen under WooCommerce > BOGO deals:

**Buy one get one free (BOGO)** on a product: buy 2, get a third free, or buy 3 and pay for 2.

**Buy X get Y** at a discount: buy 2, get 1 at 50% off, or $5 off the extra one.

**3 for 2, mix and match**: buy any 3 from a category and the cheapest is free.

**Free gift with purchase**: buy 2 of anything, or spend $50, and a chosen product is added to the cart for free.

**Buy from category A, get from category B**: the reward can come from a different set of products.

BOGO Deals features

How rewards appear

Free items can be added to the cart automatically the moment the customer qualifies, on their own line marked "Free item" with the original price struck through. The quantity follows what the customer buys (buy 4, get 2) and cannot be edited, but customers may remove the free item if they do not want it. Rewards the customer picks themselves are discounted on their cart line, with the deal named under the product. Order lines and emails record the deal.

    Features

    • Condition by quantity or by amount spent, on all products, chosen categories (sub-categories included) or chosen products.
    • Reward: the same product, the cheapest item bought, specific products or any product from chosen categories.
    • Discount: free, a percentage off, or a fixed amount off each reward item.
    • Repeat the deal every time the condition is met, once per order, or up to a number of times.
    • Automatic free items respect stock and never exceed what is left.
    • Limit deals to customer roles or guests, to a date range, or to customers who apply a coupon code.
    • Cart nudges: "add 1 more", "spend $4.00 more" or "add it to your cart", in both the classic and block cart.
    • A deal notice above the add to cart button on qualifying products, and a [bxgy_deals] shortcode.
    • Choose whether coupons also apply to free and discounted items.
    • Deals apply in the order you set; an item is the reward of one deal only, so they never stack on the same unit.
    • Works with the classic and block cart and checkout, the mini cart and the Store API, and with High-Performance Order Storage.
    • For developers: bxgy_get_product_deals(), bxgy_deal_label(), filters bxgy_deal_active, bxgy_deal_label, bxgy_gift_product, bxgy_cart_line, bxgy_product_notice_items, actions bxgy_gift_added and bxgy_gift_removed.

    Five deals, one screen

    WooCommerce coupons can take a percentage off, but they cannot put a third item in the cart for nothing or make the cheapest of three free. Every deal below is one row under WooCommerce > BOGO deals: a condition, a reward and a discount.

    Common deals and how each is set up
    DealHow you set itWhat the customer sees
    Buy 2, get 1 freeCondition: 2 of the product. Reward: the same product, freeAdds 2, and a third appears on its own line as "Free item" with the price struck through
    Buy 2, get the next at 50% offCondition: 2 of the product. Reward: the same product, 50% offAdds 3 and the third is half price, with the deal named under it
    3 for 2 across a categoryCondition: any 3 from Socks. Reward: the cheapest bought, freeMixes three pairs and the cheapest pair costs nothing
    Free gift over $50Condition: spend $50 on anything. Reward: a chosen product, freeThe gift lands in the cart when the subtotal passes $50 and leaves if it drops below
    Buy from A, get from BCondition: 2 from Cameras. Reward: any product from Memory cards, freePicks the card they want and it is discounted on its line
    Coupon-only dealEnter a code in the deal and create a 0-amount coupon with itThe deal runs while the coupon is applied, with the coupon's own expiry and limits

    Free items follow the quantity bought, so buy 4 means get 2, and the quantity cannot be edited, though the customer can remove the item. Automatic free items respect stock and never exceed what is left. Deals run in the order you list them and a unit is the reward of one deal only, so two deals never stack on the same item. The cart nudges customers along: "add 1 more" or "spend $4.00 more", in the classic and block cart.

    What it does well, and what it leaves to other tools

    Most dynamic pricing suites bury BOGO among thirty rule types and leave the free item for the customer to add. This plugin does one thing: when the customer qualifies, the free item is in the cart already, on its own line, marked and struck through, and it goes away if they stop qualifying. Rewards are worked out from the price the customer would otherwise pay, including sale prices and role or tiered prices from other plugins, so it sits on top of Wholesale Pricing and Tiered Pricing rather than fighting them. Deals can be limited to roles, guests, a date range or a coupon code, and repeated every time the condition is met, once per order, or up to a number of times.

    What it does not do: a plain percentage off the cart, which is a coupon, or lower prices as the quantity rises, which is Tiered Pricing. The reward is always an item in the cart, never free shipping or store credit. Order lines and emails record the deal, and everything works on the block cart and checkout, the mini cart and the Store API.

    How to set up BOGO Deals in WooCommerce

    1. 1

      Upload the plugin to /wp-content/plugins/ or install it from the Plugins screen.

    2. 2

      Activate it.

    3. 3

      Go to WooCommerce > BOGO deals and add a deal. Settings that apply to all deals are under WooCommerce > Settings > BOGO deals.

    Questions about BOGO Deals

    Buy 2 get 1 free: does the customer add 2 or 3?

    Your choice. With "Add automatically" on, the customer adds 2 and a third is put in the cart free. With it off, the customer adds 3 and pays for 2. The same setting controls free gifts: on, the gift appears by itself; off, the customer adds it and it becomes free.

    Which item is free when the customer buys different things?

    For "the same product", each product is counted on its own and the cheapest unit of it is free (variations count together). For "the cheapest of the items bought", everything that matches counts together and the cheapest units are free, so customers can mix and match.

    Can the customer change the quantity of the free item?

    No. It follows what they buy. They can remove it; it comes back only after they stop and start qualifying again.

    What happens when the free product runs out of stock?

    Fewer, or no, free items are added. Stock the customer is already buying is taken into account.

    Can a deal need a coupon code?

    Yes. Enter a code in the deal and create a coupon with that code and an amount of 0 under Marketing > Coupons. The deal runs while the coupon is applied, and the coupon's own limits (expiry, usage, emails) apply.

    Do deals stack?

    Several deals can run in the same cart, in the order of your list, but one unit is never the reward of two deals. Counting for the next deal leaves out units already rewarded.

    Do deals work with other discounts and sale prices?

    Rewards are calculated from the price the customer would otherwise pay, including sale prices and role-based or tiered prices from other plugins. Whether coupons also apply to reward items is a setting.

    Does it work with the block cart and checkout?

    Yes. Free items, struck-through prices, deal lines and quantity locks all work in the block cart, the classic cart and the mini cart.

    Does it support High-Performance Order Storage?

    Yes.

    BOGO Deals changelog

    1.0.0
    • Initial release.
    Pricing & discounts

    Tiered Pricing

    Bulk and tiered pricing: lower prices as customers buy more, with pricing tables, mix-and-match categories and role-based rules.

    View plugin

    Pricing & discounts

    Sale Badges & Countdown

    Replace "Sale!" with "-20%" or "Save $10", add New and Sold out badges, and show a live countdown to the end of scheduled sales.

    View plugin

    Product pages

    Frequently Bought Together

    Suggest products that go together on the product page, with one click to add them all and an optional bundle discount, from your picks or from real orders.

    View plugin