Complete multi-location BOPIS
for Shopify.
Shoppers see real-time stock at every store, choose where to collect, and that store is locked into native Shopify checkout — the multi-location BOPIS most stores actually need, on every plan. And when a pickup-only item shares a cart with a ship-only one — the mix no single checkout method can carry — BopiSafe splits it into two real native orders, on every plan; that's the cart native can't split for most stores.
01 The problem
You run pickup across more than one store — but the storefront wasn't built for it. Shoppers can't see which store actually has an item; native pickup lists locations alphabetically, not by what's in stock or nearby. Pick the wrong store and the order can't be fulfilled. And the moment a pickup-only item shares a cart with a ship-only one, there's no single delivery method that fits the whole order — so checkout stalls and the shopper leaves. You lose the order, and you never see it happen — no error in your dashboard, just a shopper who didn't come back.
Native Shopify checkout error Some items in your cart can only be picked up. Please remove them to continue.
02 The solution
BopiSafe runs the complete BOPIS loop — so every shopper lands at the right store, sees the right stock, and checks out cleanly.
- Stock. Show real-time stock at every store, on the product page and in the cart. Set per-store pickup inventory inside BopiSafe — it writes Shopify's own inventory.
- Pick. An in-cart store picker sorts stores by distance or priority. Out-of-stock and over-capacity stores stay visible but unselectable — never a pickup a shopper can't complete.
- Checkout. When a cart can't check out under one method — a pickup-only item next to a ship-only one — BopiSafe groups it into pickup, local delivery, and shipping lanes — each checks out through its own native Shopify checkout, separate real orders, no draft orders. Most carts never reach this — everything-ships carts stay one clean order.
BopiSafe carries multi-location BOPIS all the way through checkout — per-store stock, an in-cart store picker, and split checkout, in one flow.
Which describes your store?
Sharpest for stores with two or more pickup locations — though live per-store stock, the pickup-only marking, and the split all work with a single store too. One question sorts the rest: can everything you sell ship, or do some items have to be collected?
You run more than one store and just want shoppers to see which store has each item, pick one, and have it stick. You get live per-store stock, an in-cart store picker, and that store locked into native Shopify checkout — one clean order, no split.
Fresh, bulky, regulated, made-to-order, or store-exclusive. You get everything above, plus you lock those items to pickup-only or local-only and it's enforced at checkout — not just shown. And a cart that puts one of those next to a shippable item still checks out: two real native orders. That last part is the one only BopiSafe does — and it holds even with a single store, since one store plus a can't-ship item still makes a cart native won't carry.
03 Native mixed checkout vs BopiSafe
Shopify keeps improving mixed-cart checkout — but on one axis only: it hands the buyer a choice between methods an item already supports. It never lets you declare a product pickup-only or local-delivery-only and enforce it. And Shopify's own mixed-cart split is Plus-only and still in beta. Here's where each option stops, and where BopiSafe fits.
| When the cart… | Shopify native | Other pickup apps | BopiSafe Every plan |
|---|---|---|---|
| Every item can ship | ✓ | ✓ | ✓ + store choice |
| Shopper needs per-store stock + an in-cart store picker | — | ✓ | ✓ |
| Mixed ship-or-pickup cart, every item shippable | Plus only, beta | — | ✓ own split, every plan |
| A pickup-only item next to a ship-only item | — won't check out | — | ✓ two real native orders |
Most stores just need stock and a locked-in store
If everything you sell can ship, you may not need cart splitting at all. What you need is for shoppers to see real-time stock at each store, choose where to collect, and have that store stick through checkout — and that is the core of BopiSafe. It runs on top of native Shopify checkout on every plan, so wherever Shopify's own mixed-cart split is available, BopiSafe simply adds the per-store stock, the in-cart picker, and the store-lock on top — it doesn't fight native, it completes it. If that describes your store, real-time per-store stock and a locked-in pickup store are all the setup you need. (Prefer to let Shopify's own native split handle the mix? Where your store has Shopify's pickup-mixing, BopiSafe can hand it off and stay on for the per-store stock, picker, and store-lock.)
What only BopiSafe handles
The cart no one else clears: a must-pickup (or must-local-delivery) item in the same cart as a must-ship item. Native refuses it; draft-order apps fake it with orders that aren't really native. BopiSafe groups it into separate native orders — on every Shopify plan, today — and locks the chosen store through checkout so nothing gets rerouted. You set the menu — pickup-only, local-only, or any mix, per product, per collection, or shop-wide — and the shopper orders from it. That's the line Shopify won't cross: it optimizes for buyer choice, so it won't give you the power to restrict a product to one method. BopiSafe does.
Built on Shopify's own checkout
Every split group flows through real native Shopify checkout — no draft orders, no custom checkout. Shop Pay, Apple Pay, and every native payment method work on each group; pickups are real native pickup orders, so Shopify's own "Ready for pickup" notifications and POS pickup management keep working — one less app to run. Your analytics stay clean: each group is a real Shopify order with native attribution, no reconciliation.
04 Capabilities
Four things multi-location BOPIS needs — and the combination only BopiSafe brings together.
- 01 Real-time stock at every store
- Live per-store stock on the product page and in the cart. Set per-store pickup inventory inside BopiSafe — it writes Shopify's own inventory, so there's no double entry.
- 02 In-cart store picker
- Sort by distance or priority. Out-of-stock and over-capacity stores are visible but unselectable — no false promises to shoppers.
- 03 Split checkout for mixed carts
- Detect the cart no single method can carry — a pickup-only item alongside a ship-only one. Group it into pickup, local delivery, and shipping lanes. Each lane runs through real native Shopify checkout — no draft orders.
- 04 Never oversell a pickup slot
- Set a daily pickup limit per store. When a store hits its cap, the picker shows it as unavailable — no shopper books a pickup it can't fulfill. Rescued Revenue, Smart Splits, and Pickup Share are tracked in your dashboard once live.
05 How it works
From product page to checkout, in one flow. No theme rewrites. No replatforming. Install and BopiSafe runs at the storefront layer.
Step 01 · See — stock at every store
On the product page, above Add to Cart, shoppers see live pickup availability — which store has it and when it's ready. Change store compares stock across your locations. No more picking a store that can't fulfill.
Step 02 · Pick — choose a store in the cart
An in-cart store picker lets the shopper choose where to collect, sorted by distance or priority. Out-of-stock and over-capacity stores stay visible but can't be selected. Local delivery is a first-class lane too: the shopper enters an address, BopiSafe checks the store's service area, and an out-of-area address falls back to in-store pickup.
Step 03 · Checkout — split when no single method fits
When a cart can't check out under one method — a pickup-only item next to a ship-only one — BopiSafe groups it into pickup, local delivery, and shipping lanes — and skips anything sold out at the chosen store. Each lane flows through its own native Shopify checkout: separate real orders, no draft orders. Carts where everything ships skip this entirely — one clean order.
06 Common questions
The ten things merchants ask before installing.
Does BopiSafe use Shopify's own pickup, or a workaround?
Shopify's own. BopiSafe runs on Shopify's native local pickup — real pickup per location, writing Shopify's own inventory, so there's no parallel stock system and no double entry. What BopiSafe adds is the multi-location layer Shopify leaves out: real-time stock at every store, an in-cart store picker sorted by stock and distance, and split checkout for the cart no single method can carry — a pickup-only item next to a ship-only one. Every group still checks out through native Shopify checkout as a real order — no draft orders, no custom checkout. Complete multi-location BOPIS, built on the pickup, inventory, and checkout your store already runs.
Does Shopify's new ship and pickup in one order replace BopiSafe?
No. That's a Plus and Enterprise feature preview that lets a shopper mix shipping and pickup in one order — useful, but it needs shipping enabled (it can't run a pickup-only store) and adds no real-time per-store stock, no in-cart store picker, and no capacity limits. It's order plumbing, not the shopper-facing experience. BopiSafe is where shoppers see which store has each item and choose where to collect — on every Shopify plan, not just Plus. The two work together; one doesn't replace the other.
Will BopiSafe work with my theme?
Yes. BopiSafe runs in Universal mode on any Online Store 2.0 theme. No theme code edits. The Hub runs a compatibility check after install — and our technical support calibrates theme compatibility with you, real setup help, not a docs link.
Do Shop Pay and discounts still work after the cart splits?
Yes. Each split group flows through native Shopify checkout, so Shop Pay, Apple Pay, and every native payment method work on every group. Discount codes without a minimum work normally; codes with a "minimum $X" check each group's subtotal after the split, so a very large mixed cart may not trigger them.
How long does setup take?
About 10 minutes for the 4-step Hub: connect locations, install theme extension, set pickup rules, go live. Optional capacity caps take another 2 minutes if you use them.
Do I need to be on Shopify Plus?
No. BopiSafe works on every Shopify plan from Basic up. The mixed-cart split, store picker, and capacity guard all use standard Shopify APIs. This matters because Shopify's own mixed-cart split is Plus-only and still in beta — so for most non-Plus stores, native can't split a mixed cart at all. BopiSafe's split works on every plan, today.
Do I need to use cart splitting?
No. If everything you sell can ship, most stores just use BopiSafe for real-time per-store stock, an in-cart store picker, and locking the chosen store into native checkout — on every plan. The cart split only kicks in when a cart actually mixes pickup-only and shipping items; if your carts never mix, you never see it.
What happens if a store goes offline mid-day?
Capacity guard catches it. If a store hits its daily cap, the picker shows it as unavailable, so no shopper can select it. No one books a pickup the store is unable to fulfill.
Can I set fulfillment methods per product or collection?
Yes. Toggle pickup, local delivery, and shipping in any combination — per product, per collection, or a shop-wide default. Rules live in the BopiSafe Hub, not your theme.
How is BopiSafe priced?
From $19.90/month (Growth). 14-day free trial on any plan. Billing runs through your Shopify account — no separate payment setup. See the Shopify App Store listing for plan details.
Run multi-location BOPIS that actually checks out.
Install free. 14-day trial on any plan. About 10 minutes to set up.