BopiSafe Install on Shopify
Blog

Shopify Pickup Orders Show as Shipping? Here's Why

2026-07-14 · BopiSafe Team

If your Shopify pickup orders show as “Shipping” in the admin, a pickup app is almost certainly routing them through Shopify’s shipping framework instead of native local pickup. The order looks like a shipment to Shopify, so the admin, POS, and “Ready for pickup” emails all read Shipping — and the real fulfillment type lives only inside the app’s own dashboard. The fix is an app that writes real native pickup orders.

This is one of the most confusing things a multi-location store hits after installing a pickup app. The shopper clearly chose pickup. The app’s dashboard says pickup. But Shopify’s own admin says Shipping, complete with a “create shipping label” button on an order nobody is shipping. Here’s what’s happening and how to make it stop.

Why do my pickup orders show as Shipping in the Shopify admin?

There are two layers to the answer: what Shopify does natively, and what some apps do on top of it.

Native Shopify handles this correctly. When local pickup is enabled on a location and a shopper picks that location at checkout, Shopify creates a real pickup order — it carries the pickup location, shows a “Ready for pickup” fulfillment action, and never asks you for a shipping label. That’s the behavior you want.

The problem appears when a third-party pickup app changes how the order is built. To add their own date pickers, time slots, or delivery options, some apps turn off Shopify’s native store pickup and route every pickup and local-delivery order through the shipping framework instead. To Shopify, the order is now a shipment.

So the admin labels it Shipping, the order shows a shipping address (often the store’s own address, auto-filled), and Shopify offers a shipping label for an item that’s being collected in person. The shopper chose pickup; the data says ship.

Is this a bug, or is it intentional?

For an app doing this, it’s usually a documented design choice — not a glitch you can fix in settings.

Based on publicly available help docs as of 2026, Bird Pickup Delivery Date is the clearest named example: its own documentation states it disables Shopify’s native store pickup and routes pickup and local-delivery orders through the shipping framework, telling merchants to ignore the admin’s shipping-label prompt. Its docs describe this as a deliberate design choice, and note that Shopify’s native views won’t correctly display the actual fulfillment method the shopper chose.

That’s an honest disclosure on the app’s part — but it puts the burden on you. The real fulfillment type (V1 in order notes, later in custom fields) lives in the app, while Shopify’s own records say something different. Other pickup apps that lean on the shipping framework produce the same symptom; Bird just documents it plainly.

The takeaway: if your pickup orders read Shipping and an app is involved, no Shopify setting will move them back. The behavior comes from how the app builds the order. To change it, you change the app — see our breakdown of real native orders vs draft orders and shipping workarounds.

Why does “pickup-as-shipping” actually hurt?

It’s tempting to file this under cosmetic — the order came through, the money cleared, who cares what the label says. But the wrong fulfillment type quietly breaks four things that a multi-location store relies on every day.

Native pickup notifications stop firing. Shopify’s “Ready for pickup” and “Picked up” emails and texts only send on real native pickup orders. If the order is a shipment, Shopify never knows it’s a pickup, so those messages never go out. You either notify customers by hand or depend on the app’s own emails — one more system to trust.

POS Pro loses the pickup queue. Your in-store staff work pickups from POS Pro’s native pickup workflow, which reads native pickup fulfillment. A shipment doesn’t appear there as a pickup task, so staff lose the built-in queue and track collections in a spreadsheet or the app dashboard.

Reporting and fulfillment data go wrong. Every report that splits orders by fulfillment type now miscounts. Pickup looks like shipping. Your pickup order share, carrier costs, and per-location pickup volume are all distorted because the underlying records lie about what the order is.

You’re maintaining two sources of truth. The whole point of running on Shopify is that the admin is the system of record. When the true fulfillment type lives in an app dashboard and Shopify says something else, you’ve split your source of truth in two — and reconciling them is manual work forever.

The fix: real native pickup orders

The durable fix is an app that writes real native pickup orders — orders Shopify itself recognizes as pickup, carrying the chosen store, with no shipping label in sight.

When the order is a genuine native pickup order, everything downstream just works, because it’s Shopify’s own machinery doing the work:

This is the difference between an app that composes with Shopify-native and one that replaces it. A pickup app like BopiSafe should add the shopper-facing layer — real-time per-store stock, an in-cart store picker, time slots — while letting Shopify’s own fulfillment, notifications, and POS run underneath, untouched. When it does that, you get one source of truth instead of two.

How to diagnose your own store in 5 minutes

You don’t need to read anyone’s documentation to find out which kind of app you have. Open your admin and check a recent pickup order against this list.

CheckReal native pickup orderRouted through shipping
Fulfillment method shownPickup, with the store location named”Shipping”
Shipping address on the orderNone (it’s a pickup)A shipping address, often your store’s own address auto-filled
Admin action offered”Mark as ready for pickup""Create shipping label” / “Buy label"
"Ready for pickup” emailSends automatically from ShopifyDoesn’t send (app sends its own, or none)
POS Pro pickup queueOrder appears as a pickup taskOrder doesn’t appear as a pickup task
Where the true type livesIn Shopify’s order recordIn the app’s separate dashboard

