BopiSafeInstall on Shopify
Blog

Show Per-Store Stock for Pickup on Shopify

Updated 5 August 2026 · BopiSafe Team

Shoppers want to know which of your stores has an item before they commit to collecting it — and neither number Shopify puts in front of them answers that. The big “online” figure is a rollup of every fulfillment location. The “Pickup available” flag behind the availability link is a boolean that stays green for stock nobody can hand over today.

This guide covers what Shopify shows natively, why both defaults mislead, which number is the right one, and how to keep it honest.

What does Shopify show shoppers about per-store stock?

Out of the box, a Shopify product page shows one primary location’s availability and a “Check availability at other stores” link once pickup is enabled at more than one location. Click it and you get a list of locations with whether each has the item — documented in the Shopify Help Center.

For a single store, that is enough. For a shopper choosing between three shops, it has two problems: it is one click deep, and it is a yes/no. Nothing on that list says which shop actually has four of them.

Why the “online” inventory number misleads pickup shoppers

In Shopify, each location tracks its own stock for every variant. The “online” availability you see is the sum of every location you’ve flagged to fulfill online orders — a rollup, not a store-level number. The multi-location inventory docs describe how this works.

That distinction is the root of most multi-location pickup failures:

For pickup, the rollup is a display total. It is never the number you make a collection promise against.

Rollup vs. per-store stock at a glance

“Online” rollup Per-store stock
What it is Sum of fulfillment-enabled locations Count at one specific store
Good for Showing a product is buyable somewhere Deciding if a store can hand it over
Pickup risk High — hides empty stores behind a big number Low — shows the real shelf
Where it belongs Product page total Next to each store, in the picker

The other misleading number: “Pickup available”

This one catches people who think they have already solved the problem. Shopify’s storefront availability flag — the one the native pickup widget renders — is a boolean, and it is deliberately generous. It can read available when:

None of those mean a shopper can walk in this afternoon and leave with it. The flag answers “can this location be collected from, in principle” — a different question from the one the shopper is asking.

Which number is the right one

Shopify tracks several quantities per location. Three matter here:

Quantity What it means Use it for pickup?
On hand Everything physically at the location No — it still counts units promised to other orders
Committed Units already claimed by placed orders Not shown directly; it is the deduction
Available On hand − committed − reserved Yes. This is what a shopper can actually take

Available is the number to put next to a store name. It is the same figure your staff would arrive at if they walked the floor and set aside what is already spoken for. On-hand looks bigger and more reassuring, and it is exactly how you promise a unit that is already in a box with somebody else’s name on it.

Two switches every location has

A subtle Shopify detail trips up many setups: each location has two independent switches — whether it fulfills online orders, and whether it offers local pickup. They are not the same thing.

A fulfillment-only warehouse should usually have “offers pickup” off, so shoppers can’t select it for collection, while “fulfills online orders” stays on so its stock backs shipping. A retail store offering pickup needs both on. Get these wrong and warehouses appear as collection points, or a pickup store’s stock silently inflates the online rollup.

Set pickup deliberately, per location, before you worry about display.

How fresh does per-store stock need to be?

Freshness is the whole point of pickup. The dangerous window is between the moment a shopper decides and the moment they arrive, when a register sale, a restock, or another online order can change the shelf.

Accuracy is genuinely hard at scale: studies of grocery inventory have found up to 60% of inventory records can be inaccurate, which is why pickup needs a live read rather than a nightly export. With Shopify POS as the source of truth, an in-store sale decrements that location’s inventory within seconds. With an external POS or ERP pushing updates, your freshness is only as good as the push interval — and any lag is a window where two shoppers can claim the same unit.

On the storefront side, a short cache is normal and fine: a figure that is thirty seconds old is still a true answer to “does this shop have it”. A figure that is a day old is not, and it will read as a promise. The line to hold is that the display must never outrun the data behind it — if the live read fails, show nothing rather than a confident wrong “out of stock”, which quietly kills the sale.

A number, or just an in-stock badge?

Once you decide to surface per-store stock, the next question is how much to reveal. Three common treatments:

Out-of-stock stores should stay visible but unselectable, not hidden. A shopper who knows the item isn’t at their nearest shop can choose the next one, or choose shipping. A shop that silently disappears just makes them wonder whether they missed it. Where that list belongs, and how it should behave, is covered in the Shopify store picker guide.

