help1
shipping not availableshopifyshippingcheckout

'Shipping not available' at Shopify checkout: chasing the real cause

One 'shipping not available' error, nine unrelated Shopify causes. Where we look, in the order the fix usually shows up.

help1 Team
'Shipping not available' at Shopify checkout: chasing the real cause

The store looks fine. Products live, zones green in Settings, weights filled in. Then a customer types their address at checkout and gets "There are no shipping methods available for your cart or address." You test the same address yourself and it works. A friend across town tries and it works. Meanwhile a $3,000 abandoned cart quietly lands in the report the next morning. That is the fingerprint. Below is the order we chase it in.

The single error covers nine unrelated causes

Shopify uses one string for a class of failures that overlap only in outcome. Over the audits and Shopify Community threads we have sat with in the last year, we have counted nine distinct root causes: rate-tier gaps, missing physical-product flags, shipping-profile misassignment, inventory-location mismatch, third-party app interference, one-page checkout enforcement, checkout-session caching, the July 2025 fulfillable-inventory migration, and carrier-calculated rate registration failures. The advice you find on Reddit or the Shopify Community usually solves whichever of the nine the person answering hit. It is correct advice, and often the wrong advice for you.

That is why the "shipping not available" error is so hard to diagnose in isolation. Six merchants can each fix it a different way in the same thread and be right about their own store. The error message does not tell you which of the nine you have.

What we check first, and why it rarely lands

Everyone says check your zones. So did we, the first ten times we saw this. In practice the zones are configured correctly in most of the "shipping not available" cases we walk into; it is the standard place to start and the standard reason the report keeps growing after the "fix". If you have not opened Settings > Shipping and delivery and confirmed the customer's country and region are in a zone with at least one active rate, do that and rule it out. Then keep going.

The reason zones rarely resolve it is that Shopify's error string collapses seven "the rate did not return" cases into one. There is no distinction in the message between "no rate for this country", "your rate excluded this weight range", and "your inventory location has no rate assigned". After you have ruled out zones, the fix almost always shows up on the product page or the profile-to-location mapping, not on the shipping page.

The rate-tier gap almost nobody catches

The first non-obvious cause we look for is a gap between two price-based or weight-based rate tiers. If Free Shipping is configured for orders over $75 and your Standard flat rate caps at $50, an order that lands between $50.01 and $74.99 gets no rate. Shopify does not warn you the tiers do not stitch together; it just returns no rates and shows "shipping not available" to the customer.

This one is embarrassing to admit how often we find it. On an audit last April for a UK jewellery merchant, the Standard tier had a $60 upper bound because they had built it back when their AOV was $40, and the Free Shipping threshold moved to $75 during a Q4 promo and never moved back. Every order between $60 and $75 for eight months returned zero rates. The fix took about a minute. The trail of abandoned carts was heartbreaking.

To check: open each shipping profile and lay the rates out on paper. If any range does not connect to the next (the upper bound of rate A greater than or equal to the lower bound of rate B), that gap is why some customers see the error and others do not.

Products marked digital, weight left at zero

Shopify excludes products from shipping calculations if either the "This is a physical product" flag is off or the weight is zero. If any product in a customer's cart is missing either, no rate calculates for that cart, and the checkout shows "shipping not available" even when the same product ships fine as a single-item order.

This shows up most often when products come in through a CSV import or a fulfillment-app sync. The template that Printify, Printful, or a POD provider uses sometimes leaves those fields blank or defaults them to the digital state. The merchant sees the products in the admin, sees inventory, and does not think to open each one and verify the checkbox at the bottom of the Shipping section.

To check at scale: export the product catalog from Products > Export, and sort the CSV on the Requires Shipping and Weight columns. Any row with FALSE or a zero weight goes on the list. A merchant on the Shopify Community named ParkLane walked into this in 2024 and self-diagnosed by exactly that method after every other suggested fix had failed.

The July 2025 change nobody told merchants about

This is the one that surprised us most, and the one behind a growing share of "shipping not available" tickets in the last few months. In July 2025 Shopify started rolling out a change that removed the old "Sell from all locations to all shipping zones" fulfillable-inventory setting. The final cutover was September 30, 2025. Under the new default, a product's fulfillment location has to have a shipping rate defined for the customer's destination zone. If it does not, the product is invisible at checkout and the customer sees either "shipping not available" or, if the item is out at every other location, "sold out".

Shopify posted the change to the developer changelog on shopify.dev. It did not surface as an in-admin banner or a merchant email. Most solo merchants we work with had never heard of it before we walked them through it. The failure pattern is specific: if you use Printify, Printful, a 3PL, or any multi-location setup where an app created a fulfillment location, and shipping started intermittently breaking after last September, this is almost certainly what you are looking at.

