WooCommerce shipping for Food and grocery stores

Shipping for food eCommerce is tricky. A bag of coffee weighs 250 g. A box of canned tomatoes weighs 6 kg. A gift hamper might hit 10 kg.

Your carrier charges very differently for each but if you’re using a flat rate, your customers all pay the same.

Here’s how to set up weight-based shipping that actually works for a food or grocery store.

The specific challenges

Wide weight variance

Food products span a huge range.

A flat rate will always be wrong for some orders.

Unpredictable basket composition

One customer buys 20 lightweight snacks.

Another buys 3 heavy pantry items.

Item count alone isn’t a reliable signal.

Price sensitivity

Grocery shoppers compare prices.

A $7 shipping fee on a $15 order can kill the sale.

The following setup covers most food store scenarios.

Each bracket is a separate rule group in my free plugin Advanced Shipping Rules for WooCommerce plugin.

Tier 1: light (under 2 kg)

Small orders — snacks, condiments, single bags of coffee.

  • Cart weight ≤ 2 kg → $4.00
weight less than 2 shipping 4 woocommerce

Tier 2: medium (2–6 kg)

Typical pantry restock like pasta, canned goods, sauces.

  • Cart weight > 2 kg AND ≤ 6 kg → $8.00
cart weight greater than 2 and less than 6

Tier 3: heavy (6–12 kg)

Full grocery runs or orders including staples like flour, rice, oil.

  • Cart weight > 6 kg AND ≤ 12 kg → $13.00
from 6 to 12 cart weight woocommerce

Tier 4: bulk (over 12 kg)

Wholesale or very large orders.

  • Cart weight > 12 kg → $20.00
cart weight greater than 12

Bonus: reward high-value orders

Add a cart-total condition to incentivize larger baskets:

  • Cart total > $120 → no shipping surcharge (or reduced fee)

Combined with a visible “Spend $120 for free shipping” cart message, this consistently increases average order value.

How to set this up

Install the free Advanced Shipping Rules for WooCommerce plugin: wordpress.org/plugins/advanced-shipping-rules-for-woocommerce

Then:

  1. Go to WooCommerce → Settings → Shipping
  2. Click your zone → Add Shipping Method → Advanced Shipping Rules
shipping zones advanced
  1. Click Edit on the new method
  2. Create one group per bracket
advanced shipping rules group
  1. Add the conditions and cost to each group
  2. Save

Each group fires independently. The one that matches with the highest cost wins.

Important: set product weights

Weight-based rules only work if every product has a weight entered.

So you need to check if your products have weight already set in WooCommerce admin:

  1. Go to Products → All Products, edit each item
  2. Under Product Data, click the Shipping tab
  3. Enter the weight
set Weight for product in woocommerce

For variable products (250 g vs. 500 g variants), each variation can have its own weight.

WooCommerce handles the cart calculation correctly.

Gift hampers and bundles

For pre-made bundles, set the weight to the total packaged weight including packaging, not just the product contents.

This ensures the rule fires correctly for what’s actually being shipped.

Conclusion

Food stores have more to gain from weight-based shipping than almost any other category.

The weight variance is high, customer price sensitivity is real, and the right fee at the right order size makes checkout feel fair.

Download the free plugin from WordPress.org.

More posts