How to Set WooCommerce Quantity Based Shipping? - 2025
Logo

How to Set WooCommerce Quantity Based Shipping?

In today’s discussion, I’ll be talking about WooCommerce quantity based shipping. Read on to learn about the ways you can offer quantity based shipping. 

What makes a successful WooCommerce store? Decent design, good navigation, and proper marketing? 

Yes, you need these things. However, that’s only half the battle. 

More than 70% of users abandon their carts – simply because they don’t feel like completing the purchase. There’s nothing to hold them – push them to complete the purchase. 

Shipping options can be a good way to hold the users’ attention. Lucrative shipping options can play a great role in improving sales and growing store revenue. 

That’s what this discussion is about – I’ll be talking about: 

  • The concept of quantity based discounts in WooCommerce and their benefits
  • Ways to offer volume based product discounts on WooCommerce

Let’s get started. 

🤔 What is WooCommerce Quantity Based Shipping [The Concept] 

When I use quantity based shipping, I base costs on the number of products. If a customer buys more, their shipping cost changes. 

For example, for 1-5 items, the shipping amount might be $5, but for 6-10 products, the amount goes up to $8. You can experiment with these numbers. 

You can also cover costs for heavy items, charging per-unit amount. It’s more precise than a flat rate – and is fair compared to simply offering something on a flat rate. 

Ultimately, it’s about flexibility. You adjust the shipping to match the order size. This helps users manage costs and keep the customers happy with reasonable shipping fees.

However, free shipping works even better. If you offer free shipping, the chances of users buying more products and completing purchases go up, by a lot! 

✨ What are the Benefits of Quantity Based Shipping? 

There are certain benefits to quantity based shipping in WooCommerce. For example: 

Your Sales & Average Order Value Increase:  What you’re doing is offering the user some incentive for purchasing – you’re encouraging them to spend a certain amount. 

For example, if a user spends $500, they get free shipping. This incentive helps you, the store owner, get better sales. The average order value increases as well. 

Your Cost Management is On Point: Shipping costs will vary based on the items, region, and other relevant factors. Quantity based shipping lets you effectively manage your costs. 

Enhanced Customer Satisfaction: If you do it correctly – you get happy customers. Offering a valid shipping costs makes you more credible – your rap increases in the eyes of your customers. 

It all depends on how you do it. 

🛠️ How to Setup Quantity Based Shipping in WooCommerce? 

I will be discussing 3 ways to add quantity based shipping in WooCommerce: 

  • Using the built-in functions of WooCommerce 
  • Using the WowRevenue Plugin
  • Using Custom Code

Between these 3 options, using WowRevenue is, by far, the easiest. There are some reasons behind it: 

  • WowRevenue has a custom campaign builder for such specific tasks 
  • It’s a simple click-and-go interface 
  • You can add a custom look to the quantity discount and other campaigns

I’ll start with the easy one. But before that, there’s one thing you need to set before offering quantity based free shipping. 

Free Shipping: Does it Really Work? 

Free shipping is a tried and true method for increasing WooCommerce sales. In essence, you offer to ship a product/products for free to the customer. Free shipping of product(s) may depend on the following conditions: 

  1. It can be product-specific (it’s the example I’m about to show you) 
  2. It can rely on the cart amount 
  3. It can be from a combination of specific conditions
  4. It can be promotional – without any conditions 

Now, let me show you how to set WooCommerce quantity based shipping for a specific product – remember, it’s going to be free shipping! 

How to Set WooCommerce Quantity Based Free Shipping? 

Here are the steps to set up quantity based free shipping using WowRevenue. 

Step 0: Set a Shipping Rate 

Please note that you need the WooCommerce plugin installed and activated to use the quantity based discount functionality of WowRevenue. 

Set a Shipping Rate on WooCommerce
Set up shipping rate on WooCommerce

Before moving into the campaign creation part, you need to set a shipping rate. To do this: 

  • Go to WooCommerce > Settings > Shipping 
  • Click on Add Shipping Method 
  • Set a shipping rate 

