When WooCommerce shipping methods are not showing, reproduce the problem with the same cart and a complete delivery address. Then identify which system supplies the shipping price, which zone matches, and which condition removes the expected method. Changing random settings can make the warning disappear while leaving the delivery price wrong.
This guide helps store owners and developers isolate the failure, with an Indian PIN-code test plan and a separate check for Razorpay Magic Checkout. Documentation was reviewed on October 7, 2026. The examples and test worksheet are suggested exercises, not customer case studies or results from a live-store audit.
Quick check: what exactly is missing?
First distinguish a missing shipping rate from a missing payment option. Write down the exact message, the affected product variation, the delivery address and whether the problem happens before or after payment.
| Symptom | Start here | Evidence to capture |
|---|---|---|
| No delivery option for one address | Address coverage and matched zone | Country, state, PIN code and cart |
| Shipping disappears after a coupon | Free-shipping eligibility and other available methods | Before-and-after eligible amount |
| Standard checkout works; express checkout fails | The express checkout's shipping configuration | Same cart and address in both flows |
| Shipping is visible, but COD is absent | Payment-method eligibility | Selected shipping method and COD rules |
| Payment succeeded; order remains pending | Payment confirmation workflow | Order and payment references |
For the last symptom, use our Razorpay payment and WooCommerce pending-order guide. Shipping-zone changes are not a substitute for reconciling a payment.
1. Create one repeatable failing test
Build a small evidence sheet before changing anything: product or variation, quantity, coupon, delivery location, checkout type, expected method, actual result and time of the test. Use a sample identity; do not circulate customer addresses in public support threads.
Choose one working comparison cart if possible. Keep its address constant while changing only the product, then keep the product constant while changing only the address. This makes the difference useful: a failure tied to one heavy item calls for a different investigation from a failure affecting every cart in one location.
Make configuration experiments on an isolated copy. Our WooCommerce staging safety checklist covers test payments, notifications and deployment. Record the current settings so each experiment can be reversed.
2. Identify which system controls shipping
Ask the person managing the store whether customers use the standard WooCommerce checkout or a separate checkout service. Do not assume that editing WooCommerce shipping settings changes every checkout experience.
Razorpay Magic Checkout needs a separate check
Razorpay documents two shipping configuration routes for Magic Checkout. When Magic Shipping is enabled, its configuration takes priority over shipping settings in the ecommerce platform and plugins. Inspect the selected shipping type and the applicable profile before changing WooCommerce zones. See Razorpay's Magic Checkout shipping options.
Example: a store manager updates a delivery charge in WooCommerce but sees the old behaviour in Magic Checkout. The first question is which configuration is active, not whether another plugin needs installing. Compare the same sample order across both checkout flows and record where the results first diverge.
This check applies to Magic Checkout; it is not a claim that the ordinary Razorpay payment gateway controls shipping.
3. Check the first matching shipping zone
Open WooCommerce → Settings → Shipping → Shipping zones. WooCommerce uses the first matching zone, from top to bottom. Put narrowly defined delivery areas above broader regions, and confirm that the matching zone has an enabled method. A zone name alone does not define coverage.
Postcode restrictions can use individual codes, supported numeric ranges or wildcards. Check the actual configured region and postcode rules. The default Rest of the world zone applies only when no configured zone matches; it does not rescue a matching zone with no methods. See the official shipping-zone documentation.
A Chennai delivery example
Imagine a merchant serving an approved list of Chennai PIN codes, with a different arrangement for the rest of Tamil Nadu. Write the intended coverage down first. Put the approved local list above the broader state zone, then test a local address and an address outside that list.
Do not use a broad PIN prefix merely because it is convenient. Ask the delivery team to approve the covered locations. A method appearing at checkout is not proof that a courier will accept the shipment.
Keep intentionally unsupported destinations unsupported. Adding a worldwide fallback to silence an error can create orders the merchant cannot fulfil.
4. Test eligibility at the boundary
Free shipping can depend on a minimum amount, a qualifying coupon, either condition or both. Its settings also determine whether the minimum is checked before or after a coupon discount. Review the exact requirement in WooCommerce's free-shipping documentation.
Suppose your example policy offers free shipping when the eligible amount reaches ₹1,000. A ₹1,050 eligible amount reduced by a ₹100 coupon becomes ₹950 when the discount is counted first. Free shipping disappearing may therefore be correct. The next question is whether your policy offers a paid alternative below the threshold.
Test ₹999, ₹1,000 and ₹1,001 using controlled sample baskets, then repeat with the coupon. These are test amounts, not recommended shipping prices. Agree how the policy should work before asking a developer to implement it.
Check the actual variation and its shipping data
A virtual product does not trigger shipping calculations. A downloadable product can still require shipping unless it is also virtual. For variable products, inspect the selected variation. WooCommerce explains these distinctions in its virtual and downloadable product guide.
For a weight-based extension, examine the cart weight against the configured bands. The Weight Based Shipping developer documents that a cart outside every applicable rule can produce no rate. Its missing-rate troubleshooting guide also suggests a temporary core Flat Rate comparison to isolate method-specific rules.
Use that comparison on staging. If the temporary method appears, record the result and investigate the intended extension. Remove the diagnostic method afterward; it is not an approved production delivery policy.
5. Investigate checkout updates and conflicts
WooCommerce's core shipping troubleshooting guide covers stale rates, cache exclusions, zone diagnosis and differences between shortcode and block checkout. Cart, Checkout and My Account should be excluded from page caching according to that guidance.
On staging, change one relevant component at a time and rerun the failing test. Start with the shipping extension, checkout customisation and optimisation layer implicated by the evidence. Record plugin and theme versions. If an experiment fixes the symptom, reverse it and repeat once to check that the result is reproducible.
Ask your developer to distinguish a rate that was never returned from one returned but not displayed. A screenshot alone cannot settle that question. Share a redacted error and its timestamp with the responsible extension provider rather than installing several overlapping fixes.
6. Use a shipping acceptance sheet before release
The following worksheet is an editorial testing recommendation. Replace each expected outcome with the merchant's approved policy before running it.
| Test | Expected result | Record |
|---|---|---|
| Approved local PIN code | Agreed local delivery method and charge | Method, amount and checkout type |
| Supported address outside local coverage | Correct wider-area option | Matched area and price |
| Unsupported destination | No unintended delivery promise | Customer-facing message |
| Below, at and above threshold | Policy-consistent paid or free shipping | Eligible amount and coupon state |
| Heaviest permitted sample basket | Approved method, price or deliberate restriction | Weight, units and selected variation |
| Guest and returning customer | Same result for the same delivery details | Address actually used |
| Mobile and desktop | Delivery choice remains usable | Selection and final order summary |
Save the before-and-after evidence with the change. Release only the tested configuration or code, then repeat the key checks on the public store. Assign someone to review the first relevant orders for an incorrect shipping charge or an unintended destination.
Mistakes that hide the real problem
- Testing a different cart: a working lightweight product does not validate the failing heavy variation.
- Changing several settings together: you lose the evidence needed to identify the cause.
- Keeping a diagnostic rate live: a temporary flat rate can become an unintended customer offer.
- Calling every missing method a bug: an unsupported destination or ineligible coupon can be working as designed.
- Stopping at a visible option: verify its amount, selection and order summary too.
Frequently asked questions
Why are WooCommerce shipping methods not showing for only one customer?
Reproduce the exact cart and delivery details first. Compare them with a working test and investigate the single difference: location, product variation, quantity or discount.
Should I add a shipping method to every zone?
Only where the business intends to offer delivery. An intentionally excluded area should not gain a method merely to remove a warning.
Why does free shipping disappear after a coupon?
Check whether the discount changes the eligible amount below your configured minimum. Confirm the before-discount setting and the alternative you intend to offer.
Does a missing COD option mean shipping is broken?
Not by itself. If delivery choices are present, investigate COD eligibility separately. Record the chosen delivery method and the payment options displayed.
Do I need a new plugin to fix missing shipping options?
First identify the failed rule or component. A configuration correction may be sufficient. Consider new software only after documenting a requirement the current setup cannot meet.
Need help isolating the failing rule?
Prepare the failing sample cart, delivery region, checkout type and expected outcome. Innovative Code Tech's WordPress plugin and WooCommerce extension development services are relevant when the issue requires integration or custom-rule work.
Send your checkout issue for review with a redacted screenshot and the reproduction steps. A useful brief says exactly what should happen, what happens instead and which tests already passed.