How to Set Up WooCommerce Quantity-based Shipping
If you’re looking to set up your WooCommerce store to support quantity-based shipping, you likely have a business model that encourages a bundle purchase of the same product. For example, you might offer a discount to users for buying more than one of your best-selling item in order to increase your average order value. Or, you may be promoting a “buy one, get one free” sale to clear out old inventory. As long as your customer’s cart is filled with multiples of the same product, then you’ll want to set up WooCommerce quantity-based shipping, since it’s the best way to adjust shipping rates during checkout based on the amount of items customers have in their cart.
(Editor’s Note: this option will not work if your average order typically has many items of varying sizes and weight. Don’t worry–we’re already working behind the scenes on a blog post to help you sell varying items at once, so stay tuned for that.)
Does WooCommerce Quantity-based Shipping Work for My Business?
We’ll show you how to set up your WooCommerce shipping rates so that accurate prices are charged at checkout. You’ll want to use this method if you meet the following criteria:
- When your customers check out, all of the products in their order are the same size and weight.
- Most likely, that means that your average order contains multiples of the same product.
- You can also use this method if the products are different, but their size and weight are the same.
The Step-by-step Process Overview
- Step 1: Set up Your WooCommerce Shipping Zones
- Step 2: Get Your List of USPS Shipping Rates
- Step 3: Calculate the Difference in Shipping Costs Between One Item and Multiple Items
- Step 4: Create a Shipping Rule For Each Zone With Trial and Error Calculations
- Step 5: Set Up WooCommerce Quantity-Based Shipping in WordPress
First, you’ll want to identify and set up WooCommerce Shipping Zones.
It’s critical that you’re using WooCommerce Shipping Zones to charge your customers for shipping during the checkout process. Here’s why: the major carriers have different shipping rates based on the distance the package will travel between the origin and destination addresses. These distances are broken up into Shipping Zones. By setting up WooCommerce Shipping Zones in your WooCommerce shopping cart, you can pass along the correct shipping rate to your customer.
For step-by-step instructions on how to set up your Shipping Zones, check out this blog post.
Today, we’ll assume that you’ve already set up your Shipping Zones in WooCommerce, and that you’ve signed up for a WooCommerce shipping plugin that lets you compare shipping rates and get significant postage discounts.
You’ll want to have a crystal clear idea of your shipping costs. If you already know your rates, skip this step. Otherwise, we’ll walk you through figuring out what your carrier will charge to ship your items.
Find Your Average Package Weight
Figure out how much your packages weigh. For the sake of this article, we’ll cover two store examples. The first store exclusively sells lotions and the other sells vases. Let’s say one bottle of lotion weighs one pound and one vase weighs five pounds.
Select Your Service Level
Next, decide which carrier and service level to use. For more information, check out our guide on all of the common USPS service levels for domestic packages.
Today, we’ll be using the popular USPS Priority Mail rates, specifically, the reduced rates you get when using Shippo as your shipping software.
Note Your Rates for Each Zone
Most of the carriers’ prices are based on the package’s weight, dimensions, and distance it travels. That distance—from the origin address to the destination address—is categorized into different Zones. The longer the distance, the higher the Zone, and the more expensive the package will cost.
Use your package weight to look up the shipping price for each Zone. We have a wide sampling of prices in our 2019 USPS postage rates blog post. If you can’t find the weight and service level mix you’re looking for, you can also reach out to our sales team for a personalized rates analysis at email@example.com.
Let’s start with the lotion example. As you can see in the table below, if one bottle of lotion weighs one pound, sending it to an address in Zone 1 (relatively close to where you’re shipping from) would cost $7.62. If you send to Zone 9 (a much further away address), it would cost $17.19 to send the same bottle.
If you want to send two bottles of lotion, the weight of the package will double–from one pound to two pounds. Looking at the table below, you see the number of pounds to the left. Track how much it would cost to ship a two pound package across the line of Zone rates:
Do the same thing for our second example with five pound vases.
The shipping cost for one vase that weighs five pounds to Zones 0-2 would be $8.70. If you want to send the same vase to Zone 3, the shipping would cost $9.14.
If the customer orders two vases in the same purchase, the weight of the package would be 10 pounds (five pounds per vase x two vases). According to the table above, shipping it would cost $10.54 for Zones 0-2, $11.80 for Zone 3, $13.17 for Zone 4, and on we go.
The USPS lets you send up to 70 pounds per package–that’s 70 bottles of lotion or 14 vases. Reach out to firstname.lastname@example.org for the full table.
Get your Excel or favorite notebook, and let’s make a table of our own, listing the different price for each quantity for each Zone.
As you can see below, if you ship two lotion bottles (one pound each), your shipping price doesn’t double–it just costs $0.47 more ($7.42 to ship two lotions instead of $6.95 to ship one lotion).
But the difference in shipping rates isn’t consistent. If you send five or six lotions, the difference is only $0.11. But if the customer has eight lotions in her cart, and suddenly adds a ninth one, the shipping price jumps by $0.61–from $9.43 to $10.04.
How do you set this in WooCommerce?
You make up a rule.
A shipping rule will allow you to charge a more accurate price for shipping based on the number of items purchased. The alternative is that WooCommerce charges shipping on a per item basis.
Therefore, if a customer purchased three lotions, for example, they would be charged three times the base shipping rate. In this example, if you don’t make up a rule of your own, WooCommerce would charge your customer $22.86 for shipping three lotions (3 x $7.62) instead of the $8.49 that you’ll actually pay your postage provider.
The profit might be tempting, but with so many retailers competing over shipping prices, let’s look for a win-win solution that will serve both you and your customers.
You’ll want to take the information you have about how the shipping price changes for greater quantities and create an equation to reflect these values. This is the equation that you’ll plug in to WooCommerce so that it automatically calculates a shipping rate based on the quantity of items that’s purchased. It should look something like this:
[Minimum shipping value] + ( [additional rate per item] * [quantity of items] )
For our lotion example, we came up with this equation:
$7.50 + ($0.40 * [number of lotion bottles])
Here’s how we determined these numbers:
- Set a minimum value. To get an equation that accurately reflects your shipping costs, you’ll want to start with a minimum shipping value that is close to the price of shipping one product. In this example, the rate for shipping one product is $7.62. We tried a few different minimum values to see what would get the equation result closest to the real cost (using trial and error), which is how we ended up with $7.50 as our minimum shipping value.
- Add the average rate difference from your table above. If you calculate the differences in rates in the table above, you’ll see that the average rate difference is $0.32. We slotted $0.32 into our equation and realized that we would lose money for a handful of select quantities. So, we played around with a few other values and settled on $0.40.
- Test your equation. As we mentioned, it’s going to take some trial and error to determine the best rate for your unique situation. Since the USPS Priority Mail rates have sporadic increases as the package weight increases, there’s no perfect equation that will make each shipping price match exactly what your customer will pay at checkout. Ultimately, you want to get as close as possible, so that the customer feels like they’re paying a reasonable amount for shipping, while you’re not losing money in the process.
As you can see, you will make a profit on every single purchase of lotions for these Zones. The lowest you’d make is three cents for when a customer orders two lotions.
But if a customer orders six lotions, the USPS Priority Mail rate for Shippo members is $8.81, while your customer pays $9.90, meaning you make a profit of $1.09.
Do the math for all potential variations to make sure you’re happy with the profit or loss outcome for each quantity. Then, you’ll need to create an equation just like that for each of the WooCommerce Shipping Zones.
Remember, the USPS lets you send up to 70 pounds per package. For this example, we’re only looking at the first 10 pounds, but you can reach out to email@example.com for the complete rate chart in order to cover larger quantities.
Let’s go through one more example to let you practice creating the equations.
Second Example for Calculating WooCommerce Quantity-Based Shipping
This time, let’s look at a business that sells vases.
As you might remember, we said that one vase weighs five pounds. Therefore, according to the following table, the shipping rate for one vase to Zones 0, 1 and 2 is $8.70 if you use the USPS Priority Mail rates for Shippo members.
Alternatively, eight vases would weigh 40 pounds total; shipping them to these zones would cost $34.37.
Now, let’s calculate how much more it would cost a customer to ship additional vases on average. Again, to simplify, we’re only calculating this up to 40 pounds, which equals eight vases, but the USPS lets you ship up to 70 pounds in one package. If that’s relevant to you, reach out to firstname.lastname@example.org.
The average difference of adding an additional vase to the cart (with the intention of getting it shipped to Zones 0-2 with USPS Priority Mail): $3.67.
Let’s round it up to $3.70.
Now, let’s set the minimum shipping value at $8.75. This time, we’re going a little above what it usually costs to send one item, since vases weigh more and there are larger differences in their shipping rates, and we want to minimize the chance of the business losing money on this. Here’s our equation:
$8.75 + ($3.70 * [number of vases])
Therefore, if a customer wants to buy one vase, WooCommerce will charge her the $8.75 as the minimum shipping value, plus $3.70. The total rate at checkout would be $12.45. If you subtract the cost of shipping with USPS Priority Mail ($8.70), you’re left with a profit of $3.75.
If a customer wants to buy two vases, there’ll be an additional charge of $3.70. Therefore, the total cost for shipping for the customer will be $16.15. As you can see in the chart, the USPS will only charge you $10.54 for the same deal (if you’re a Shippo member), leaving you with a $5.61 profit.
Finally, you need to add your equations to WooCommerce, so that the rates are automatically calculated at checkout. Go to WooCommerce > Settings > Shipping > Shipping Zones.
Choose your Zone and click on it. In this case, Zone 1.
Select your Shipping Method.
When a box called Flat Rate Settings opens up, enter your equation into the Cost field.
As an example, the equation looks like:
6.80 + ( 0.3 * [qty] )
In a different example, here’s the equation:
8 + ( 2.5 * [qty] )
Make sure to use the abbreviation [qty] in your equation as that’s recognized by WooCommerce.
Then, click the Save Changes button.
Of course, repeat the process of adding WooCommerce quantity-based shipping equations for each Zone.
Once you’re done with the Zones, you’re done setting up WooCommerce quantity-based shipping. Congratulations!