How to add weight-based flat rate shipping in WooCommerce

Charge a clear shipping fee based on the total cart weight. Create simple ranges like 0–1 Kg, 1.01–5 Kg, 5.01–10 Kg, and apply a flat price to each. It keeps costs fair for heavier orders and easy to understand at checkout.

What is weight-based flat rate shipping?

A rule that sets shipping by the cart’s total weight.

Examples:

  • $6 for 0–1 Kg
  • $9 for 1.01–5 Kg
  • $15 for 5.01–10 Kg
  • $25 for anything above 10 Kg

Make sure your store uses the right weight unit. Go to WooCommerce → Settings → Products → Measurements and set Weight unit to lb or kg to match your catalog.


Why is it required?

  • Recovers packing and courier costs for heavier orders
  • Keeps checkout clear with predictable fees
  • Prevents under-charging on bulky carts
  • Works nicely with conditions like state, ZIP, category, user role, and time windows

Ways to configure weight-based flat rate shipping

Use Each Weight Rule to set exact ranges and prices.

Steps

  1. Go to Dashboard → Dotstore → Flat Rate Shipping
  2. Add shipping method name and price.
  3. Open each Weight Rule and add rows for your ranges with a shipping cost.
  4. Optional controls: Tooltip, Default selected, Logged-in only, Start/End date, Days/Time.

    Weight based flat rate shipping method

  5. Save and test.

    each weight shipping cost checkout


2) Dotstore Flat Rate Shipping — add conditions on top of weight

Limit when the weight rule applies.

Common conditions

  • State or ZIP lists
  • Product Category or Shipping class
  • Subtotal threshold
  • User role
  • Day/Time window for weekend or holiday shipping

Real example use case 1

Goal: Country-wide weight ladder.

  • 0–1 Kg → $6
  • 1.01–5 Kg → $9
  • 5.01–10 Kg → $15
  • 10.01 Kg and above → $25

Dotstore setup

  1. Zone: United States.
  2. Method: Weight-Based Shipping (Flat Rate).
  3. Add each Weight Rule row for the ranges above.
  4. Label: “Standard Shipping”. Tooltip: “Price based on total cart weight”.
  5. Save.

Expected

  • Cart weight 0.8 Kg → $6
  • Cart weight 3.2 Kg → $9
  • Cart weight 7.5 Kg → $15
  • Cart weight 12 Kg → $25

Real example use case 2

Goal: Discounted West Coast weights for Apparel only.

  • CA, OR, WA
  • Category = Apparel
  • 0–5 lb → $8
  • 5.01–20 lb → $18
  • 20.01 lb and above → $35

Dotstore setup

  1. Method: Flat Rate.
  2. Each Weight Rule the three ranges.

    Add Conditions:

    • State in [CA, OR, WA]
    • Category = Apparel
  3. Save and test.

Expected

  • 4 lb Apparel cart shipping to CA → $8
  • 12 lb Apparel cart shipping to WA → $18
  • 12 lb Non-apparel cart shipping to WA → method hidden

Expected outcome

  • Customers see a simple shipping price that follows the cart’s total weight.
  • Heavier carts pay more. Light carts pay less.
  • You control costs without confusing buyers.

FAQs

1) Which weight does the rule use?

The total cart weight. Make sure each product has a weight, and your store’s Weight unit matches your catalog.


2) What happens with mixed products?

The plugin sums all product weights. The final fee is based on the total, not per item, unless you also enable per-item rules.


3) Can I cap shipping after a certain weight?

Yes. Add a final rule like “40 lb and above → $30 flat” to stop the growth.


4) How do I exclude heavy items from free shipping?

On your Free Shipping method, add a Weight ≥ X condition to hide it for very heavy carts, or limit free shipping by Category/Shipping class.


5) Do you support dimensional weight?

The weight rules use actual product weight. If your carrier bills by volume, pair this with a handling fee or a carrier-rate plugin.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.