WooCommerce : Dynamic Pricing According To Quantity.

WooCommerce price by quantity is one of the best dynamic pricing strategies to attract more buyers. It is an effective way of encouraging customers to purchase more quantities of products at a discounted rate.

You can provide label on product or on shop pages to show buyer , information about bulk discounts based on quantities.
Example:
Buy 1 to 5 and get 5% discount
Buy 5 to 9and get 10% discount
Buy 10 to 15 and get 15% discount.
Buy 16 to 20 and get 20% discount.

this will attract user to buy more.

For this use 'woocommerce_before_calculate_totals' hook.

Example: Suppose we want product price according to quantity .


function QuantityBasedPricing( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
      if($cart_item['quantity']<6){
        $price = round( $cart_item['data']->get_price() * ( 1 - 0.05 ), 2 );
        $cart_item['data']->set_price( $price );
      }
      if($cart_item['quantity']>6 and $cart_item['quantity']<11){
        $price = round( $cart_item['data']->get_price() * ( 1 - 0.10 ), 2 );
        $cart_item['data']->set_price( $price );
      }
      if($cart_item['quantity']>10 and $cart_item['quantity']<16){
        $price = round( $cart_item['data']->get_price() * ( 1 - 0.15 ), 2 );
        $cart_item['data']->set_price( $price );
      }
      if($cart_item['quantity']>15){
        $price = round( $cart_item['data']->get_price() * ( 1 - 0.20 ), 2 );
        $cart_item['data']->set_price( $price );
      }
    }
}
add_filter( 'woocommerce_before_calculate_totals', 'QuantityBasedPricing');

Enjoy

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top