Blog

Shopify Shipping Rate Not Showing: Pickup Fix

2026-05-27 · BopiSafe Team

Shopify shipping rates disappear at checkout when a cart contains a pickup-only item alongside shippable items — even when your shipping zones are configured perfectly. The cause is a fulfillment-type conflict, not a shipping setup problem: Shopify looks for a single delivery method that satisfies every line item, can’t find one, and shows nothing.

This guide is for store owners and ops managers, not developers. No API talk — just the causes, the checklist, and the trade-offs.

Why do shipping rates disappear when pickup items are in the cart?

Shopify’s checkout calculates delivery options by running a simple check: can the selected delivery method fulfill every single line item in the cart? If the answer is no for even one item, the checkout shows no delivery options at all.

A pickup-only item has no shipping rate. It was never meant to be shipped. When it shares a cart with an item that does have shipping rates, no single delivery method handles both. The result is the verbatim error shoppers report: a “Shipping not available” box reading “Your order cannot be shipped to the selected address. Review your address to ensure it’s correct and try again, or select a different address,” and higher up, “This product is not available for delivery to your location.” None of it names the pickup item that actually caused it, so the customer assumes the store is broken.

This feels unfair because the shippable items in the cart have perfectly valid shipping rates. But by design, checkout resolves one delivery decision for the whole order — there’s no “here are rates for the items that can ship” while leaving the pickup item aside. The whole checkout stalls.

The frustrating part for troubleshooting: this error looks identical to a genuine shipping zone miss — when a customer is ordering from a country or region you don’t ship to. Both scenarios produce the same “no delivery options available” message. Merchants waste hours reconfiguring shipping zones before realizing the pickup item in the cart is the actual culprit.

For a deeper explanation of why Shopify’s checkout works this way, see Why Shopify’s Default BOPIS Fails.

Troubleshooting checklist: finding the real cause

Before assuming the shipping setup is the problem, work through this list in order.

1. Identify which products are pickup-only on your store.

In Shopify Admin, go to your products and look for items configured to fulfill from a specific location with no standard shipping profile, or items explicitly marked as available only for local pickup. These are your pickup-only products. Make a list of them.

2. Reproduce the error with a test cart.

Add one pickup-only product and one standard shippable product to a test cart. If shipping rates disappear at checkout, you have confirmed a fulfillment-type conflict. If rates appear normally, the issue is in your shipping zones, not your pickup setup.

3. Check whether the error is location-specific.

If the missing rates affect all customers regardless of what they have in their cart, it is a shipping zone problem. Use Shopify Admin to check that you have an active shipping zone for the customer’s region. If the error only appears for customers with specific products, it is a fulfillment-type conflict.

4. Review your shipping profiles.

Every shippable product needs to be assigned to a shipping profile with at least one active zone and rate. Navigate to Settings → Shipping and Delivery in Shopify Admin. Confirm that each shippable product is in a profile with rates. Products in no profile, or in a profile with no active rates, produce the same “no rates available” error even without a pickup conflict. Shopify’s Help Center documentation on shipping rates walks through this in detail.

5. Check your theme’s cart drawer.

Many Shopify themes show an estimated shipping rate inside the cart drawer before the customer reaches checkout. These estimates are often calculated only against shippable items — they do not account for pickup-only items in the cart. When the customer actually checks out, the real validation runs and shows nothing. The gap between the cart drawer estimate and the checkout result is a common source of confusion and support tickets. Checkout the Shopify Help Center on local pickup settings for how pickup products interact with standard checkout.

6. Test express checkout buttons separately.

Add a mixed cart and click Shop Pay or Apple Pay instead of the main checkout button. Express checkout buttons bypass the cart page entirely and apply full delivery-method validation on their own. If you have cart-page logic that warns about mixed carts, it has no effect here. For more on this specific problem, see Shopify Pickup and Shop Pay: What Merchants Need to Know.

Does your fulfillment service setup affect shipping rates?

Yes, and this is a commonly overlooked cause.

If you have a third-party fulfillment service connected to Shopify, some SKUs may be flagged as fulfilled by that service rather than by your standard shipping setup. When a product is assigned to a fulfillment service, Shopify may not apply your standard carrier rates — it defers to the service. If the service does not provide rates for a given customer address, the checkout shows nothing.

This is different from the pickup conflict described above, but the symptom is the same. To diagnose: filter your products by fulfillment service in Shopify Admin and check whether the products causing missing rates are assigned to an external service.

The cleanest audit is to temporarily move a suspect product back to “Shopify” as the fulfillment provider and test checkout again. If rates appear, the fulfillment service assignment was the cause.

