Blog

Show Per-Store Stock for Pickup on Shopify

2026-06-05 · BopiSafe Team

Shoppers want to know which of your stores has an item before they commit to picking it up — and Shopify’s “online” inventory number won’t tell them, because it’s a rollup of every fulfillment location, not a per-store count. Showing real-time per-store stock is the foundation of multi-location pickup: it routes shoppers to a store that can actually fulfill, instead of guessing and finding an empty shelf.

This guide covers what Shopify shows natively, why the rollup misleads, and how to surface per-store stock that stays accurate.

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 when 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.

That is real per-location availability, and for a single store it is enough. The problem is the prominent number on the page — the “online” inventory — is not a per-store figure at all.

For a multi-location store, the shopper’s core question is “does my store have this?” Native Shopify answers it, but one link deep and unsorted. Pulling that answer forward, into the cart and ranked by stock, is what turns a pickup browser into a pickup buyer. The in-cart side of this is covered in the Shopify store picker guide.

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:

We unpack the rollup-versus-per-store distinction in detail in Shopify location inventory vs online inventory. The takeaway: for pickup, the rollup is a display total, never the number you make a fulfillment promise against.

Rollup vs. per-store stock at a glance

”Online” rollupPer-store stock
What it isSum of fulfillment-enabled locationsCount at one specific store
Good forShowing a product is buyable somewhereDeciding if a store can fulfill a pickup
Pickup riskHigh — hides empty stores behind a big numberLow — shows the real shelf
Where it should appearProduct page totalIn the store picker, per store

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 pickup. They are not the same thing.

A fulfillment-only warehouse should usually have “offers pickup” off, so customers can’t select it for collection, and you may keep “fulfills online orders” on so its stock backs shipping. A retail store offering pickup needs both on. Get these switches wrong and warehouses appear in the picker, or a pickup store’s stock silently inflates the online rollup and causes oversells on shipping orders.

Set pickup deliberately, per location, before you worry about display. The broader location setup is in our BOPIS setup guide and the cross-location mechanics in Shopify BOPIS multi-location inventory.

How fresh does per-store stock need to be?

For pickup, freshness is the whole point. The dangerous window is between the moment a shopper adds an item 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 real-time reads, not a daily snapshot. With Shopify POS as the source of truth, an in-store sale decrements the location’s inventory within seconds; with an external POS or ERP, freshness is only as good as the push interval, and any lag is a window where two shoppers can claim the same unit.

The reliable pattern is event-driven, not poll-driven: subscribe to Shopify’s inventory change notifications so the storefront always reads the latest per-store count, instead of caching a figure that quietly goes stale. The common breakage points are in multi-location inventory sync issues. Even with perfect sync, a residual gap remains between commit and arrival — which is why display alone is never enough, and the order step needs its own check.

Does showing accurate stock cost you sales?

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

In other words, accurate per-store stock does not lose the sale — it redirects it: to a store that can fulfill, to shipping, or to a different store visit. 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.

This is also why out-of-stock stores should stay visible-but-unselectable in the picker rather than disappearing — the shopper needs to see the real state and choose. We cover that in what happens when a pickup store is out of stock.

Exact counts, or just an in-stock signal?

Once you decide to show per-store stock, the next question is how much to reveal. There are three common treatments, and the right one depends on your catalog.

Whichever you choose, the rule is the same: the signal must be real-time, not a daily snapshot. A binary “in stock” that’s twelve hours stale is worse than no signal, because it reads as a promise. Match the granularity to the product, and never let the display outrun the data behind it.

Keeping stock accurate through to the order

Showing per-store stock is step one. Defending it through checkout is step two, and it has two layers:

  1. Safety-stock buffer. Reserve the last unit or two at each store for walk-ins, so an online pickup order can’t drain the shelf to zero ahead of an in-person customer.
  2. Checkout-time re-check. Re-read the chosen store’s stock at the moment the order is placed, and block it if the shelf can no longer cover the order. The shopper switches store or chooses shipping — both better than an unfulfillable promise.

Together these turn a stock display into a stock guarantee. Capacity caps add a third backstop for stores that can only stage so many pickups per day — see pickup location capacity management.

The mixed-cart split is the supporting mechanic that lets all of this coexist with shipping: when a cart mixes pickup and shippable items, the pickup group is where the per-store stock and picker appear, and each group checks out natively.

Where Shopify defaults stop and BopiSafe begins

Shopify’s native availability check shows per-location stock, but as a product-page link, unsorted, against a misleading rollup total, and bypassable by express checkouts. For a single store that is fine. For multiple stores it leaks oversells and wasted trips.

BopiSafe is complete multi-location BOPIS: shoppers see real-time per-store stock inside an in-cart store picker, sorted by priority and distance, reading Shopify’s own webhook-synced inventory as a single source of truth. Safety-stock buffers and a checkout-time re-check keep that stock honest through to the order, and it all runs on Shopify’s modern checkout enforcement layer — no theme rewrite, no slowdown.

Next steps

Written by the BopiSafe team — we build BOPIS infrastructure for Shopify merchants. Have a question this guide didn’t answer? Email support@bopisafe.com.

Frequently asked questions

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

Only partially. When pickup is enabled at more than one location, Shopify's product page shows one store's availability plus a "Check availability at other stores" link. It tells the shopper whether a location has the item, but the headline "online" inventory number on the page is a rollup, not a per-store count, and the per-location detail sits behind a link rather than in the cart where the shopper commits.

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 marketing-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.

How fresh is per-store stock at checkout?

It depends on how your point of sale and online store sync. With Shopify POS as the source of truth, in-store sales update inventory within seconds. With an external POS or ERP pushing updates, freshness depends on push frequency. The right approach subscribes to Shopify's inventory change notifications so the storefront always reads the latest per-store count instead of a stale snapshot.

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

For most stores, a simple "in stock at this store" or low-stock signal converts better than an exact number, and avoids encouraging stock-checking behavior or revealing competitive data. Exact counts make sense for high-consideration or single-unit items where the shopper genuinely needs to know there is one left. Either way, the signal must be real-time, not a daily snapshot.

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 pickup. Turn pickup off for fulfillment-only warehouses so they never appear as a pickup option, and keep their stock out of the pickup picker. Conflating the two switches is what makes warehouses show up where customers can't actually collect.

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

Without protection, the order still goes through and you have promised something the shelf no longer has. The fix is two-layered: a safety-stock buffer that reserves the last units for walk-ins, and a re-check at checkout that blocks an order when stock at the chosen store has dropped below what the order needs. This is the single most important guardrail for multi-location pickup.

Does showing per-store stock require an app?

Shopify's native "check availability at other stores" link shows per-location availability without an app, but it is a product-page link, unsorted, and not carried into the cart. Showing live per-store stock inside an in-cart store picker, with checkout-time enforcement so it survives express checkouts, is where a focused app or custom build comes in.

Will showing low stock per store cost me sales?

Generally the opposite. Research on store-level availability finds shoppers are far more likely to buy online when their nearest store shows an item unavailable, rather than abandoning. Accurate per-store stock routes the shopper to a store that can fulfill, or to shipping — both of which beat a wasted trip and a refund. Hiding the truth to force a pickup choice backfires at the counter.

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.