Weight-based shipping in WooCommerce: setup guide with a plugin

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.

Set Product weight

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

    shipping zones in woocommerce

    Go to WooCommerce → Settings → Shipping and click on your zone.

    Add the Method

    Click Add Shipping Method, choose Advanced Shipping Rules, confirm.

    shipping zones advanced

    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.

    advance shipping rules woocommerce conditions group

    Example: three-tier weight pricing

    Group 1 — Light (0–2 kg)

    • Cart Weight greater than or equal to 0
    • Cart Weight less than or equal to 2
    • Cost: $4.00

    Group 2 — Medium (2–8 kg)

    • Cart Weight greater than 2
    • Cart Weight less than or equal to 8
    • Cost: $9.00

    Group 3 — Heavy (over 8 kg)

    • Cart Weight greater than 8
    • 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.

    add items number condition and cart weight in woocommerce shipping

    Example: heavy bulk order

    • Cart Weight greater than 5 kg
    • Number of Products greater than 10
    • 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!

    More posts