A worked diagnosis: tracing one customer’s failed checkout

Here is what a real diagnosis looks like when you stop guessing and trace one specific failure end to end.

A customer emails on Monday saying they got “no delivery options available” trying to check out on Saturday. You pull their cart from the abandoned-checkouts view. The cart contained two items: a barbecue grill (set up as pickup-only because it ships only via freight you don’t offer online) and a bag of charcoal (shippable). The customer was in your normal delivery zone and had a saved Shop Pay profile.

You reproduce: incognito browser, add the same two SKUs, go to checkout, no rates. You add only the charcoal — rates appear. You add only the grill — pickup shows. The conflict is confirmed at the SKU pair, not the address.

Now the express-checkout test. You re-add both items and tap Shop Pay on the cart page. Shop Pay opens, then immediately surfaces a generic error and dumps the customer back. No rates, no explanation, no path forward. The cart-page warning you considered adding would not have fired at all — Shop Pay never loaded that page. This is the silent express-checkout bypass merchants miss when they fix this at the cart layer only.

The fix at this point is no longer about shipping zones, profiles, or theme code. It is about preventing the conflict from reaching any checkout — express or standard. That is what proper split-cart handling does.

What does the cart drawer problem look like in practice?

Here is a concrete scenario that merchants report frequently.

A customer adds a large outdoor planter (pickup-only) and a bag of potting soil (shippable) to their cart. The cart drawer shows an estimated shipping cost of $8.99 for the soil. The customer thinks their total is clear and clicks Continue.

At checkout, Shopify runs the real validation. The planter has no shipping rate. The checkout shows “No shipping methods available.” The customer sees a blank shipping section, has no idea what changed from what the cart drawer told them, and abandons — likely attributing it to a website glitch.

From your analytics, this shows up as a checkout abandonment on a product combination that actually has valid inventory and valid shipping rates for one of the items. It does not flag as a fulfillment conflict — it just looks like drop-off.

Merchants who have not mapped this pattern consistently underestimate how often the cart drawer’s optimistic estimate creates a worse abandonment than if the cart drawer showed nothing at all.

The three approaches to fix missing shipping rates on mixed carts

Once you’ve confirmed the cause is a fulfillment-type conflict rather than a shipping zone or profile misconfiguration, you have three options. These are the same three options described in our broader Mixed Cart Checkout Error guide, but here is how they apply specifically to the shipping-rate symptom.

Option A: Remove pickup-only items from the “available for shipping” pathway.

Make sure pickup-only products have zero shipping profile assignment, no carrier rates, and no fallback rates. This sounds counterintuitive — but a product with a misconfigured “fallback” shipping rate may sometimes allow checkout with wrong routing. Cleaning up the product configuration ensures the conflict is explicit and visible rather than intermittent and confusing.

This does not fix the missing shipping rates for other items in the cart. It just makes the conflict deterministic. Customers still see “no options available” — but at least the behavior is consistent, which makes the next step more reliable.

Option B: Block the mixed cart at the cart page with a clear message.

Add a cart-page warning that detects pickup-only items and disables checkout until the customer removes them or checks them out separately. This is better than doing nothing, but it pushes the problem back onto the customer. At 15–25% abandonment for customers who hit this wall, you are accepting a revenue cost.

This option also fails for express checkout users, who bypass the cart page entirely.

Option C: Split the cart before checkout.

The only approach that actually recovers the order. Detect the fulfillment conflict on the cart page, group items into two sections, and walk the customer through two native Shopify checkouts — one for pickup, one for shipping. Each checkout sees only the items appropriate for its delivery mode, so each has valid shipping rates (or valid pickup options).

This is what BopiSafe does. The pickup group gets its own checkout with a store picker. The shipping group gets standard checkout with your full set of carrier rates. Neither checkout ever sees the conflicting item type, so missing-rate errors disappear entirely.

How does this interact with Shopify’s multi-location setup?

Multi-location stores have an additional variable: Shopify assigns inventory to locations, and each location may or may not be configured for local pickup. If a product is in stock at a location that is not set up for pickup, Shopify may not show it as available for pickup even if the product is technically pickup-only.

The symptoms overlap with the missing-rate problem: customers see fewer delivery options than expected, or no options at all. The diagnostic is to check which locations each product is stocked at, and whether those locations have local pickup enabled in Shopify Admin under Settings → Locations.

For merchants running three or more locations, this configuration surface grows quickly and misconfigurations are common. Our dedicated guide on Shopify BOPIS and Multi-Location Inventory covers the location setup in more detail.

