WooCommerce checkout troubleshooting
“No shipping options available”? Check these seven things
WooCommerce usually shows no shipping option when the address reaches the wrong zone, the matched zone has no usable method, or the cart does not meet that method’s conditions. Start with the matched zone before changing prices or adding another plugin.
Published · Updated · Shipping Contract Guard
The short answer
Check the address, then the first matching zone
Enter one complete made-up shipping address. WooCommerce uses the first zone that matches it and shows only the shipping methods—the options configured in that zone. A method in another zone cannot appear, even when its price and settings look correct.
If the cart contains only virtual products, no shipping choice is expected. For a shippable cart, continue through the checks below.
Enter a complete shipping address
Use a country, state or province, city, and postcode that the store should accept. An empty or incomplete field can prevent WooCommerce from reaching the intended shipping zone. Also confirm that the store’s shipping locations allow the destination. Use a made-up test address, not a customer address.
Find the first zone that matches
WooCommerce checks zones from top to bottom and stops at the first match. A broad country zone above a narrow postcode zone can win too early. Use shipping debug mode for one test if the matched zone is unclear.
Confirm that the matched zone has an enabled method
Open that exact zone and check that Flat Rate, Free Shipping, Local Pickup, or the intended extension method is present and enabled. A method configured in a different zone does not help this address.
Check whether the products need shipping
A cart containing only virtual products does not need a shipping method. For physical products and variations, confirm that the product settings are saved and that the test cart contains the item you intended to check.
Check the method’s own conditions
Free Shipping may require a minimum amount, a coupon, either condition, or both. Other shipping extensions can add their own availability conditions. Core Flat Rate shipping-class costs change the price; they do not create a shipping method by themselves.
Test a simple cart before a mixed cart
Start with one physical product and the made-up address. Then add the coupon, second product, shipping class, quantity, or promotion that matters. This shows which change makes the shipping option disappear.
Clear stale cart data and repeat the same test
After saving a change, empty and rebuild the test cart or use a new private browser session. Clear relevant cart or page caches, then repeat the same product, address, amount, and coupon. Change one setting at a time.
Start from the symptom
Which check should come first?
Keep the cart fixed while you inspect one layer at a time. That makes the result easier to explain and repeat.
| What you see | Check first |
|---|---|
| No methods for one postcode | Zone match and postcode rule |
| Flat Rate missing everywhere | Enabled method and product shipping |
| Free Shipping missing | Amount, discount, and coupon conditions |
| Wrong price for a mixed cart | Shipping class and calculation type |
Follow the focused checklist for your result
Wrong zone or postcode →
Free Shipping missing or appearing too early →
Shipping class cost missing or wrong →
Shipping changed after an update →
Check WooCommerce’s own instructions
WooCommerce documents the same address, zone, method, product, and calculation checks in its official troubleshooting guide.
Read WooCommerce’s core shipping checklist →
Read WooCommerce’s shipping-zone guide →
Save the working result before the next change
Shipping Contract Guard saves the shipping options and prices you approve for a test cart, then compares them when the same check runs again. It places no order and uses no customer address.
Install free from WordPress.org