Blog

How to Set Up BOPIS on Shopify (2026 Guide)

2026-05-11 · Updated 2026-06-13 · BopiSafe Team

Setting up BOPIS on Shopify takes 4 steps: enable in-store pickup at each location in Shopify Admin, tag your pickup-only products, configure per-location capacity, then test the cart-to-checkout flow. Most stores can complete this in 30 minutes, but the harder part — handling mixed carts and capacity edge cases — is where Shopify’s defaults fall short.

This guide walks through the full setup, then covers the five most common mistakes that turn BOPIS from a revenue lever into a support nightmare.

What actually works for BOPIS on Shopify in 2026?

A lot has changed since merchants started cobbling BOPIS together with theme edits and Zapier flows. As of 2026, there are three serious paths — and only one of them scales without an operational tax. Pick by how many stores a shopper can actually collect from and whether you have pickup-only SKUs, not by what looks cheapest on day one.

PathBest fitWhat it handlesWhere it breaks
Native Shopify pickup onlyOne pickup store, no pickup-only SKUsLocation-level pickup toggle, basic pickup-ready email, single-location capacity by manual disableWith 2+ collectable stores, native shows their stock poorly (one location surfaced, the rest behind a link); on non-Plus plans a mixed cart can’t split (a pickup-only item blocks checkout for the shippable rest); no per-location capacity caps; no inventory drift protection
Native + a focused app (BopiSafe)2+ stores a shopper can collect from, or any store with pickup-only SKUsEverything native does, plus: per-store stock in an in-cart store picker, the chosen store locked into checkout, cart splitting into two native checkouts, per-location capacity, safety-stock buffers, order validationNothing structural — the gaps that remain are operational (staff training, hold-window discipline)
Custom build on Shopify’s checkout-time enforcement layerEnterprise / agency engagements with budget for ongoing maintenanceAnything you have the engineering bandwidth to write and maintainHigh upfront and ongoing cost; you become responsible for keeping pace with Shopify API deprecations every release cycle

The decision is usually simple. Native alone is fine for one pickup store with no pickup-only SKUs — there’s nothing to pick across, and Shopify already shows that one location’s stock. The store-picker value kicks in with 2+ stores a shopper can actually collect from: shoppers need to see which store has each item, pick one, and have it stick at checkout (an online sales channel or a ship-only warehouse doesn’t count as a collectable store). But even a single store gets BopiSafe’s live per-store stock display and pickup-only / local-only marking. And the moment a single pickup-only SKU exists the mixed-cart problem appears — at any store count — and from that point on you need either a focused app or a custom build. For most merchants the focused app pays back inside the first month — see why Shopify’s default BOPIS falls short for the breakdown.

What doesn’t work in 2026: trying to solve the mixed-cart problem with a cart-page warning alone (express checkout buttons bypass it), forcing all items to one fulfillment method (creates a refund queue), or relying on Shopify draft orders to bridge the gap (loses Shop Pay and ties up your support team in manual conversions). Those patterns made sense in 2021 — they don’t anymore.

What is BOPIS?

BOPIS stands for Buy-Online-Pickup-In-Store. A customer places an order on your Shopify storefront, selects a physical location for pickup at checkout, and collects the order in person instead of having it shipped. It’s also called click-and-collect in the UK and Australia.

BOPIS sits between pure e-commerce and pure retail. It gives customers same-day fulfillment without shipping fees, and gives merchants higher-margin orders (no carrier costs) plus foot traffic that often converts into add-on purchases.

According to Statista’s 2024 retail study, over 50% of US online shoppers used BOPIS at least once in the prior 12 months, and BOPIS orders convert 25-40% higher than ship-to-home for retailers with physical locations.

Why does Shopify need extra setup for BOPIS?

Shopify supports local pickup as a fulfillment option out of the box — you can enable it per location and pickup will appear at checkout. But the default behavior has four gaps that bite most merchants within the first month of going live:

  1. Shipping methods still appear on pickup-only carts. A customer adds a “store-only” item, and Shopify still shows them USPS rates, leading to confused orders that need manual fixing.
  2. Mixed carts can’t split cleanly. When a customer adds one pickup-only item and one shippable item, checkout resolves to a single fulfillment choice by design. Most merchants either lose the order or fulfill it incorrectly.
  3. No per-location capacity. Nothing in Shopify caps how many pickup orders a single store takes in a day, even when it’s booked solid.
  4. Inventory drift between sync windows. If POS sells the last unit while the e-commerce order is in the cart, Shopify happily takes the BOPIS order — leading to an unfulfillable promise.