If you’re landing in the right-hand column on three or more rows, your pickup orders are being routed through the shipping framework. That’s the symptom this whole post is about, and it won’t change until the app does.

One more tell: place a test pickup order yourself from a private browser session, then watch your inbox. If no native “Ready for pickup” email arrives when you mark the order ready, Shopify doesn’t think it’s a pickup — regardless of what the app dashboard shows. For the deeper version of this, see how a proper checkout validation layer keeps the order’s fulfillment type honest end to end.

What “good” looks like for a multi-location store

Step back from the bug for a second, because the fix is also the foundation of a real BOPIS experience. A multi-location store wants the whole loop to hold: shoppers see real-time per-store stock, choose where to collect from an in-cart store picker, and check out as a real order that Shopify recognizes as pickup.

That last step is exactly the one that breaks when pickup is faked as shipping. Get it right and the rest of your stack — notifications, POS, reporting — falls into place for free, because you never left Shopify’s native rails. Get it wrong and you spend your weeks reconciling two systems that disagree.

If you’re setting this up from scratch rather than fixing an existing app, start with our full BOPIS setup guide — it covers locations, pickup-only products, and capacity before you ever touch a third-party app.

Industry research backs the priority. Per NewStore’s inventory-visibility research, 71% of consumers expect to view in-store inventory online, and a large share won’t make the trip without it — which means the shopper-facing layer (real per-store stock + a store picker) is where pickup apps earn their keep. None of that value is worth poisoning your order data to get. You can have the shopper-facing polish and correct native pickup orders; they aren’t a trade-off.

A quick worked example

Consider a 3-location apparel store doing 600 pickup orders a month. If every one is routed as a shipment, that’s 600 orders a month where the native “Ready for pickup” email never fires — so staff manually message 600 customers, or rely on app emails the customer may not recognize. It’s 600 orders missing from the POS pickup queue, and 600 rows of fulfillment data that count pickup as shipping.

Now flip the app to one that writes real native pickup orders. Those 600 emails send themselves, the 600 orders appear in POS Pro’s pickup queue, and the reporting is accurate without anyone touching a spreadsheet. The shopper experience is identical; the operational tax drops to zero. That’s the entire case for caring about a label that “looks cosmetic.”

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

Next steps

Seeing pickup orders show as Shipping and not sure which app is doing it? Email miles.bopisafe@outlook.com — we’ll help you read the order record and figure out the cause.

Frequently asked questions

Why do my Shopify pickup orders show as Shipping in the admin?

Almost always because a pickup app is routing pickup orders through Shopify's shipping framework instead of native local pickup. Some apps disable Shopify's own store pickup and send every pickup order as a shipment, so the admin, POS, and notifications all read Shipping. The true fulfillment type then lives only inside that app's own dashboard, not in Shopify.

Is a pickup order showing as Shipping a bug I can fix in settings?

Usually not. If a third-party pickup app is involved, it's a design choice, not a setting you toggle. The app deliberately uses the shipping framework, so no admin setting will move the order back to native pickup. The fix is the app — switch to one that writes real native pickup orders.

Will Shopify's "Ready for pickup" email still send if the order shows as Shipping?

No. Shopify's native "Ready for pickup" and "Picked up" notifications only fire on real native pickup orders. If the order is structured as a shipment, Shopify has no idea it's a pickup, so those emails never send and you have to notify the customer manually or rely on the app's own emails.

Does the pickup-as-shipping problem affect POS Pro?

Yes. POS Pro's pickup workflow keys off native pickup fulfillment. When an order is routed as a shipment, POS sees a shipping order, not a pickup task, so your in-store staff lose the native pickup queue and have to track collections in a separate tool.

How do I tell if my pickup orders are real native pickup orders?

Open a recent pickup order in your Shopify admin. A real native pickup order shows the pickup location and a "Ready for pickup" fulfillment action, and never prompts you to buy a shipping label. If it shows a shipping address, asks you to create a label, or reads "Shipping" as the method, it's being routed through the shipping framework.

Do I need Shopify Plus to get real native pickup orders?

No. Native local pickup works on every Shopify plan. The issue isn't your plan — it's whether the app you use writes real native pickup orders or routes them as shipments. An app that uses native pickup gives you correct admin, POS, and notifications on Basic, Shopify, and Advanced too.

Can I just ignore the "create shipping label" button on these orders?

You can, but you shouldn't have to — and ignoring it doesn't fix the downstream damage. The order still reads Shipping in reports, native pickup emails still don't fire, and POS still doesn't see a pickup task. Ignoring the button treats the symptom; it leaves the wrong fulfillment type in your data.

Will switching pickup apps mess up my existing orders?

Existing orders keep whatever structure they were created with — switching apps doesn't rewrite history. New orders placed after the switch get the correct native pickup structure. Run both old and new in parallel for a few days, confirm new pickup orders show the pickup location and native fulfillment, then fully cut over.

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.