A multi-store merchant wants buy-online-pickup-in-store (BOPIS) as a fulfillment option. Customer browses online, picks items, sees "Available for pickup at Store X", chooses the store, pays online, collects the order in person.
Shopify has this built in. The architecture question is which Liquid objects and admin settings combine to deliver the experience - and what misconfigurations break it.
The primitives
BOPIS on Shopify uses:
- location Liquid object - represents a physical store or warehouse where inventory exists and orders can be fulfilled from
- Inventory by location - the stock level per product variant per location
- Local pickup (per-location) - the shipping-method-like setting enabling pickup at that location
- Pickup fulfillment service - handles the operations side (order marked ready, customer notified, collected)
These aren't external add-ons; they're native Shopify features.
Setup sequence
The merchant-side setup:
- Add locations in Shopify admin for each physical store (name, address, coordinates)
- Enable "Fulfill online orders from this location" on each location that will fulfill BOPIS
- Enable "Local pickup" on each location, configure pickup hours and instructions
- Stock the inventory per location - each variant's on-hand split across the applicable locations
- Configure shipping zones to include pickup locations
- Test by placing an order, selecting pickup, walking through the post-purchase flow
Done well, no custom code needed for standard BOPIS.
Product page - "Available for pickup"
The customer sees pickup availability on the product page via the location object and inventory data:
The store_availabilities object gives the variant's availability across all locations where pickup is enabled. The theme renders real-time availability so customers see accurate data.
Checkout pickup flow
At checkout, after the customer enters shipping address, they see pickup as an option if:
- At least one location has the variant in stock
- The customer's address is close enough to a pickup-enabled location (per merchant's distance settings)
Selecting pickup changes the flow:
- Shipping cost is removed (or replaced with a pickup fee if configured)
- The customer's shipping address becomes the pickup location's address in the order
- The order is marked for pickup in admin
All of this is automatic once the merchant configures the settings correctly.
Post-purchase operations
After checkout, the merchant's staff:
- Receives the order in admin with a "Local pickup" tag
- Picks the items from the designated location's stock
- Marks the order "Ready for pickup" in admin
- Shopify sends an automated email/SMS to the customer with pickup instructions
- Customer arrives, presents order confirmation, staff marks fulfilled
The customer notification is triggered by the admin status change - no custom code.
Common misconfigurations
Location not enabled for online fulfillment. The store exists but isn't wired into online orders. Pickup never appears to customers for that location. Check: "Fulfill online orders from this location" must be on.
Inventory not allocated to pickup locations. Product has stock in the warehouse but zero at the store. Pickup shows unavailable even though physical inventory exists. Fix: allocate inventory per location to match where items actually are.
Shipping zones miss pickup locations. Pickup doesn't appear because the customer's address falls outside any pickup-enabled shipping zone. Fix: expand zones or reduce distance restrictions.
No pickup time or instructions set. The "Available for pickup" message is there but vague. Customers don't know when to come. Fix: set realistic pickup-ready time per location.
Multi-location inventory challenges
For merchants with many stores, inventory management becomes the hard part. Typical issues:
- Manual inventory counts drift - physical stock doesn't match Shopify. Customer orders for pickup, item isn't actually there.
- Sync lag from POS - if the store also does in-person sales, inventory needs near-real-time sync between POS and Shopify inventory
- Returns to different locations - customer buys at Store A, returns at Store B. Inventory reallocation needed.
Shopify POS (if the merchant uses it) handles most of this natively. For third-party POS, the integration has to sync inventory on every transaction.
Inventory visibility add-in
For larger BOPIS operations, the Inventory Visibility Add-in provides a more scalable real-time inventory view than the default product.store_availabilities. It handles high-read traffic (customer checks) without loading F&O-style query overhead. Merchants with more than a handful of stores should evaluate it.
Delivery options beyond local pickup
BOPIS is one of several omnichannel patterns:
- Ship to store - order ships from a warehouse to a store for pickup (not the same as local pickup, which is from the store's existing inventory)
- Curbside pickup - variant of BOPIS with a curbside checkbox and instructions
- Same-day local delivery - order picked at store, delivered locally (often via apps like Shopify Local Delivery)
Each has its own admin configuration but shares the underlying location + inventory + fulfillment model.
Reporting and BOPIS-specific metrics
The merchant wants to track:
- Pickup order volume per store
- Pickup-vs-shipping mix
- Time from order to pickup completion
- Customer satisfaction with pickup experience
Shopify analytics has basic reporting; richer views come from BYOD or app-based dashboards.
What ships with a BOPIS implementation
A working BOPIS setup has:
- Locations configured with accurate addresses and hours
- Inventory allocated per location matching physical reality
- Local pickup enabled with clear instructions per location
- Product pages rendering real-time pickup availability
- Checkout offering pickup where appropriate
- Post-order staff workflow for pickup fulfillment
- Customer notifications on ready-for-pickup status
- Reporting showing pickup volume and operational metrics
BOPIS is one of Shopify's stronger out-of-box omnichannel features. Most of the work is configuration, not code. The operational discipline (inventory accuracy, staff workflow) is where merchants need to invest.