When a customer taps Shop Pay on a cart with pickup-only items, Shop Pay bypasses the cart page — and every piece of pickup logic that lives there. The result is a generic error, missing delivery options, or a completed order routed to a warehouse instead of a store. It’s one of native pickup’s most damaging blind spots.
This guide explains exactly why it happens, what customers experience, and what you can actually do about it.
Why does Shop Pay skip pickup logic?
Shop Pay is designed for speed. Its entire value proposition is reducing the number of taps between “add to cart” and “order confirmed.” The mechanism it uses to achieve that speed is bypassing the cart page and jumping straight into the Shopify checkout flow, with payment credentials pre-filled from the customer’s saved profile.
The problem: most pickup logic lives on the cart page.
When a merchant adds a store picker, a mixed-cart warning, or a split-checkout flow to their store, those elements typically sit at the cart page level. They intercept the customer before they reach checkout. Shop Pay jumps over all of it.
Once the customer is at the checkout layer, Shopify applies its standard delivery-method validation: find a single delivery option that works for every line item in the cart. For a mixed cart — pickup-only items alongside shippable items — no single delivery option works. Checkout fails.
For a cart that contains only pickup-only items, the outcome is different but still problematic. Shopify’s checkout may show local pickup as a delivery option, but the store picker experience is stripped down or absent. The customer may not see all available locations, may not see stock status per location, and may not be prompted to select a specific store before confirming. The order can complete but land at the wrong location, or at a location the customer cannot easily reach.
This is not a Shop Pay bug. Shop Pay is doing exactly what it was built to do. The conflict is between the speed optimization that makes Shop Pay valuable and the pickup infrastructure that most stores bolt onto the cart page rather than embedding at the checkout layer. For more background on how this relates to the broader Shopify BOPIS architecture, see Why Shopify’s Default BOPIS Fails.
What does the customer actually experience?
There are three failure modes depending on the cart composition.
Failure mode 1: Mixed cart (pickup-only + shippable), customer taps Shop Pay.
Shop Pay opens. It calculates delivery options against the full cart. It cannot find a method that covers both item types. It surfaces a brief error — “There was a problem with your order” or “No delivery options available.” The customer sees no path forward. Shop Pay does not explain the conflict. The customer abandons, usually blaming the store rather than their cart contents.
Failure mode 2: Pickup-only cart, customer taps Shop Pay.
Shop Pay opens. It may show “Local Pickup” as an option but without a full store picker. If the merchant has multiple locations, the customer may see only one, or may see a default location that is not nearest to them. In some configurations, Shop Pay defaults to a shipping option and the order is placed as a ship-to-address order for an item that was never intended to ship.
Failure mode 3: Pickup-only cart, Shop Pay forces shipping.
This is the worst outcome. The order completes. The customer thinks everything went fine. The fulfillment team receives a ship order for an item that is tagged as pickup-only, has no shipping carrier rate configured, and cannot physically be shipped. The team has to cancel the order, manually contact the customer, and eat the damage. The customer’s experience: they placed an order, it was cancelled, no explanation made sense.
All three scenarios generate support tickets. The most common phrasing merchants see: “I tried to check out with Shop Pay and it didn’t work,” “I placed an order and it says it was shipped but I wanted to pick it up,” or “why does the quick pay button not work on your site.”
How widespread is the express checkout bypass problem?
Shop Pay is available on over 100 million shopper accounts (per Shopify’s own published figures). For repeat customers — those most likely to have Shop Pay saved — express checkout usage is disproportionately high. A typical mid-size Shopify store sees 30–50% of checkout attempts through express checkout buttons, with Shop Pay being the dominant one.
This means the express checkout bypass is not a niche edge case. For stores with meaningful pickup volume, a large share of their highest-intent customers — those who have shopped before and have payment details saved — are hitting this problem.
An independent analysis of Shopify merchant communities on Shopify’s Help Center forums and Reddit consistently shows pickup-related Shop Pay failures as one of the top three checkout issues for merchants who sell both online and in-store. The problem is common, not obscure.
Can you fix this without disabling Shop Pay?
Disabling Shop Pay is technically possible — it is a toggle in Shopify Admin under Settings → Payments. But it removes one-tap checkout for every customer on every order, not just the ones with pickup items. For a store with healthy online order volume, disabling Shop Pay meaningfully hurts conversion on your shipping orders to patch a problem that only affects your mixed-cart customers.
The better approach: fix the problem at the cart level before Shop Pay ever sees it.
If pickup-only items are grouped into a separate checkout flow before any checkout button is tapped, the cart that Shop Pay processes contains only shippable items. From Shop Pay’s perspective, it is handling a normal shipping-only order. There is no fulfillment conflict, no missing delivery options, no error.
For the pickup group, a separate native Shopify checkout handles the store selection and pickup confirmation. Payment credentials — including Shop Pay tokens — carry from the first checkout to the second, so the customer does not re-authenticate.
This is how BopiSafe handles the problem. The cart is split before checkout is initiated. Shop Pay works for the shipping group. The pickup group goes through its own native checkout with a full store picker. Neither group sees the other group’s items, and neither group triggers a delivery-method conflict.
For more detail on how Shopify handles shipping in the presence of pickup items, see Shopify Shipping Rate Not Showing: Pickup Fix.
Does this problem affect other express checkout buttons too?
Yes. Apple Pay, Google Pay, Amazon Pay, and any other express checkout button that Shopify surfaces all bypass the cart page in the same way Shop Pay does. They all apply the same checkout-layer delivery validation. A mixed cart that fails with Shop Pay will also fail with Apple Pay and Google Pay.
The only exception is “Buy it now” button behavior on individual product pages, which is a slightly different flow — but it shares the same underlying checkout validation.
| Express checkout button | Bypasses cart page? | Pickup logic affected? |
|---|---|---|
| Shop Pay | Yes | Yes |
| Apple Pay | Yes | Yes |
| Google Pay | Yes | Yes |
| Standard checkout button | No | No (cart-page logic runs first) |
| Buy it now (product page) | Yes | Yes |
If you have cart-page-only pickup logic, every button in the top row bypasses it. Only the standard checkout button flows through your cart-page layer first.
This is why Shopify’s developer documentation on express checkout emphasizes that cart-page modifications do not run for express checkout flows. The gap is documented, not an oversight — it is a deliberate architecture choice for speed, and managing the consequences is the merchant’s responsibility.
Both checkouts are real Shopify orders — not draft orders — so Shop Pay tokens, real order numbers, and standard fulfillment routing are preserved. Discount codes and gift cards apply to each leg independently, evaluated per leg, not against the combined cart. See Shopify Mixed Cart Split Pickup Shipping for the full split-checkout experience patterns.
How to detect the silent failure in your store
The most dangerous version of this problem is not the visible checkout error — it is the silent forced-shipping outcome, where Shop Pay completes the order against a pickup-only SKU and routes it to a warehouse the customer never expected. That failure does not surface as a Shopify error. It surfaces as a confused fulfillment team and a customer support ticket two days later.
If you are not actively looking for it, you will not see it in your reports. Here is what to monitor.
Orders for pickup-only SKUs with a shipping address attached. In Shopify Admin, filter recent orders by your known pickup-only SKUs and check whether any of them have a shipping address rather than a pickup location. Any non-zero count here is a silent failure — Shop Pay or another express checkout pushed the order through as a ship-to order. The fulfillment team will eventually flag these, but by then customer expectation is already set wrong.
Refunds clustered on pickup-only products. Pickup-only items returning to your refund queue more frequently than your shippable catalog often points back to Shop Pay forced-shipping outcomes. Pull the refund reason notes for the last 30 days. “Couldn’t ship,” “wrong fulfillment,” and “customer wanted pickup” themes confirm the pattern.
Support tickets phrased as “I picked the store option but my order says shipping.” This is the customer’s view of the silent failure. They believed they selected pickup. The order tells them otherwise. Most merchants dismiss these as customer confusion rather than recognizing them as the express-checkout bypass surfacing.
If any of these signals appear, the failure is happening — you just have not been counting it. Most merchants who run this audit for the first time discover the silent-failure rate is two to three times their visible checkout-error rate.
Why standard Shopify support won’t diagnose this
When a merchant opens a support ticket about Shop Pay failing on a pickup cart, the response from standard Shopify support is almost always the same: check your shipping zones, check your pickup settings, check your theme. Those checks rarely identify the real issue, because the issue is not a misconfiguration. It is the architectural interaction between express checkout and the single-delivery-method constraint.
Support agents are working from playbooks that assume the merchant’s setup is wrong. The playbook does not have a step for “you are correctly configured, but one order resolves to a single fulfillment method by design, and what you’re trying to do needs a different layer.” The result is a long support thread that ends with the merchant escalating, hitting a senior agent, and being told the workaround is to use an app.
This is not a criticism of Shopify support. The problem genuinely lives outside the documented configuration surface — it lives in how express checkout interacts with mixed-fulfillment carts. The fix is at the cart-layer logic level, which is where apps operate.
How to test if your store has this problem right now
You do not need analytics tools to check. Run this test in five minutes:
- Open your store in an incognito browser.
- Add one pickup-only item and one standard shippable item to the cart.
- On the cart page, tap the Shop Pay button (if visible) instead of the main checkout button.
- Note the result: does a delivery options error appear? Does Shop Pay force shipping for the pickup item?
If you see an error or incorrect routing, your store has the problem. Repeat the test with Apple Pay if that button is available on your theme. The results should be consistent.
Also test a cart that contains only pickup-only items via Shop Pay. This catches the “forced to shipping” failure mode described above.
Written by the BopiSafe team — we build BOPIS infrastructure for Shopify merchants.
Next steps
- See how BopiSafe handles mixed carts from end to end: Shopify Mixed Cart Split Pickup Shipping
- Understand the full shipping rate conflict: Shopify Shipping Rate Not Showing: Pickup Fix
- Read the deeper Shop Pay and BOPIS compatibility breakdown: Shopify BOPIS Shop Pay Compatibility
- Install BopiSafe to make Shop Pay work correctly for both pickup and shipping groups automatically