In an online store, having just great products isn’t enough—it demands smart sales strategies to stand out. With a “Buy 10 Get 1 Free” promotion in WooCommerce, you can simply boost your store’s average order value. For instance, when customers buy 10 boxes of coffee pods, they get 1 box for free. This helps you clear stocks quickly and customers also feel that their purchase is valuable as they get a bonus when purchased in bulk.
Solution: Apply Bulk Quantity Discount (Buy 10 Get 1 Free) in WooCommerce
This guide focuses on the implementation of a BOGO-like discount, where customers receive a 100% discount after purchasing a specified quantity that applies well for both simple and variable products.
add_action('woocommerce_cart_calculate_fees', 'ts_add_custom_discount_11th_at_100', 10, 1 ); function ts_add_custom_discount_11th_at_100( $wc_cart ){ if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $discount = 0; $items_prices = array(); // Set HERE your targeted product ID $targeted_product_id = 396; foreach ( $wc_cart->get_cart() as $key => $cart_item ) { $product_id = $cart_item['product_id']; $qty = intval( $cart_item['quantity'] ); // Use the correct method to get the product object $product = $cart_item['data']; // Get the product price, considering variable products $price = $product->is_type('variable') ? $product->get_price() : $product->get_price($qty); for ( $i = 0; $i < $qty; $i++ ) { $items_prices[] = floatval( $price ); } } $count_items_prices = count($items_prices); if( $count_items_prices > 10 ) { foreach( $items_prices as $key => $price ) { if( $key % 11 == 1 ) { $discount -= number_format($price / 1, 11 ); } } } if( $discount != 0 ){ // Displaying a custom notice (optional) wc_clear_notices(); wc_add_notice( __("Buy 10 Get 1 Free"), 'notice'); // The discount $wc_cart->add_fee( 'Buy 10 Get 1 Free', $discount, true ); # Note: Last argument in add_fee() method is related to applying the tax or not to the discount (true or false) } }
Output
When the customer adds the targeted product ID set in the code to the cart and continues to add the same product (ID 396) to the cart, reaching a total quantity of 10. Upon adding the 11th product, the code implies offering a 100% discount to that 11th product.
![How to Apply Bulk Quantity Discount (Buy 10 Get 1 Free) in WooCommerce? 1 How to Apply Bulk Quantity Discount (Buy 10 Get 1 Free) in WooCommerce? - Tyche Softwares](https://media.tychesoftwares.com/wp-content/uploads/Bulk-Quantity-Discount-1024x829.png)
Also, you can explore an easy way to provide WooCommerce bulk quantity-tiered discounts based on the based on the total quantity of the items present in the cart.