Black Friday & Cyber Monday SUPER SALE ALL WEEK:
Grab 40% OFF on plugins
Days
Hours
Minutes
Seconds

How to Apply Bulk Quantity Discount (Buy 10 Get 1 Free) in WooCommerce?

Online stores that sell low-cost products such as consumables and small accessories can use such customization to encourage customers to buy in bulk quantities. 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.

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? - Tyche Softwares

Also you can choose to offer two different free gifts based on the quantity of the product selected. This post will help you to add free gift based on the selected quantity in WooCommerce.

Browse more in: Code Snippets, WooCommerce How Tos, WooCommerce Tutorials

Share It:

Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x