Each gap is solvable, but solving them requires either custom development on Shopify’s checkout-time enforcement layer or a purpose-built app. The setup below covers the native flow first, then flags where you’ll need to extend.

Prerequisites

Before you start:

If you’re missing any of these, fix them first — BOPIS on top of broken inventory data will make the data problem worse, not better.

Step 1: Enable in-store pickup at each location

In Shopify Admin:

  1. Go to Settings → Locations
  2. Click the location you want to offer pickup from
  3. Scroll to Pickup and toggle This location offers pickup
  4. Set the expected pickup time (“usually ready in 2 hours” / “next day” — be honest, undersetting expectations costs more than oversetting)
  5. Add pickup instructions that will appear in the order confirmation (parking, hours, which door, how to identify yourself)
  6. Save

Repeat for every location that should accept pickup. Locations without pickup enabled won’t appear at checkout.

Common mistake: enabling pickup at a fulfillment-only warehouse where customers can’t physically visit. If staff aren’t trained to greet pickup customers, don’t enable pickup there — even if the inventory lives there.

Step 2: Tag your pickup-only products (and decide your taxonomy)

Not every product should be available for pickup. Heavy items, fragile items, perishables outside refrigeration, and special-order items often need to be either pickup-only or ship-only.

The cleanest way to model this in Shopify is with tags or a custom field:

Pick one and stick with it. Mixing tag-based and custom-field logic is the #1 cause of BOPIS bugs reported in production stores, based on Shopify community forum discussions.

Why this matters: by default, Shopify will show shipping methods for any product with stock at any location. Without product-level pickup rules, a customer adds a pickup-only item and Shopify still asks for a shipping address. The order goes through, the customer gets confused, your support team eats it.

Step 3: Set per-location capacity

Per-location pickup capacity isn’t part of Shopify natively. If your store can prep 30 pickup orders per day before staff are overwhelmed, nothing native stops the 31st from being placed.

To enforce capacity, you need either:

The goal is the same: when a location hits its daily/hourly cap, it should stop appearing as a pickup option at checkout. Customers either pick a different location or switch to shipping. Both outcomes preserve revenue; an unfulfillable pickup order does not.

If you’re at low pickup volume (under 10 orders/day) you can defer this step and operate on trust. Above that threshold, capacity enforcement pays for itself within the first week.

Step 4: Handle mixed carts (the hardest part)

A mixed cart is a single cart containing both pickup-only and shippable items. On standard (non-Plus) Shopify, an order resolves to a single delivery method, so there’s no native way to ship one item and pick up another in a single order.

You have three real options:

  1. Block mixed carts at the cart page. Show a message: “This cart contains items that can’t be combined. Please check out separately.” This is the cheapest to implement and the worst for conversion — abandonment rate spikes 15-25%.
  2. Split the cart into two coordinated native Shopify checkouts. When the customer checks out, route each group through its own real native Shopify checkout — not draft orders — both linked to the same customer and payment. This is what BopiSafe does: two real Shopify orders, not draft orders or manual invoices. Conversion stays intact, customer gets one orchestrated flow, you get two clean fulfillment paths.
  3. Force the whole cart to one fulfillment method based on majority. Risky — you’ll fulfill some items wrong.

Option 2 requires custom work on Shopify’s checkout-time enforcement layer plus checkout-side coordination. It’s not trivial to build from scratch, which is why most merchants either accept the abandonment of option 1 or buy an app that handles option 2.

Step 5: Test the full flow before going live

Before you announce BOPIS to customers, run these test scenarios from a private browser session:

ScenarioExpected outcome
Cart with 1 pickup-only itemShipping methods hidden; pickup options shown
Cart with 1 shippable itemShipping shown; pickup hidden (unless the item also allows pickup)
Cart with bothEither split cleanly or surface a clear message
Pickup at a location with 0 stockLocation should not appear as a pickup option
Pickup at an at-capacity locationLocation should not appear
Order placed, then inventory hits 0 between cart and submitOrder should be blocked or downgraded