If you want to learn about adding shipping methods to your WooCommerce store, then you should read this content

Step 1: Installing the Plugin and Creating the Quantity Discount Campaign 

Installing the WowRevenue plugin is simple – it’s like installing any other plugin. However, if you’re having issues, you can consult the documentation

Now that the plugin is installed and activated, you can move on to create a new campaign – WowRevenue currently has 8 discount campaigns, and the quantity discount campaign is among them. 

Create a Free Shipping Campaign with WowRevenue
Create a Free Shipping Campaign with WowRevenue

So, all you need to do is go to WowRevenue > Campaigns > Create Campaign. Then under the volume/quantity discount click on Create Campaign. 

Step 2: Initial Discount Campaign Setup 

You need to set up a couple of things before getting started: 

  1. Set a name for the campaign 
  2. Choose the pages where you want to show the campaign 
  3. Select the display mode – in-page, pop-up, or floating
  4. Set the position

For this particular campaign, you can choose the campaign to show either on the product page, cart page, checkout page, or the thank you page. 

Initial Setup for WooCommerce Quantity Based Discount
Initial Setup for WooCommerce Quantity Based Discount

As for the display mode, settings for the different types of display modes are available. 

Once you sort these things, you are ready to move on to the next step. 

As for this example, I create the volume discount that shows up as an in-page campaign. It will show up on the product page, before the add to cart button. 

Step 3: Setting up the Quantity Based Free Shipping 

In order to set WooCommerce quantity based shipping using WowRevenue, you need to: 

  1. Select a trigger product 
  2. Set the quantity of the products and their discounts

In my example, I chose a specific product and created discount offers based on their purchase volumes. 

Don’t forget to add a heading and a subheading for the campaign.  

Offering Free Shipping with WowRevenue
Offering Free Shipping with WowRevenue

You can do things differently – with the trigger products and the discount numbers. I’ll discuss more on it in the FAQ section. 

Step 4: Enable Free Shipping 

Once you’ve done everything till step 3, you just need to enable the free shipping toggle. Notice that the free shipping text now appears in the design. 

Step 5: Design the Campaign

The next few steps are optional. You can design the campaign from the campaign appearance panel on the right-hand side. 

I just kept everything as is for the sake of this example: 

Also, there are some additional settings you can play around with as well – like: 

  • The Animated Add to Cart Button – enabling it will allow you to change the settings 
  • The Countdown Timer – Add a countdown timer to create a FOMO among users
  • Scheduling – Schedule the quantity discount campaign if you like 
  • Others – There’s a ‘skip add to cart’ button. You can play around with that. Also, you can add a custom class or ID if you want. 

Here’s how it looks on the front end:

WowRevenue Quantity Based Discount with Free Shipping
WowRevenue Quantity Based Discount with Free Shipping

Step 6: Publish and See the Results

All you have to do now is publish the campaign and see the results. 

If you’re still having issues, you can check out the documentation for the quantity discount campaign – you can check it out here

Frontend Output for WooCommerce Volume Based Shipping
Frontend Output for WooCommerce Volume Based Shipping

Now, let’s move on to the next way – adding WooCommerce quantity based shipping using the default WooCommerce setting. 

How to Set WooCommerce Quantity Based Shipping Using the Default WooCommerce Settings?

There are a couple of things you need to do to set Quantity Based WooCommerce Shipping on your store. We have a detailed guide on WooCommerce Shipping that you can check out. 

For now, we will focus on creating a shipping method that’s based on the product quantity. There are two types of methods: 

  1. Flat Rate and 
  2. Free Shipping 

You already get the idea of free shipping – it lets you create free shipping based on the product quantity. 

But if you wanted to set a custom rate, you’d choose ‘Flat Rate’. Remember, you can create this only after you create the shipping zone first. 

At this point, you’d want to know about some important Field Placeholders. 

Understanding Flat Rate Cost Field Placeholders: Your Key to Flexible Shipping

The “Cost” field within WooCommerce’s Flat Rate shipping method isn’t just a static number. 