Does showing accurate stock cost you sales?

Merchants worry that showing low or zero stock at a store loses the order. The data points the other way. Research on store-level availability finds shoppers are substantially more likely to buy online when their nearest store shows an item as unavailable, rather than abandoning entirely — as covered by RetailWire.

Accurate per-store stock does not lose the sale — it redirects it: to a store that can fulfill, or to shipping. What loses the sale is hiding the truth, letting the order through, and turning a confident buyer into a refund and a one-star review at the counter.

Where Shopify’s defaults stop, and what to add

Native local pickup handles the mechanics well: real pickup orders, “Ready for pickup” notifications, POS handoff, one collection store per order. What it doesn’t do is tell the shopper which store to choose, or let them say when they’re coming.

BopiSafe adds exactly those two things and nothing else. Every pickup store shows its available quantity — read live from your own Shopify inventory, never the storefront boolean and never on-hand — inside a picker on the product page and in the cart. The shopper picks a store and a time, and that store is locked into Shopify’s own checkout. Everything downstream stays native: real pickup orders, native notifications, POS handoff. It is free at any number of stores, up to 100 pickup orders a month.

Next steps

Written by the BopiSafe team — we build store-pickup tooling for Shopify merchants. Have a question this guide didn’t answer? Email miles.bopisafe@outlook.com.

Frequently asked questions

Does Shopify show per-store stock to customers by default?

Not as a number. When pickup is enabled at more than one location, the product page shows one store's availability plus a "Check availability at other stores" link. That link answers yes or no per location — it never says how many. The prominent "online" figure on the page is a rollup of every fulfillment location, not a store-level count.

Is the "online" inventory number the same as per-store stock?

No. The "online" number is the sum of every location you have flagged to fulfill online orders. It is a display total, not a pickup-decision number. For pickup, what matters is the count at the specific store the shopper wants to collect from. Treating the rollup as per-store truth is the most common cause of pickup oversells across multiple locations.

Why is "Pickup available" not the same as in stock?

Because it is a boolean, and it is generous. Shopify's storefront availability flag can read available for stock that would have to be transferred in first, for items the location does not track, and for a unit already committed to somebody else's order. It answers "can this location, in principle, be collected from" — not "is one on the shelf right now".

Which inventory number should a pickup store picker show?

The available quantity per location — on hand minus committed minus reserved. That is what a shopper can actually walk out with. On-hand is the wrong number because it still counts units promised to other orders, and the online rollup is the wrong number because it belongs to no single store.

Should I show exact stock counts or just in-stock vs out?

For pickup across multiple stores, show the number. The shopper is choosing between your shops, and "4 here, 1 there, none at the third" is the only thing that makes that choice a good one. A binary badge cannot rank stores. If you sell one-of-a-kind goods and would rather not publish shelf depth, a low-stock threshold is a reasonable middle ground — but a stale badge is the worst of the three, because it reads as a promise.

Can I show pickup stock only for my stores, not my warehouse?

Yes. Each location in Shopify has two independent switches — whether it fulfills online orders and whether it offers local pickup. Turn pickup off for fulfillment-only warehouses so they never appear as a collection option. Conflating the two switches is what makes warehouses show up where customers cannot actually collect.

What happens if per-store stock changes between cart and pickup?

The available quantity already excludes units committed to other orders, so the usual race — two shoppers claiming the same unit — is mostly handled by Shopify's own inventory. What remains is the walk-in who buys it off the shelf after the order is placed. No display can prevent that; it is a staging and reserve question, not a storefront one. Blocking checkout on a re-read is worse: it stops a real buyer at the last step over stock that may still be there.

Does showing per-store stock require an app?

Showing per-location availability does not — Shopify's "check availability at other stores" link does it for free, as a yes/no. Showing the actual quantity at each store, ranked and inside the buying flow rather than behind a link, is where an app comes in.

Pickup that shows the real number.

Every store's available quantity, a store picker and a pickup time — on Shopify's own checkout. Free up to 100 pickup orders a month, at any number of stores.

Questions this post didn't answer? Email miles.bopisafe@outlook.com — we reply within 24 hours.