View Categories

What Weight-Based Shipping Does (and What It Does Not)

Weight-Based Shipping for WooCommerce adds a shipping method that prices each order from its total cart weight, using weight tiers you define per shipping zone. Open WPFactory > Weight-Based Shipping (also reachable at WooCommerce > Settings > Shipping), pick a zone, and add the Weight-Based Shipping method to start.

What Weight-Based Shipping does #

Weight-Based Shipping adds one shipping method to WooCommerce. You define weight ranges (tiers) and a cost for each one. At checkout, Weight-Based Shipping adds up the weight of everything in the package, finds the tier that weight falls into, and quotes that tier’s cost.

Everything is configured per shipping zone, inside the zone’s method settings. A store can run one set of tiers for domestic orders and a completely different set for international ones without any extra configuration layer.

Why weight-based rates #

Flat rate stops working the moment your products differ in weight. A single flat charge either loses money on the heavy orders or overcharges on the light ones, and the usual workaround, a per-item cost, falls apart as soon as one item is a 40 kg bag and another is a 200 g sachet.

Weight is what couriers bill on, so a table of weight ranges is the closest a store can get to its real cost without connecting to a carrier API. Weight-Based Shipping is that table, applied per zone, with the extras that real stores need around it: handling fees, free shipping thresholds, and a hard weight ceiling.

What one method instance controls #

Each instance you add to a zone carries its own complete configuration.

Feature What it does
Weight tiers Unlimited weight ranges, each with its own cost. The top tier can be left open-ended.
Method title The label the customer sees at checkout.
Tax status Taxable, or not taxed at all.
Zero-weight handling What to do when nothing in the cart has a weight: charge the first tier, or hide the method.
Handling fee A fixed amount or a percentage, added on top of the tier cost.
Free shipping by weight At or above a weight you set, the rate drops to zero.
Free shipping by cart total At or above a goods value you set, the rate drops to zero.
Maximum weight limit Above a weight you set, the method disappears and a message you wrote is shown.

There is no Free/Pro split: every feature in this table is included in Weight-Based Shipping, with nothing locked behind an upgrade.

How the weight is worked out #

For every line in the package, Weight-Based Shipping reads the product’s weight and multiplies it by the quantity ordered. A variation that has its own weight uses that weight; a variation left blank falls back to its parent product’s weight. Anything with no weight on either contributes nothing.

The unit is whatever you have set in WooCommerce > Settings > Products > General > Weight unit. Weight-Based Shipping does not convert between units: your tiers, your thresholds and your product weights are all read in that one unit.

The full order of operations, including where the fee and the thresholds land, is in how the shipping cost is calculated.

What it does not do #

Knowing the boundaries saves a support ticket.

  • No carrier integration. It does not call UPS, DHL, FedEx, USPS or any other API. Rates come from your table, not from a carrier quote, and no labels are printed.
  • No dimensional or volumetric weight. Product dimensions are ignored entirely. A large, light parcel is priced on its actual weight.
  • No box packing. The package is treated as one weight total. Nothing is split into parcels, and there is no per-box cost.
  • No shipping-class rules. Tiers apply to the whole package weight. If you need a different rate for one class of product, that is a separate zone or a different method.
  • No per-product or per-category rates or exclusions. The only input is total package weight.
  • No per-kilo rate. Each tier has one fixed cost; the price does not scale continuously inside a tier.
  • Nothing on the front end but the rate. Weight-Based Shipping adds no widgets, no product-page output, no cart notices other than the maximum-weight message you configure, and no emails.
  • It does not touch orders. It quotes a rate during cart and checkout calculation and stops there. HPOS (High-Performance Order Storage) and the Cart & Checkout Blocks are both declared compatible.
  • It is not a tax plugin. The only tax decision it makes is whether the rate it returns is taxable. WooCommerce does the rest.

Where it sits among your other methods #

Weight-Based Shipping is an ordinary WooCommerce shipping method. It appears alongside Flat Rate, Free Shipping and Local Pickup in the same zone, and the customer picks from whatever the zone offers. You can add more than one instance to the same zone, for example an economy table and an express table, and give each its own title and tiers. See how to offer economy and express weight-based options.

If another plugin splits the cart into multiple shipping packages, each package is priced on its own weight and the customer sees a rate per package. That is WooCommerce’s behavior, not something Weight-Based Shipping overrides.

Who it is for #

  • Stores selling anything heavy, bulky or sold by weight, where a flat rate is either a loss or a deterrent.
  • Stores whose courier bills by weight bracket and who want their checkout to mirror the courier’s own table.
  • Stores shipping to several regions that need a different weight table per region.
  • Anyone who wants a free shipping threshold and a weight ceiling enforced at checkout rather than caught later by the warehouse.

Where to go next #

Get Weight-Based Shipping #

Tiered weight rates, handling fees, free shipping thresholds and weight limits all come in one plugin, configured per zone. Get Weight-Based Shipping for WooCommerce.

Need a hand? Our team answers every ticket on the Weight-Based Shipping support forum.