Blog

What Is BOPIS on Shopify? Multi-Location Guide

2026-06-01 · Updated 2026-06-08 · BopiSafe Team

BOPIS on Shopify means buy-online-pickup-in-store: a shopper orders online, picks a physical store at checkout, and collects in person. Running it across one location is straightforward. Running it across several is harder, because stock differs by store and the quantity a shopper sees online is a combined rollup, not a per-store count.

This guide defines BOPIS, explains why multiple locations break the simple version, and walks the full path to doing it right.

What does BOPIS mean, and why do merchants run it?

BOPIS sits between pure e-commerce and pure retail. The shopper gets same-day collection without paying for shipping, and you get a higher-margin order with no carrier cost, plus a person walking into your store.

That foot traffic is the quiet win. Capital One Shopping research reports that 85% of shoppers buy something extra when they come in to collect, and 77% use BOPIS specifically so they can see the item before committing.

The category is large and growing. The same research puts US BOPIS sales at roughly $154.3 billion in 2025, about 10.5% of all e-commerce, with a projected $177.9 billion in 2026. In 2024, 97.2 million Americans, about 34.2% of the population, used it at least once.

So the demand is settled. The interesting question for a Shopify merchant with more than one store is not whether to offer pickup, but how to offer it without sending shoppers to the wrong shelf.

Why is multi-location BOPIS harder than single-store pickup?

With one location, pickup is simple: the shopper picks your one store, and the stock they see is the stock that store has. There is nothing to get wrong.

Add a second store and the model quietly breaks. The number on the product page is the “online” inventory, and per Shopify’s multi-location inventory docs that number is a rollup. It sums every location you have set to fulfill online orders. It is not a per-store count.

So a jacket can read “in stock” online while it physically lives at your downtown store and the suburban store a shopper wants to collect from has none. The shopper has no way to tell. They place a pickup order against stock that is somewhere else entirely.

That is the core multi-location trap: the rollup hides the per-store reality, and pickup is an inherently per-store promise. For the full mechanics of why the online number misleads, see why online inventory is not per-store stock.

The “Check availability at other stores” gap

Shopify’s native storefront does try to help. With more than one location, its pickup documentation shows one store on the product page plus a “Check availability at other stores” link.

The link helps, but it is a detour. The shopper has to click away, read a list, mentally match it against their cart, and come back. It tells them availability for the item they are looking at, not for everything in their cart at once. We unpack that flow in the check-availability-at-other-stores walkthrough.

Pickup needs the whole order at one store

There is a second rule that bites at multiple locations. Shopify’s pickup logic requires the entire order to be in stock at a single location, or it falls back to moving stock between stores through transfers.

A two-item cart where store A has one item and store B has the other cannot simply be collected at either. Either the shopper splits their thinking, or a transfer happens with its own lead time. We cover that trade-off in the entire-order-at-one-location guide.

How big is the cost of getting per-store stock wrong?

The failure mode is concrete: the shopper drives to the store, and the item is not there. That is the single fastest way to lose a customer’s trust in pickup, and they rarely give it a second try.

The reverse is just as expensive. When the nearest store shows an item as unavailable, shoppers are roughly five times more likely to buy online instead when stock visibility is real-time and accurate, rather than abandoning the purchase. Accurate per-store stock is not a nicety; it is the difference between a saved sale and a lost one.

And accuracy is not a given. Studies of grocery retail have found up to 60% of inventory records inaccurate at the unit level. When the storefront promises a specific store has an item and it does not, every one of those errors becomes a wasted trip.

Here is how the experience differs once per-store stock is visible at the point of choice:

Without per-store stockWith per-store stock
Shopper sees one combined “online” numberShopper sees live availability for each store
Picks a store and hopesPicks the store that actually has the items
Discovers the gap at the shelfDiscovers it before paying, and adjusts
Wasted trip, lost trust, refundCollected order, foot traffic, add-on sales

The whole point of multi-location BOPIS is to move the moment of truth from the shelf to the cart.

What does the full implementation path look like?

Done properly, multi-location BOPIS is a sequence, not a single toggle. The order matters because each step depends on the one before it.

1. Get inventory tracked per location. Stock has to be counted at each store, not just at “online.” If your counts are wrong before you start, pickup will broadcast those errors to shoppers. Fix the data first.

2. Enable pickup at each store. In Shopify Admin, turn on in-store pickup per location and set an honest ready-time estimate. Under-promising on timing costs less than over-promising. The mechanics are in our full BOPIS setup guide.

3. Show real-time stock for every store, in the cart. This is the step native Shopify does not do. Instead of the combined online number, the shopper should see live availability at each store, so they choose based on what is actually there.

