Weight is the primary variable in carrier pricing.
If you’re not factoring weight into what you charge, you’re absorbing the difference.
WooCommerce doesn’t offer weight-based shipping out of the box.
So I’ve developed a plugin, here’s how to add it for free.
Before You Start
Two things must be in place:
Product weights
Every product must have a weight entered under Product Data → Shipping.
Without this, cart weight will be 0 and no weight-based rule will ever fire.

Weight unit
Set yours under WooCommerce → Settings → Products → Weight unit (kg, lbs, g, oz).

Then install my Advanced Shipping Rules for WooCommerce plugin: wordpress.org/plugins/advanced-shipping-rules-for-woocommerce
How cart weight is calculated
It is really simple, the plugin reads the total weight of all items in the cart: quantity × item weight, summed across every cart line.
This total is compared against your conditions at checkout.
This is why it is important that each product must have a weight entered in product data.
Setting up weight brackets
Open Your Shipping Zone

Go to WooCommerce → Settings → Shipping and click on your zone.
Add the Method
Click Add Shipping Method, choose Advanced Shipping Rules, confirm.

Click Edit on the new method.
Create One Group Per Bracket
Add one group per weight tier. Each group holds the conditions that define the bracket and the cost to apply when it matches.

Example: three-tier weight pricing
Group 1 — Light (0–2 kg)
- Cart Weight
greater than or equal to0 - Cart Weight
less than or equal to2 - Cost: $4.00
Group 2 — Medium (2–8 kg)
- Cart Weight
greater than2 - Cart Weight
less than or equal to8 - Cost: $9.00
Group 3 — Heavy (over 8 kg)
- Cart Weight
greater than8 - Cost: $16.00
Conditions inside a group work with AND logic, all must be true.
Groups work with OR logic, the one that matches and has the highest cost wins.
Save and Test
Save the settings.
If you want your new shipping method to have higher priority, make sure it is placed before the other shipping methods.

Open your store in an incognito window, add products at different weights, and confirm the correct fee appears at checkout.

I set the weight of each shoe to 3 kg. Therefore, 3 shoes have a total weight of 9 kg and qualify for the Heavy condition (over 8 kg).
Combine Weight With Item Count
You can mix condition types within a single group for more targeted rules.

Example: heavy bulk order
- Cart Weight
greater than5 kg - Number of Products
greater than10 - Cost: $20.00
This group only fires when the cart is both heavy and has many items — useful for wholesale or B2B scenarios.
Common Questions
What if a product has no weight set?
WooCommerce treats it as 0. The cart weight will be understated, potentially triggering the wrong bracket.
Does it work with variable products?
Yes. Each variation can have its own weight, and WooCommerce passes the correct variation weight to cart calculations automatically.
Weight-based shipping is the most accurate way to align what you charge with what carriers charge you.
Download the free plugin from WordPress.org.
If you have any suggestions, feel free to contact me on plugin support forum. Thanks!