What accurate missing-rate diagnosis looks like

To distinguish between the main causes of missing shipping rates, use this decision framework before spending time on configuration changes:

SymptomMost likely cause
All customers in one region see no ratesShipping zone not configured for that region
Rates missing only when specific product is in cartFulfillment-type conflict (pickup-only item)
Cart drawer shows rate, checkout shows nothingPickup-only item present; cart drawer using simplified estimate
Express checkout fails, main checkout worksCart-page warning bypassed by express checkout button
Rates intermittently disappear across all customersCarrier service outage or rate calculation timeout

The most common merchant mistake is jumping straight to shipping zone fixes without reproducing the error with a test cart. A 10-minute test cart with one pickup-only item saves hours of incorrect configuration changes.

Written by the BopiSafe team — we build BOPIS infrastructure for Shopify merchants.

Next steps

Frequently asked questions

Why does Shopify say "Shipping not available" or "Your order cannot be shipped to the selected address"?

When a pickup-only item is in the cart, no shipping method can cover the whole order, so the shipping step returns "Shipping not available" — often followed by "Your order cannot be shipped to the selected address. Review your address to ensure it's correct and try again." The wording blames the address, but the address is usually fine; the trigger is the pickup-only line. Changing the address won't help — splitting the cart by fulfillment type will.

Why are no shipping rates showing at Shopify checkout?

The most common cause when a store offers both pickup and shipping is a mixed-cart conflict. When a cart contains a pickup-only item, Shopify looks for a delivery method that works for every line. If it cannot find one that satisfies both the pickup-only item and the shippable items, it shows no shipping rates at all — even if your shipping zones are configured correctly. The problem is the fulfillment type mismatch, not the shipping setup.

Why do shipping rates disappear only for some customers?

Shipping rates disappear when the cart contains a pickup-only item, which only happens for some customers depending on what they add to their cart. A customer who only adds shippable items sees rates normally. A customer who adds a pickup-only item alongside a shippable item triggers the conflict. This is why the problem feels intermittent and is hard to reproduce without knowing which specific products cause it.

Can a missing shipping rate be caused by local pickup settings?

Yes. If a product is configured with "Local pickup only" in Shopify's fulfillment settings, it has no shipping rate and cannot be shipped. When this product is in a cart alongside a shippable item, the checkout layer cannot find a single delivery option that covers both, so it shows nothing. The fix is not to change the product's pickup setting — it is to handle the cart-level conflict before checkout.

Does the Shopify theme cart drawer cause shipping rate issues?

Indirectly. The cart drawer often shows an estimated shipping rate that is calculated only against shippable items in the cart. When the customer proceeds to checkout with a mixed cart, the real checkout layer applies a stricter check and shows different (or no) rates. The mismatch between what the cart drawer shows and what checkout shows creates confusion and is a common source of "your website is broken" support tickets.

Why do express checkout buttons show different shipping options?

Express checkout buttons like Shop Pay bypass the cart page. They jump directly into the checkout flow and apply the full delivery-method validation at that point. This means any cart-page shipping estimates the customer saw before clicking are irrelevant — the express checkout recalculates from scratch. For mixed carts, this almost always results in a worse experience — either no rates, wrong rates, or a forced-shipping flow that ignores pickup-only status.

How do I find which products are causing the missing shipping rate?

In Shopify Admin, go to each product suspected of being pickup-only and check its fulfillment settings. Products set to ship from a specific location only, or marked as "available for pickup" without shipping rates, will not show rates at checkout when mixed with shippable items. The quickest audit is to search your products for any that have no shipping profile assigned or are tied to a pickup-only fulfillment service.

Is there a permanent fix for missing shipping rates on mixed carts?

The only clean fix is to handle the mixed-cart conflict at the cart level before checkout. This means grouping pickup-only and shippable items into separate checkout flows rather than trying to find a delivery method that covers both in one checkout. Apps like BopiSafe do this automatically. Shipping zone fixes, carrier service changes, and theme tweaks cannot solve a conflict that is baked into Shopify's single-delivery-method checkout model.

Will fixing shipping zones stop the missing rate error?

Only if the cause is actually a shipping zone miss — meaning you have customers in regions you don't ship to. If the cause is a pickup-only item in the cart, no shipping zone fix will help. The easiest way to tell them apart — if the error affects all customers in a specific region, it is a zone issue. If the error affects customers across different regions who added a specific product, it is a fulfillment-type conflict.

Want pickup that doesn't break? See how BopiSafe works →

New to BopiSafe? Use code BOPISAFE30 at plan selection for a 30-day free trial instead of 14.