4. Give the shopper an in-cart store picker. The shopper selects where to collect, with stores sorted so the most useful ones surface first, in-stock by priority, then by distance. Stores that are out of stock or full stay visible but unselectable, greyed and sunk below the available ones, never hidden, so the shopper understands their options rather than wondering where a store went. The store they choose is then locked into native checkout, not silently rerouted to another location, so they collect from the store they actually picked.

5. Handle carts that mix pickup and shipping. When one cart has a collect-in-store item and a ship-to-home item, the two need to resolve into separate, clean orders through native Shopify checkout, not be forced into one fulfillment choice. This is a supporting backstop, not the headline, and it only engages when a cart actually mixes the two. For a multi-location store where everything can ship, the live per-store stock, the in-cart picker, and the store-lock are the whole value on every plan — many such stores get the full loop without ever splitting a cart.

For the full version of this end-to-end path across stores, see the multi-location BOPIS guide.

Where the native defaults stop

Shopify gives you steps one and two cleanly. It does not give you steps three through five across multiple stores. The “online” rollup, the single-store product page, and the entire-order-at-one-location rule all push against showing live per-store stock and a chooseable list. For a feature-by-feature breakdown of where the line falls, see native local pickup vs complete BOPIS.

You can close those gaps with custom development, but most merchants reach for a focused app instead, because the work has to keep pace with Shopify’s checkout-time enforcement layer every release.

BopiSafe is complete multi-location BOPIS built around exactly this: shoppers see real-time per-store stock in an in-cart store picker and choose where to collect, with stores sorted by priority then distance and out-of-stock or full stores staying visible but unselectable. When a cart mixes fulfillment methods, BopiSafe groups it by pickup, local delivery, and shipping, and each group runs through its own native Shopify checkout as a real order, never a draft order. It runs on Shopify Functions, so there is no slowdown at checkout and no theme rewrite.

Written by the BopiSafe team — we build BOPIS infrastructure for Shopify merchants. Our pickup integration work for Shopify stores dates back to 2023, well before the product launched.

Next steps

Have a multi-location pickup question this didn’t answer? Email support@bopisafe.com — we read everything.

Frequently asked questions

What does BOPIS mean on Shopify?

BOPIS stands for buy-online-pickup-in-store. A shopper orders on your Shopify storefront, picks a physical store to collect from at checkout, and walks in to grab the order instead of waiting for a carrier. In the UK and Australia it is usually called click-and-collect. On Shopify it runs on the native local-pickup fulfillment option, optionally extended by an app.

Can I run BOPIS across multiple Shopify locations?

Yes, but it is meaningfully harder than single-store pickup because stock differs by store and a shopper cannot tell which store actually has their items. Shopify lets you enable pickup at up to 20 locations, but its product page only ever surfaces one store plus a "Check availability at other stores" link. Showing live per-store stock and letting the shopper choose where to collect needs more than the defaults.

Does Shopify show inventory for each store separately?

Not on the storefront by default. The quantity a shopper sees is the "online" number, which is a rollup that adds up every location set to fulfill online orders. It is not a per-store count, so an item can read "in stock" online while the specific store a shopper wants to collect from has zero.

Why does multi-location pickup cause oversells?

Because the storefront shows the combined online quantity, a shopper can place a pickup order against stock that physically lives at a different store. Shopify's pickup rule requires the entire order to be in stock at one location or it relies on store transfers, so the order either stalls or the shopper drives to an empty shelf.

How many pickup locations can Shopify support?

Shopify lets you offer in-store pickup at up to 20 locations. That is plenty for most multi-store merchants, but the limit is not the real constraint. The constraint is that the native storefront cannot show live stock and a chooseable store list across all those locations, which is the part shoppers actually need.

Is BOPIS worth it for a store with two or three locations?

Usually yes. BOPIS sends higher-margin orders with no carrier cost, and shoppers who collect frequently add items in store. The two-to-three-location range is exactly where per-store stock visibility starts to matter, because stock differs by store and the "online" rollup begins to mislead shoppers.

What is the difference between local pickup and complete BOPIS on Shopify?

Local pickup is Shopify's built-in toggle that lets a shopper choose a store at checkout. Complete BOPIS adds the parts native pickup leaves out: live stock for each store, an in-cart store picker, capacity limits per store, and clean handling of carts that mix pickup and shipping items.

Do I need Shopify Plus to run multi-location BOPIS?

No. Pickup at multiple locations works on every Shopify plan, and the gaps you need to close, per-store stock and the store picker, do not depend on Plus. Plus adds some checkout customization, but multi-location BOPIS is a stock-visibility and checkout-routing problem, not a plan-tier one.

Can a customer ship some items and pick up others in the same Shopify order?

Not natively on standard Shopify plans — an order resolves to a single delivery method, so a shippable-plus-pickup-only cart has to be split into separate orders or it errors at checkout. Shopify is rolling out native "ship and pickup in one order" for Plus and Enterprise as a 2026 feature preview. For everyone else, complete BOPIS handles the mix by routing each group through its own native checkout.

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.