It’s a canvas for creating conditional shipping logic using placeholders, acting as dynamic variables. 

This allows you to tailor your shipping costs based on specific order characteristics.

[qty]: Quantity-Driven Shipping 

This placeholder represents the total number of items in the customer’s cart. It’s perfect for scenarios where shipping costs directly correlate with the volume of products.

Example: Imagine you sell handcrafted pottery. Each piece requires meticulous packaging. You decide to charge $3 per item for shipping. Your formula would be [qty] * 3. If a customer orders 6 ceramic mugs, the shipping cost would be $18 (6 mugs * $3/mug).

Setting Up WooCommerce Quantity Based Shipping using Parameters
Setting Up WooCommerce Quantity Based Shipping using Parameters

[fee percent=”numeric value”]: Percentage-Based Shipping 

This calculates shipping costs as a percentage of the total order value.

Example: For delicate glassware, you want to charge 8% of the order total for insurance and specialized packing. The formula is [fee percent=”8″]. If a customer’s glassware order totals $250, the shipping cost would be $20 (8% * $250).

min_fee=”numeric value”: Setting Minimum Shipping Thresholds

This ensures you cover your base shipping costs, especially for smaller orders.

Example: For small, lightweight jewelry items, your actual shipping cost might be minimal. However, you want to ensure a minimum handling and packing fee of $6. You’d use min_fee=”6″. 

Even if the calculated percentage or quantity-based cost is lower, the customer will be charged $6.

max_fee=”numeric value”: Capping Maximum Shipping Costs (Keyword: Maximum Shipping Charge)

This prevents excessive shipping charges on large orders, fostering customer satisfaction.

Example: You sell large, bulky furniture items. While shipping costs can be high, you want to limit the maximum shipping charge to $50. 

Your formula includes max_fee=”50″. Even if the calculated shipping cost exceeds $50, the customer will only pay $50.

Implementing WooCommerce Quantity Based Shipping: A Practical Example

Let’s illustrate how to create a quantity-based shipping rule. Suppose you want to charge a base shipping fee of $8, plus an additional $2 for each item in the cart.

The formula would be: 8 + [qty] * 2

Here’s how it breaks down:

  • 1 item: $8 + (1 * $2) = $10
  • 4 items: $8 + (4 * $2) = $16
  • 10 Items: $8 + (10 * $2) = $28
Cost Setup for Quantity Based Shipping
Cost Setup for WooCommerce Quantity Based Shipping

By using these placeholders, you can create very complex and useful shipping rules to help your customers and your bottom line.

And that’s the problem. 

You see, unless you’re an advanced user, there’s a good chance you’ll not be able to implement these settings. So, using a plugin – at least for free shipping is certainly the best course of action. This is the beginner approach. 

But you know how you can do it – it shouldn’t be that hard now, right? 

WooCommerce Quantity Based Shipping Setup with Custom Code

This is, by far, the hardest option you’ll find. I’m not joking – if you don’t have any coding knowledge, it is probably better to avoid this last option. 

But the benefit to such an approach is the fact that you don’t need any extra plugins on your website. So, you pretty much “don’t” have to sacrifice on-site speed or anything like that. 

But, there is a downside: 

If you even miss so much as a comma in the code, the feature won’t work. As a matter of fact, your site may break. So, you may want to consider using custom code very, very carefully! 

Code Snippet for Volume-Based Discount in WooCommerce

You need to paste this code snippet into the functions.php file on your WooCommerce site. You need to go to appearance > theme file editor and look for functions.php. Then simply paste this code. 

class WC_Quantity_Based_Free_Shipping extends WC_Shipping_Method {
    public function __construct() {
        $this->id = 'quantity_based_free_shipping';
        $this->method_title = $this->get_option('title', 'Free Shipping for 5 or more items');
        $this->method_description = 'Offers free shipping when you buy 5 or more items';
        $this->init_form_fields();
        $this->init_settings();
        $this->threshold = $this->get_option('threshold', 5);
        $this->enabled = $this->get_option('enabled');
    }