To check: open every shipping profile in Settings > Shipping and delivery and confirm every location that might fulfill an order is listed under "Ships from" with valid rates for every destination you sell to. For POD apps, ask their support directly whether their location needs shipping rates in your Shopify profile or whether they handle rates through their own integration. The answer varies by app and by app version.

Carrier-calculated rates: connected does not mean working

Carrier-calculated shipping (UPS, FedEx, or third-party carrier apps like Shiprocket) has its own failure mode. An app can pass the admin's "connected" check, sync orders successfully, and still be returning no rates at checkout. The two capabilities are separate under the hood. Order sync only proves the app has API access to orders; live checkout rates require the app to have registered a carrier service object in Shopify's checkout rate pipeline.

The clearest write-up we have seen came from a developer named InTheManVan on r/shopify in May 2026: if realTimeShipping = true and availableCarrierServices = [], the carrier app never registered a service on the shop, even though the connection status is green. We have watched this happen twice in the last six months, both times after Shopify prompted an OAuth reconnection for the merchant's FedEx account. The reconnection in the admin looked fine. Checkout returned nothing for anyone.

If a carrier app is in the picture and shipping problems are intermittent or have just started, ask the carrier app's support team exactly one question: "Has your app created a carrier service on my Shopify store?" The generic "is the connection working?" query will not surface the answer. The carrier-service registration is what matters, and it is invisible from the merchant's admin.

Where the trail goes cold: one-page checkout and Markets

A smaller but real category of failures started when merchants switched to one-page checkout. The pattern mirrors two 2023 Shopify Community threads that never got resolved: an unchanged shipping configuration started blocking every ZIP code the moment one-page checkout went live. Shopify Support asked for screenshots rather than acknowledging the checkout migration as the trigger, and the threads stalled. If a "shipping not available" problem lines up cleanly with a one-page checkout rollout on your store, that timing alone is worth escalating to Shopify Support with the specific migration date.

The other trail that has gone cold on us is Shopify Markets. A community poster in May 2026 mentioned that Markets can sometimes get enabled in the background and affect which rates render per region. We do not know whether that is exactly right, and no Shopify Staff reply we have found confirms the mechanism. But we have seen the pattern (international rates disappearing while domestic rates keep working) on two stores that had never intentionally touched Markets. If the failure is region-specific, opening Settings > Markets and confirming what is active there is worth ten minutes.

The catch-all rate we now ship on every audit

We add one rate to every store we audit while we work through the other checks: a flat-fee "Shipping - contact for quote" at $0.00 with no conditions. It is a floor that keeps checkout completing for the customer while the merchant works with us on the real fix. Every order that comes in through it gets a manual invoice for the actual shipping cost, and the rate comes off once we confirm the underlying cause is resolved.

We used to leave this off because it felt like a hack. We were wrong about that for a good year and lost real revenue for real merchants by being philosophically pure. If you take one thing from this post, take this: the moment you see "shipping not available" fire on your store, add the catch-all rate. Diagnose in parallel while you look for the root cause. If you want a second set of eyes on the diagnosis while you do that, the first fifteen minutes of help1's expert chat is free and that is usually enough to narrow the nine causes down to yours.

The order we run this in

The order matters. This is the sequence we now run on new-store audits and after any big Shopify platform change:

  1. Confirm the customer's zone has an active rate. Rule out the obvious.
  2. Lay the rate tiers out on paper. Any gap between two price or weight ranges is a candidate.
  3. Export the product catalog. Any row without Requires Shipping = TRUE and a non-zero weight goes on the list.
  4. Open every shipping profile. Every fulfillment location that might handle an order must be under "Ships from" with valid rates for every destination.
  5. If a POD or 3PL app is installed, ask their support directly whether their app registers its own shipping rates or expects them in the Shopify profile.
  6. If carrier-calculated rates are enabled, ask the carrier app: "Has your app created a carrier service on my Shopify store?"
  7. Ship the catch-all rate while you work through the rest.

We cross-check against our walkthrough on Shopify checkout shipping-rate fixes when the audit turns up something not on this list. There is more than one path through it.

The question worth answering before you close the ticket

If Shopify wrote one error message for nine unrelated causes, and the standard advice fixes only one of them, what does your abandoned checkout report look like for the last thirty days if you filter for orders that reached the shipping-address step and stalled? Whatever that number is on your store is the size of the problem you can put a floor under this afternoon.

Still stuck? Talk to an expert.

Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.