New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Shipping

Learn how to fix WooCommerce shipping not calculating.

Shipping should update when a customer enters a postcode. When checkout shows 'No shipping methods available' or a flat zero, the problem is usually misconfigured zones, missing product dimensions, or a carrier API returning errors silently.

Time: 25-45 minutes Level: Intermediate
Neil McNaught, founder of BugShield and WordPress author
Written by
Written by
Updated
Updated

What this problem looks like

WooCommerce matches the customer's address to shipping zones from most specific to least. If no zone matches, no methods appear. Flat rate plugins still need a zone row.

Live carrier quotes need accurate weight, dimensions, and origin postcode. Missing weight defaults can make APIs return no services without a clear storefront error.

Step 1: Verify address fields on checkout

Shipping calculation waits for country and postcode in most setups. Hide or rename checkout fields with care. A required state field left blank can block zone matching for US or AU stores.

Step 2: Shipping zone structure

  1. Go to WooCommerce → Settings → Shipping → Shipping zones.
  2. Confirm a zone covers the test postcode or use a catch-all Rest of World zone.
  3. Add at least one method per zone: flat rate, free shipping, or local pickup.
  4. Drag zone order so specific regions sit above broad ones.

Step 3: Product-level shipping data

Edit a product → Shipping tab. Set weight and dimensions in shop units under WooCommerce → Settings → General. Virtual and downloadable products skip shipping entirely.

Shipping classes let you surcharge heavy items. Unassigned products still ship but may get wrong flat rates if classes are part of your rules.

Step 4: Free shipping and minimum order rules

Free shipping methods can require a coupon or minimum order amount. Customers below the threshold see no methods if flat rate is disabled. Offer a paid fallback method in the same zone.

Step 5: Third-party live rate plugins

Carrier plugins need API keys, origin addresses, and compatible box packing settings. Enable debug mode in the plugin, place a test order, and read logs for 'no services available' API responses.

When to stop DIY and hire help

Complex shipping stacks with multiple warehouses, dropship vendors, or bespoke rules need a WooCommerce developer. BugShield configures zones, carrier APIs, and checkout field requirements at a confirmed price without hourly billing surprises.

Questions answered

WooCommerce shipping not calculating FAQs

Answers about shipping zones, customer addresses, classes, product data, carrier APIs, debug mode, and testing delivery methods.

Why does WooCommerce say no shipping methods available?

No zone matches the address, the zone has no enabled methods, or all methods hide behind unmet free shipping rules.

Do all products need weight for shipping?

Flat rate zones may not need weight. Live carrier quotes always need weight and usually dimensions.

Can caching affect shipping calculation?

Yes. Cached checkout pages can freeze old shipping totals. Exclude /checkout/ from cache and retest.

How do I hide shipping until an address is entered?

That is default WooCommerce behaviour on block checkout. Classic checkout may need theme tweaks or a snippet to hide the section until postcode is valid.

What causes WooCommerce shipping not to calculate?

The customer may not match a zone, the method may be disabled, products may lack required data, a shipping class may be wrong, or a carrier API may fail.

How does WooCommerce choose a shipping zone?

WooCommerce uses the customer's address and selects the first matching zone from top to bottom. Put specific postcode and region rules above broader country rules.

Why does shipping appear only after entering an address?

Rates often depend on country, postcode, state, weight, or package contents. Without enough address data, WooCommerce cannot match the correct zone or carrier service.

Can shipping classes stop a WooCommerce rate appearing?

Yes. A method may require or exclude a class, and imported products may have the wrong assignment. Check every item in the failing basket.

How do I debug a WooCommerce carrier shipping plugin?

Enable its temporary debug logging, reproduce one request, and review the package, destination, API response, credentials, service availability, and product dimensions.

How do I verify WooCommerce shipping calculations?

Test representative addresses, guest and logged-in checkout, simple and mixed baskets, shipping classes, coupons, taxes, free-shipping thresholds, and mobile checkout.

Would you rather a developer fixed it?

Request a fix at a confirmed price and speak directly with the BugShield developer working on your site.

Request a Fix