How to set WooCommerce Weight Based Shipping? Tutorial for Beginners

WooCommerce Weight Based Shipping
Author Bartosz Gajewski
Updated:
2017-10-19
Reading time:
4 minutes read

If you run a WooCommerce store with products of different sizes and weight, you know that flat rate shipping is not enough. You need a more advanced way to calculate shipping rate based on weight of customer’s cart. Learn this in our newest WooCommerce Weight Based Shipping Tutorial for beginners.

What is the Weight Based Shipping?

Let’s start with the complete basics. Why you should even bother to calculate shipping cost on weight? Order weight is one of the simplest conditions that courier companies consider when pricing the cost of shipping. This is perfectly understandable – the heavier the product, the more difficult it is to deliver. Especially if, like the world’s largest courier companies, you transport thousands of tons of products a day.

So, how can you make use of weight based shipping in WooCommerce? There’s no way to do that… unless you have a plugin. WooCommerce provides only flat rate shipping, which is a fixed shipping cost that can be set for specific shipping method. The solution is the WooCommerce table rate shipping. It’s basically conditional shipping that adjusts the shipping cost according to the contents of your customers‘ shopping cart, including cart weight.

Read our short guide about what is table rate shipping→

WooCommerce Weight Based Shipping Tutorial

Now that you know what weight based shipping is, it’s time to show you how to implement such a solution in your store. I’ll explain everything step by step with working examples.

WooCommerce shipping plugin

As I mentioned, you will need a WooCommerce plugin to achieve that. The most popular free table rate shipping plugin in the official WordPress repository is the Flexible Shipping plugin. It’s our solution, of which we are extremely proud. More than 130.000 shops worldwide use it daily. The free version will work great as a basic shipping calculator. It allows you to set shipping based on weight and cart total. Additionally, it has WooCommerce advanced free shipping over amount options.

Flexible Shipping WooCommerce

The best Table Rate Shipping for WooCommerce. Period. Create shipping rules based on weight, order totals or item count.

Go to WordPress.org or Download for free
100,000+ Active Installations
30-day money back guarantee
Last Updated: 2024-12-12
Works with WooCommerce 9.1 - 9.5.x

Your pricing conditions

Before you start configuring the plugin, you need to specify weight ranges and shipping charges. To do it, simply draw a table on a piece of paper or open a spreadsheet in an Excel-like application.

You should create three columns:

Weight: from,

Weight: to,

– Price.

You can have different shipping methods at your shop such as FedEx, traditional mail, and in-store pick-up. Every delivery option can have different rates based on shipping carrier. It can look like this:

Edit
Weight is from to Price
0 kg 1 kg $5
1,001 kg 2 kg $8
2,001 kg 5 kg $10
5,001 kg 15 kg $15

This means that for orders with a weight of up to 1 kg, the shipping rate is $5. Over 1 kg, up to 2kg, it’s $8. Over 2 kg, up to 5 kg is $10. And finally over 5 kg, up to 15 kg is $15. Above 15 kilograms, shipping is not available. Of course, this is just my example. In your case, the costs and ranges may be entirely different. Remember that these ranges refer to the total weight of all the products in your customer’s shopping cart, which results in one shipment.

Add Flexible Shipping method

Having the shipping rules written down, you can now create shipping methods based on these rules. But, first install and activate the Flexible shipping plugin. Then, go to WooCommerce → Settings → Shipping. Choose the shipping zone where you want to offer weight based shipping. In my example, have the ‘UK’ shipping zone:

WooCommerce add shipping method

Then, click the Add shipping method button and choose the Flexible Shipping method from the available methods:

add flexible shipping method

Once you created the Flexible Shipping method, click it to configure shipping rules.

In the configuration page, you can enter both Method Title,Method Description and use all of the Flexible Shipping plugin’s features. The most important element, however, is the Shipping Cost Calculation Rules table. You’ll find it on the bottom of the configuration page:

Shipping Cost Calculation Rules table

There, you can set the cost for your shipping method. You can use different conditions to determine shipping cost. To set weight based shipping in WooCommerce, you’ll have to use the weight condition.

Now it’s time to map previously created pricing conditions to the Calculation Table. In my example, it looks like this:

weight based shipping setting using the Flexible Shipping plugin

As you can see for yourself, this is basically a one-to-one copy of a table created earlier with shipping costs and weight ranges. With this simple layout of the Flexible Shipping plugin, setting up shipping should be effortless. Just make sure that the scales in the rules do not overlap. Otherwise, the plugin will calculate the shipping cost by adding two rules.

You can also watch our video about setting up Weight Based Shipping.

Finally, save the changes and you’re done. In the same way, you can add other shipping methods with a cat based on product weight.

Do you need help with Flexible Shipping? Check out our docs on how to configure WooCommerce Weight Based Shipping rules in our plugin.

Advanced weight based shipping scenarios

Determining the shipping cost based on weight is not the only way to use weight-based shipping in WooCommerce. You can use it as well for WooCommerce advanced shipping. I’ll show you a few advanced weight based shipping scenarios that you can use in your WooCommerce store.

Hide shipping method based on weight

A great way to reduce excessive shipping costs on the store side is to set a maximum shipping weight in WooCommerce orders or, using other words, hide the shipping method for overweight orders. You can simply set the maximum weight in the ranges selected in the shipping rules. As in my example, if the shipment exceeds 15 kg, the configured shipping method will not display. This is because there is no desired rule that contains values above 15. For details, see our article on how to set max weight in WooCommerce orders.

Keep in mind that in this situation, your customer may not see any shipping method and be left with the default message from WooCommerce. Learn how to change the “No shipping options were found” message in WooCommerce and reduce the number of abandoned shopping carts in your store.