    public function init_form_fields() {
        $this->form_fields = array(
            'enabled' => array(
                'title'   => 'Enable/Disable',
                'type'    => 'select',
                'options' => array(
                    'yes' => 'Yes',
                    'no'  => 'No'
                ),
                'default' => 'yes'
            ),
            'title' => array(
                'title'       => 'Method Title',
                'type'        => 'text',
                'description' => 'This controls the title which the user sees during checkout',
                'default'     => 'Free Shipping for 5 or more items'
            ),
            'threshold' => array(
                'title'       => 'Threshold Quantity',
                'type'        => 'number',
                'description' => 'The minimum quantity required for free shipping',
                'default'     => 5
            )
        );
    }

    public function is_available( $package ) {
        if ( 'yes' != $this->enabled ) {
            return false;
        }
        $total_quantity = 0;
        $quantities = array_column( $package['contents'], 'quantity' );
        $total_quantity = array_sum( $quantities );
        return $total_quantity >= $this->threshold;
    }

    public function calculate_shipping( $package ) {
        if ( $this->is_available( $package ) ) {
            $this->add_rate( array(
                'id'    => $this->id,
                'label' => $this->method_title,
                'cost'  => 0
            ) );
        }
    }
}

function add_quantity_based_free_shipping_method( $methods ) {
    $methods['quantity_based_free_shipping'] = 'WC_Quantity_Based_Free_Shipping';
    return $methods;
}

add_filter( 'woocommerce_shipping_methods', 'add_quantity_based_free_shipping_method' );

Here’s what the code does: 

  • Checks if the cart contains at least 5 items to activate free shipping.
  • Displays free shipping at checkout if the condition user meets the condition
  • Allows store owners to enable/disable the method in settings. 
  • Lets store owners set a custom title and item threshold.
  • Automatically adds this shipping method to WooCommerce.

🙋‍♂️ FAQ 

The following FAQs can be of great help to you. 

How do I configure shipping costs for specific quantity in WooCommerce?

Answer: This can vary – depend on the plugin you wish to use.

But generally, you’ll define quantity ranges (e.g., 1-5, 6-10, 11+) and assign a corresponding shipping cost to it. Most plugins like WowRevenue offer user-friendly interfaces for setting up these rules.

Is it possible to combine WooCommerce quantity based shipping with other shipping methods?

Answer: Yes, you can often combine quantity-based shipping with other WooCommerce shipping methods. 

For example, you might offer free shipping for orders exceeding a certain quantity while still applying quantity-based rates for smaller orders.

Can I set quantity-based shipping rules for specific product categories in WooCommerce?

Answer: Yes, some advanced WooCommerce shipping plugins allow you to create quantity-based shipping rules that apply only to specific product categories. 

This is useful if you have products with varying shipping costs or sizes.

How do I troubleshoot quantity-based shipping issues in WooCommerce?

Answer: If you encounter issues, first, verify your plugin settings and ensure that the quantity ranges and shipping costs are correctly configured.

Check for plugin conflicts by temporarily deactivating other plugins. The theme may be of concern as well.

View the plugin’s documentation or support forum for troubleshooting tips. These might come in handy.

😉 Quantity Based Shipping Works! 

This tutorial on WooCommerce quantity based shipping shows you how it all works. And the thing is, it works! 

If you look at the case studies from Amazon, Zappos, and other platforms, you’ll see that these platforms leverage quantity-driven free shipping. Their efforts show great promise – improved sales and cart abandonment rates are proof of this fact. 

Why don’t you try it out for your WooCommerce store? And sound off the comments – do you want to see such content from use? Or would you like to see something else? 

Like this article? Spread the word
Sadik Ahmed

Written bySadik Ahmed

My journey as a writer took a technical twist about five years ago when I dove into the WordPress world. Since then, I've been deeply involved in the WordPress ecosystem (and yes, that goes beyond just themes and plugins😉). With over eight years of experience in writing, I've mostly focused on helping newcomers, professionals, and enthusiasts navigate and create amazing WordPress themes, plugins, and other digital products. It's been quite the ride!

Leave a Reply

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