Skip to main content

E-commerce Operations

WooCommerce Shipping Not Showing at Checkout: How to Find and Fix the Cause

When shipping disappears at checkout, start with the affected address and cart. This guide helps separate zone configuration, shipping rules, carrier failures, and checkout display problems.

Your customer enters an address, reaches the delivery step, and finds no way to place the order. The product is available. Payment works. Shipping is where the purchase stops.

The quickest route to a fix is to identify which part of shipping has failed. Is the address matching the wrong zone? Does the cart qualify for any method? Is a carrier returning no quote? Or are valid options failing to appear in the checkout interface?

Start with one reproducible checkout attempt. Keep the same products, quantities, address, and coupon while you investigate. Changing several of those at once makes a successful test difficult to explain.

First, identify the pattern

Record the exact message and the point where it appears. A shipping section that is absent entirely needs a different investigation from a visible section reporting that no options are available.

What the customer seesFirst investigationUseful comparison
No options for one ZIP codeAddress matching and zone configurationSame cart, another address you serve
No options for one product or variationProduct data and shipping restrictionsSame address, a known working product
Free shipping is missing but paid shipping worksMinimum spend and coupon conditionsSame cart just below and above the threshold
Flat rate appears, carrier rates do notCarrier extension and quote responseSame address and products with each method
Options disappear after an address changeCheckout recalculation and displayFresh checkout session with the final address
Only logged-in customers have the problemCustomer-specific rules or saved addressGuest checkout with the same cart and address

These comparisons are diagnostic experiments, not proof on their own. For example, a different address may change both the matched zone and carrier service availability. Record which variables changed before deciding what the result means.

Check which shipping zone actually matches

Open WooCommerce → Settings → Shipping → Shipping zones. Review the customer’s shipping address, including country, state, and postcode.

WooCommerce matches the first applicable zone in the list. A customer does not collect methods from every overlapping zone. Put narrow regions above broad ones and verify that the matched zone contains an enabled method. The fallback zone applies when none of your configured zones matches. WooCommerce explains zone matching here.

Consider this illustrative setup:

Zone orderRegionMethods
1Selected local ZIP codesLocal delivery
2FloridaFlat rate
3United StatesCarrier rates

A Florida customer outside your local ZIP codes matches the Florida zone. They will not automatically receive the carrier methods configured only in the United States zone below it.

Also ask whether the blocked destination is intentional. An empty zone might exist to exclude an area the business cannot serve. Adding a method simply to remove the checkout message can create an order your team cannot fulfill.

If only free shipping is missing, inspect eligibility

Open the Free Shipping method inside the matched zone. Check whether it requires a coupon, a minimum amount, either condition, or both. Verify whether the minimum is evaluated before or after coupon discounts according to the method setting. A coupon must permit free shipping when that condition is required. See the official Free Shipping configuration guide.

For an illustrative $100 threshold, test the following:

TestWhat it establishes
$99 cart, no couponBehavior below the threshold
$100 cart, no couponBehavior at the threshold
$110 cart with a $20 discountEffect of discount handling
Smaller cart with a free-shipping couponCoupon eligibility, if offered

Use the same address and products throughout. Write down the expected outcome for each test before running it.

If free shipping is the only configured method, an ineligible cart may have no shipping option. Decide whether that is the intended business policy or whether a paid method should also be available. This is a fulfillment decision as well as a settings decision.

Separate product problems from address problems

When one cart fails and another works at the same address, inspect the affected product and the selected variation. Check the Virtual flag, shipping class, and any product restrictions used by your shipping extension.

A downloadable item can still be physical. Marking an item Virtual means it does not require shipping; that distinction matters when the entire cart consists of virtual items.

Weight and dimensions are not universal requirements for displaying every shipping method. They become particularly relevant when an extension calculates carrier quotes or package-based rates. Review the extension’s requirements rather than filling every field and hoping for a different result.

Build a minimal failing cart. Remove one item at a time until you can identify whether a single item or a combination triggers the problem. Preserve the original cart details so the final fix can be tested against the actual failure.

Distinguish checkout rates from shipping labels

Buying or printing a label after an order is placed is a different function from offering a delivery price before the order is placed. A label workflow working correctly does not establish that checkout quotes are configured.

For a missing carrier quote, inspect the extension’s account connection, enabled services, origin address, package configuration, and destination eligibility. Use the specific extension’s documentation and logs: one provider’s error message does not explain another provider’s integration.

If possible, compare a carrier method with a simple flat rate on staging. A working flat rate narrows the investigation toward the carrier path; it does not prove that all checkout behavior is healthy.

Ask the log a precise question: did the quote request fail, or did it succeed without an eligible service? Those outcomes require different fixes. Keep credentials and customer details out of any log excerpts you share externally.

Check whether recalculation or display is failing

If changing the address removes shipping options, inspect browser errors and the request that updates checkout. For classic checkout, WooCommerce documents AJAX requests such as update_order_review; block checkout uses a different integration path. Do not assume the same request applies to both.

Compare the returned data with what the customer sees. A failed request, an empty rate result, and a rate that exists but is hidden by the interface are separate findings. WooCommerce’s troubleshooting guide covers browser inspection, logs, template overrides, and conflict testing.

Use a staging copy for theme switches, plugin isolation, and checkout changes. Reproduce the fault before disabling anything. Then change one component, retest the same checkout, and record the outcome. If the fault disappears, restore the component and confirm whether it returns.

Do not use a blanket plugin deactivation on a live store as the first experiment. You may remove payments, tax rules, or operational integrations while trying to repair shipping.

Verify the fix against the business rules

One successful order is useful evidence, but it is not the whole shipping policy. Test the boundary that was broken and at least one nearby case that should behave differently.

  • An address inside the corrected region and one outside it.
  • A qualifying cart and a cart that should not qualify.
  • The affected variation and a known working product.
  • Guest checkout and logged-in checkout if behavior differed.
  • A fresh session and an address change during checkout.

Confirm the final shipping charge on the order, not just the label displayed at checkout. If you enabled frontend debug messages, disable them after diagnosis. Note the change and the test cases so future updates can be checked against the same behavior.

Frequently asked questions

Why does WooCommerce say no shipping options are available?

The message means the checkout has no available shipping option for the current situation. Investigate the matched zone, enabled methods, cart eligibility, and extension restrictions before treating it as a single known bug.

Why does shipping work for some addresses but not others?

Compare the matched zones and the delivery coverage of the selected method. Test with the same cart so a product restriction does not confuse the address comparison.

Should I install another shipping plugin?

Only when the required delivery rule or service is missing from your current setup. An additional plugin will not automatically correct a wrongly ordered zone or an invalid carrier request.

Need help with a shipping issue that keeps returning?

Send E-FRAME the affected cart, a test destination, the exact checkout message, your shipping extension, and what changed before the failure. That gives us a useful starting point for WooCommerce troubleshooting and development.

If checkout is also slow, see our separate guide to finding WooCommerce performance bottlenecks. For a reproducible shipping failure, talk to a developer.

Written by

E-FRAME Team

E-commerce Development Team

E-FRAME is an e-commerce development team specializing in WooCommerce, Shopify, integrations, performance, and ongoing technical support.