Progressively increasing weight based shipping

If you have a more complex weight-based shipping scenario, it is likely that the number of shipping rules you create will be massive. If this is the case, it’s a good idea to use the additional cost option, which allows you to set the Progressively Increasing Weight Based Shipping, to automatically charge a shipping cost per each kilogram.

Summary

In this article, I showed you how to set shipping cost by weight using free solution. As you have found out yourself, using the Flexible Shipping plugin, it is very easy to implement. I hope it will help you to develop your WooCommerce store. Good luck!

Comments
Subscribe
Notify of
guest
18 Comments
Inline Feedbacks
View all comments
E-visuals Ogbayani Edward
E-visuals Ogbayani Edward
4 years ago

for this to work, do i need to set the weight of the product in its inventory?

Marta Pawlonka
Marta Pawlonka
Reply to  E-visuals Ogbayani Edward
4 years ago

Hello, you need to set the weight for the WooCommerce product in the Product edit page: http://wpdesk.me/mp/uwxfb.png

Pavel Hájek
Pavel Hájek
4 years ago

Hallo, good plugin but it does not work with Woocommerce Coupon generator. Coupons works only if this flexible shipping is deactivated

Łukasz Spryszak
Łukasz Spryszak
Reply to  Pavel Hájek
4 years ago

Hi Pavel, we haven’t been notified about any problems with Flexible Shipping and WooCommerce coupons till now. That’s why I suppose the issue you have encountered might be environmental. Could you please provide us with some more details using the contact form at https://octolize.com/support/ ? We will take a closer look at the situation.

Olber Utria Garcia
Olber Utria Garcia
4 years ago

Hi. I can to inserts formulas en this plugin. Example: (17USD+COAST*0.01)*weigth

Łukasz Spryszak
Łukasz Spryszak
Reply to  Olber Utria Garcia
4 years ago

Hi Olber, unfortunately our Flexible Shipping PRO plugin doesn’t allow to enter such formulas directly, however, I believe you should be able to achieve the same effect defining the shipping cost calculation rules in the table.

Kenny Berwager
Kenny Berwager
4 years ago

I have a client currently running WordPress, WooCommerce for their online store. The issue we are having is with shipping. They would like the shipping to calculate by weight using USPS up to 15 Lbs and Fed Ex for shipping for anything over the 15 Lbs. They would also like only the shipping option and price to ship the order on the check out page. (Currently two options show and it is very confussing to the customer) can your plugin help with these things?

Łukasz Spryszak
Łukasz Spryszak
Reply to  Kenny Berwager
4 years ago

Hi Kenny, yes our Flexible Shipping PRO plugin should be able to handle the scenario you’ve described with ease. You will need to split it into 2 separate shipping methods and create a rules hiding the USPS if the order’s weight is more than 15 lbs and similarly for FedEx – if the order’s weight is less than 15 lbs.

Discuss6485
Discuss6485
4 years ago

I want to advertise to the customer they can add X more pounds and keep the same shipping shipping rate. Any way to do this?

Grzegorz Turbasa
Grzegorz Turbasa
Reply to  Discuss6485
3 years ago

Hi, thank you for the question. Unfortunately, you can’t do it directly with our plugin as it would require some custom coding. However, that’s a proper feature request so I’m adding the idea to our backlog.

Lili Skyler
Lili Skyler
3 years ago

Hi there,

I’ve been using this plugin for a good while and it works great within the US however many of my international customers have issues checking out. Even though I have shipping set up in all continents and countries like Canada and the UK, customers from those places email me and tell me that at checkout the following error message is displayed. “this merchant only ships within the US.” Any idea why this may be? I am thinking it is a compatibility conflict with my current theme and I may want to switch to the official woocommerce theme: storefront. please let me know if you know how to fix this international issue.

Łukasz Spryszak
Łukasz Spryszak
Reply to  Lili Skyler
3 years ago

Hi Lili, are you using any vendor or marketplace plugins like e.g. Dokan or the similar ones? If so, on the first glimpse it looks like an issue related to this kind of plugins and a situation when the vendor selling the products has not enabled the shipping abroad. I believe that contacting such plugins’ authors might shed some light in this case.

rutba bazaz
rutba bazaz
3 years ago

hey i am using this plugin and it works very well for heavy weight products but for my lighter products(like products in grams) its shipping rate as per weight is too high can u please help me with this
TIA

Łukasz Spryszak
Łukasz Spryszak
Reply to  rutba bazaz
3 years ago

Hi Rutba, have you checked if the weight ranges for the lighter products were configured properly, especially when it comes to the decimal places? If defined properly for the currently used weight unit, the weight ranges should work exactly the same, no matter if you ship heavy or light products.

Lek
Lek
3 years ago

Does this plugin allow different rules for different shipping classes?
i.e. I have 2 classes. One with flat rate and one with variable based on weight.
Let’s say someone orders 2 products from each class for 4 total..
Would this allow me to make the final shipping cost = Flat rate + weight based?

Łukasz Spryszak
Łukasz Spryszak
Reply to  Lek
3 years ago

Hi Lek, sure, our Flexible Shipping PRO plugin will handle such scenario with ease.

Gufran
Gufran
2 years ago

I want to set shipping charges for variable products as per the table attached. Please Help.

Łukasz Spryszak
Łukasz Spryszak
Admin
Reply to  Gufran
2 years ago

Hi Gufran, the scenario you’ve described should be possible to configure using our Flexible Shipping PRO plugin. If you configure the shipping cost calculation rules to be based on Product, you will be able to choose next which product variation they should be applied to:

product-variation-based-shipping-cost-calculation-.png