If any of these fail, fix before announcing. BOPIS that breaks at edge cases erodes trust faster than no BOPIS at all.

The 5 mistakes that kill BOPIS rollouts

Across our own Shopify pickup integration work since 2023, the same five mistakes recur:

  1. Enabling pickup at locations that aren’t staffed for it. Customers show up, no one greets them, refund follows. Train first, then enable.
  2. Not setting expected pickup time honestly. “Ready in 2 hours” when reality is 6 hours generates more support tickets than no estimate at all.
  3. Forgetting to handle inventory drift. POS sells the last unit while a BOPIS order is in flight. Without enforcement, you’ve just promised a customer something you can’t deliver.
  4. Mixing tag-based and custom-field-based pickup rules. Pick one. Document it. Never mix.
  5. Treating BOPIS as a shipping replacement, not a fulfillment method alongside it. Mixed carts, location capacity, and pickup-only checkout are all distinct problems. Solving one without the others creates new failure modes.

Where Shopify defaults stop and BopiSafe begins

If you run one pickup store with simple inventory and no pickup-only SKUs, Shopify’s native pickup is enough. Set it up, test it, run it. Once you add a second store a shopper can collect from — so they need to see which store has each item and have that choice stick — or you start selling pickup-only items that land in mixed carts, the native gaps in §“Why does Shopify need extra setup” start costing real orders.

BopiSafe is complete multi-location BOPIS built specifically for those gaps: shoppers see real-time per-store stock in an in-cart store picker and choose where to collect, with native split checkout when a cart mixes fulfillment methods — it groups the cart by pickup, local delivery, and shipping and sends each group through its own native Shopify checkout — plus per-location capacity guardrails and inventory-drift blocking. It runs on Shopify’s modern checkout enforcement layer, so it adds zero perceivable latency and doesn’t require theme rewrites.

Next steps

Have a question this guide didn’t answer? Email support@bopisafe.com — we read everything and update this guide based on what merchants actually run into.

Frequently asked questions

Does Shopify support BOPIS out of the box?

Partially. Shopify supports local pickup as a fulfillment option per location, but on standard (non-Plus) plans it does not split mixed carts (pickup + ship-to-home), enforce per-location capacity, or hide shipping methods on pickup-only carts. Most merchants need an app to close these gaps.

Can I run BOPIS on a single-location Shopify store?

Yes — and several pieces work right away. Live per-store pickup stock on the product page, and marking an item pickup-only or local-only, both work at any store count, including one. What needs 2+ stores a shopper can actually collect from (an online sales channel or a ship-only warehouse doesn't count) is the part where shoppers choose among stores and that choice locks into checkout — with one pickup store there's nothing to choose between. So multi-store is the stronger fit for the store picker, but a single store still gets real value. And a single store that sells pickup-only items is a full split customer — a cart mixing a pickup-only item with a shippable one is one native won't check out, and BopiSafe's split saves that order.

Do I need Shopify Plus for BOPIS?

No. BOPIS works on every Shopify plan. Shopify Plus adds Checkout Extensibility features that some pickup apps use, but the core flow (locations, pickup fulfillment, theme integration) works on Basic, Shopify, and Advanced plans.

Will BOPIS slow down my checkout?

Properly implemented BOPIS adds no perceivable latency. Shopify's checkout-time enforcement layer runs in milliseconds, so enforcement is invisible to the customer. The only slowdown comes from poorly written third-party apps — if your checkout feels slow after enabling pickup, audit the app, not BOPIS itself.

How do I handle a customer who orders pickup but never shows up?

Set a hold window in your order management workflow (typically 5-7 days). Send a pickup-ready email, then a reminder at 48 hours. After the hold expires, restock the item and refund. BopiSafe surfaces uncollected orders on the dashboard so this never falls through the cracks.

Can I charge a fee for in-store pickup?

Yes. Configure pickup as a paid fulfillment method in Shopify (e.g., a $2 handling fee for picking and staging). Most merchants offer pickup free as a conversion lever, but paid pickup is fully supported.

What happens if inventory goes to zero between cart and pickup?

This is the biggest BOPIS failure mode. Without enforcement, customers can place a pickup order for an item that is no longer physically in the store. BopiSafe blocks checkout when inventory drift would cause an unfulfillable order. Out of the box, Shopify does not.

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.