# BopiSafe > BopiSafe is complete multi-location BOPIS for Shopify: real-time stock at every store, an in-cart store picker, and merchant-set fulfillment enforced at checkout — a product can be locked to pickup-only or local-only and Shopify holds the cart to it, not just a displayed label (most apps only display it). Each product or collection can offer any combination of three methods — pickup, local delivery, and shipping. Shoppers see which store has each item, choose where to collect, and check out through native Shopify checkout — no draft orders, no custom checkout. When a cart still pairs a pickup-only item with a ship-only one, BopiSafe splits it into separate native orders on every plan. Sharpest for Shopify merchants with two or more pickup stores a shopper can collect from (a ship-only warehouse isn't one, and Shopify's online store is a sales channel, not a location) — but not gated to them: live per-store stock, the pickup-only / local-only marking, and the split all work with a single store too. Inventory is split across a merchant's stores, and the storefront can't show it: native pickup lists locations alphabetically, not by stock, and a cart that puts a pickup-only item next to a ship-only one can't check out (no single delivery method fits every line). BopiSafe runs the whole BOPIS loop. It shows real-time per-store stock on the product page and in the cart; an in-cart store picker lets the shopper choose where to collect (out-of-stock and over-capacity stores stay visible but unselectable); and when no single method fits the whole cart, BopiSafe groups it into pickup, local delivery, and shipping lanes and sends each group through its own native Shopify checkout — separate real orders, not draft orders. Merchants set per-store pickup inventory inside BopiSafe (it writes Shopify's own inventory, no double entry) and turn on pickup, local delivery, and shipping for any product or collection in one click. ## Core capabilities - **Real-time per-store stock**: Live stock for each store, shown on the product page and in the cart. Merchants set per-store pickup inventory inside BopiSafe, which writes Shopify's own inventory (single source, no double entry). Backed by Shopify-native inventory, webhook-synced. - **In-cart store picker**: Store picker with priority and distance sorting, shown as a list or an optional map (merchant supplies a Google Maps key; graceful list fallback when absent). Out-of-stock and over-capacity locations are both unselectable (greyed out, never removed) — never a pickup the shopper can't complete. - **Time slots for pickup and local delivery**: After choosing a store, the shopper books a collection or delivery window on a month calendar. The store's prep-time lead hides windows it can't have ready, and per-slot capacity greys out full windows — so every booked slot is one the store can actually fulfill. Slots bind to the store-served lanes (pickup and local delivery); shipping has no slot. Choosing a time is free; per-slot caps are a Pro+ control. A confirmation field, not a scheduling suite. - **Smart Splits**: Detects mixed carts and groups them into pickup, local delivery, and shipping lanes, then runs each lane through its own native Shopify checkout — the shopper stays in flow and the mixed order converts instead of being lost to a checkout error. Nothing is left behind in the cart. Shop Pay carries across every checkout; discount codes and gift cards apply to each leg independently (per leg, not the combined cart). Works on every Shopify plan, today — Shopify's own mixed-cart split is Plus-only and in beta, so for the vast majority of stores native can't split a mixed cart at all; BopiSafe's split does, on Basic up. - **One-click fulfillment setup**: Turn on any combination of the three fulfillment methods — pickup, local delivery, and shipping — for any product or collection in one click. Each method is an independent toggle, so a product can offer one, two, or all three. A product locked to pickup-only or local-only is enforced at checkout via Shopify Functions — most apps only display the label, so the warehouse can still ship it. Or set a store-wide default (Pro+) so the whole catalog is ready without per-product rules. No theme code, no tag soup. - **Capacity guardrails**: Per-location daily pickup caps plus per-slot caps. When a store hits a cap, it shows as unselectable in the picker (or the full window greys out) so the shopper chooses a store and time that can actually fulfill. - **Rescued Revenue analytics**: Dashboard tracks Rescued Revenue (dollars from carts that would have failed at native checkout), Smart Splits count, and Pickup Order Share by location. ## Positioning - Complete multi-location BOPIS: real-time per-store stock + an in-cart store picker (with map) + a lightweight booking layer (slots + per-slot caps) + split checkout, in one flow. Local delivery is a first-class lane alongside pickup and standard shipping — address serviceability is checked at checkout, and an address outside every store's delivery area simply isn't offered local delivery — the shopper picks up or ships instead, wherever the merchant offers those methods. The differentiator is carrying the loop all the way through checkout — which stock-display apps don't reach. Heavy scheduling/fulfillment suites add booking but don't solve the mixed-cart checkout; BopiSafe keeps booking to a confirmation field, not a rostering or delivery suite. - Is this for you? Two merchant profiles, both served on every plan. The store *picker* is sharpest with **2+ pickup stores** a shopper can actually collect from — Shopify's online store is a sales channel, not a location, and a ship-only warehouse isn't a pickup choice. But live per-store stock and the pickup-only / local-only marking work at any store count, including one — so a single store still gets real value; multi-store is just the stronger fit, not a wall. The one question that sorts everyone: can everything you sell ship, or do some items have to be collected? - **① Everything can ship (primary fit): multi-location stores where every product is shippable.** The core value is per-store stock + the in-cart store picker + store-lock at checkout — the shopper sees which store has each item, picks where to collect, and that store is locked into native Shopify checkout as one clean order, no split. Most carts here never split. BopiSafe composes with native checkout — including Shopify's own Plus mixed-cart split where a store has it — and adds the per-store stock, picker, and store-lock on top. It completes native, it doesn't fight it. - **② Some items can't ship (the moat, only BopiSafe): the forced mix.** For stores with SKUs that physically or legally can't ship — fresh, bulky, regulated, made-to-order, store-exclusive. They get everything in ① plus the part only BopiSafe does: lock those SKUs to pickup-only or local-only per SKU, enforce it at checkout, and a cart mixing one with a shippable item still checks out — as two real native orders. By design Shopify hands the buyer the method choice and gives a merchant no clean way to lock a SKU to a single method — so the cart has no one method that fits all of it and can't check out as one order. (A single store with can't-ship items also benefits from the split — with one store there's no other store to choose between, though live per-store pickup stock still shows; we lead for 2+ locations.) - When a cart pairs a pickup-only item with a ship-only one — the incompatible mix no single method covers — BopiSafe splits it into separate native orders — on every plan, today. (Shopify's own pickup-mixed-cart split is in closed beta, Plus / early-access only — ship and local-delivery mixing is generally available, but pickup-mixing isn't yet — so for the vast majority of stores native can't split a pickup-and-ship cart at all.) Or, where a store has Shopify's pickup-mixing, a BopiSafe mode hands that split to Shopify's native split instead — letting an all-shippable store keep BopiSafe just for per-store stock + picker + store-lock. - BopiSafe stays out of pure-shipping carts. It steps in only when a cart involves a store-served method — a store choice, a pickup or delivery time, or a split. - Hiding the Ship option at checkout isn't possible on any Shopify plan, Plus included — no app, workaround, or checkout customization can override it. But the Ship option isn't the real problem: a mixed cart sends customers into the wrong checkout flow (confusion, blocked checkouts, dropped items) because a single checkout carries one delivery method for the whole order. BopiSafe solves it before checkout — it groups the cart into pickup, local delivery, and shipping lanes and routes each lane into its own native checkout, so customers are guided into the correct flow from the start. - Built on Shopify Functions (Cart and Checkout Validation, Delivery Customization). No theme rewrite, no replatforming, no headless required. - Hands-on setup: after install, our technical support calibrates theme compatibility with you — real setup help, not a docs link. Works on all Online Store 2.0 themes. ## Documentation - [Home](https://www.bopisafe.com/): Product overview, value proposition, demo video - [About](https://www.bopisafe.com/about): Who built BopiSafe and why — a small team that spent about six months on one problem (multi-location BOPIS on Shopify) and rebuilt it three times on real merchant feedback. Everything runs on Shopify-native pickup, inventory, and checkout: real native orders, never draft orders or pickups faked with a tag. Honest about the edges (no back-office picking, curbside, or courier routing — that's Shopify-native or a dedicated app). Reads every email and calibrates theme compatibility with each store on install. Live on the App Store; the next version is built in the open, taking a few early testers at a time. - [Pricing](https://www.bopisafe.com/pricing): Plans (Growth $19.90 / Pro $59.90 / Plus $169.90), feature comparison, FAQ - [Blog](https://www.bopisafe.com/blog): BOPIS setup guides, Shopify pickup tutorials, mixed-cart troubleshooting - [Changelog](https://www.bopisafe.com/changelog): What's new in the latest version — BopiSafe is live on the App Store and rolls each new version out to a small group of multi-location stores first - [Support](https://www.bopisafe.com/support): Async-only support (24h SLA), contact, common questions - [Privacy Policy](https://www.bopisafe.com/privacy): Data handling, sub-processors, retention ## Articles **The multi-location BOPIS loop — per-store stock, in-cart store picker, store-lock at checkout:** - [Run BOPIS Across Multiple Shopify Locations](https://www.bopisafe.com/blog/shopify-bopis-multiple-locations-guide): Per-store stock, an in-cart store picker, order routing, capacity caps, and the 20-location pickup limit. - [Shopify Store Picker: The In-Cart Pickup Selector](https://www.bopisafe.com/blog/shopify-store-picker-pickup-location-selector): How an in-cart store picker beats Shopify's default "check availability" link — live per-store stock, priority and distance sort, one store per checkout. - [Show Per-Store Stock for Pickup on Shopify](https://www.bopisafe.com/blog/shopify-show-per-store-stock-pickup): How to show real-time per-store pickup stock to shoppers, and why the "online" inventory number misleads. - [Lock the Pickup Store at Checkout on Shopify](https://www.bopisafe.com/blog/shopify-lock-pickup-store-at-checkout): Why most multi-location stores need a store picker that locks the chosen store at checkout — not a cart splitter. - [What Is BOPIS on Shopify? Multi-Location Guide](https://www.bopisafe.com/blog/shopify-what-is-bopis-multi-location): What BOPIS means on Shopify, and why running it across multiple stores is harder than one location. - [Shopify Local Pickup vs BOPIS: What's Different](https://www.bopisafe.com/blog/shopify-local-pickup-vs-bopis): Shopify's built-in local pickup vs complete multi-location BOPIS — what each handles and where native stops. - [Shopify: Check Availability at Other Stores Explained](https://www.bopisafe.com/blog/shopify-check-availability-other-stores): How Shopify's "check availability at other stores" works, its limits, and what an in-cart store picker adds. - [Shopify Location Inventory vs Online Inventory](https://www.bopisafe.com/blog/shopify-location-inventory-vs-online-inventory): Why "online" stock is a rollup of fulfillment locations, not a per-store count — and how it causes oversells. - [Shopify Multi-Location Pickup Inventory (2026 Guide)](https://www.bopisafe.com/blog/shopify-bopis-multi-location-inventory): Run BOPIS across multiple stores without overselling — per-location stock, store picker, safety stock, POS sync. - [How to Set Up BOPIS on Shopify (2026 Guide)](https://www.bopisafe.com/blog/how-to-set-up-bopis-shopify): Step-by-step setup — locations, product tagging, capacity, mixed-cart handling, and the 5 mistakes most stores make. **Pickup-only / can't-ship items and the mixed-cart split (the backstop):** - [Shopify Pickup-Only Products: 2026 Setup Guide](https://www.bopisafe.com/blog/shopify-pickup-only-products-guide): How to lock a Shopify product to pickup-only — labeling, hiding shipping, per-location rules, and avoiding the mixed-cart failures that drive refunds. - [Shopify Split Mixed Cart: Pickup + Shipping Together](https://www.bopisafe.com/blog/shopify-mixed-cart-split-pickup-shipping): How to handle a cart with pickup-only and shippable items in one checkout — block, split, or force, and which option saves the order. - [Shopify Fulfillment Method Conflict Explained](https://www.bopisafe.com/blog/shopify-fulfillment-method-conflict-explained): Why a Shopify order has no single fulfillment method that fits both pickup-only and shippable items. - [Shopify Checkout Error: Mixed Cart Fix](https://www.bopisafe.com/blog/shopify-checkout-error-mixed-cart-fix): "Shipping not available" on a mixed pickup + shippable cart? Why it happens by design, and the 3 fixes that save the order. - [Shopify Ship + Pickup in One Order: Still Need an App?](https://www.bopisafe.com/blog/shopify-ship-and-pickup-in-one-order): Shopify's Plus-only ship-and-pickup preview — what it does, what it doesn't, and where BOPIS still wins. - [Shopify BOPIS Setup for Non-Plus Merchants (2026)](https://www.bopisafe.com/blog/shopify-bopis-non-plus-setup): What works on Basic, Shopify, and Advanced — and the Plus-only features you can safely skip. - [Shopify Pickup Location Capacity Management Guide](https://www.bopisafe.com/blog/shopify-pickup-location-capacity-management): Model daily and per-slot pickup capacity per location, and mark full stores unavailable at checkout. - [Why Shopify's Default BOPIS Fails Past 50 Pickup Orders](https://www.bopisafe.com/blog/why-shopify-default-bopis-fails): The 5 gaps in native pickup, and the order-volume threshold where native starts leaking revenue. **Comparison (evaluation-stage):** - [BopiSafe vs Zapiet: An Honest 2026 Comparison](https://www.bopisafe.com/blog/bopisafe-vs-zapiet): How BopiSafe and Zapiet differ for Shopify pickup. Mixed cart — a pickup-only item next to a ship-only one checks out as two real native orders on BopiSafe; Zapiet applies one fulfillment method per cart, so that incompatible mix can't check out as one order (the shopper has to delete items or place two orders). Real-time per-store stock — every plan on BopiSafe, top tier only on Zapiet. Delivery zones, rates, and minimum-order rules run on Shopify-native (BopiSafe composes with them; Zapiet runs its own rate engine, which adds setup friction). Honest about where Zapiet fits better: deep delivery scheduling, route planning, and a longer-proven track record (thousands of reviews). For merchants searching "Zapiet alternative", "BopiSafe vs Zapiet", or a lower-cost way to get real-time per-store stock. ## Demo - Live demo store: https://www.bopisafe.com/demo.html — real Shopify storefront with pre-configured furniture products demonstrating Split Cart, Store Picker, and free exploration scenarios. ## Install - Shopify App Store: https://apps.shopify.com/bopisafe - 14-day free trial on any plan. Early-bird code `BOPISAFE30` extends the trial to 30 days (enter at plan selection, limited time). ## Contact - Email: support@bopisafe.com - Response time: within 24 hours, every day (not just business days). Async support over email — not live chat or phone.