Blog

Shopify Pickup Location Capacity Management Guide

2026-05-22 · BopiSafe Team

Native Shopify pickup has no per-location capacity cap — once you enable pickup at a store, it keeps accepting pickup orders even after staff can’t prep them. Capacity is something you layer on: a daily or hourly cap per location, plus marking full locations unavailable at checkout. Without it, “ready in 2 hours” quietly stops being true.

This guide walks through how to think about pickup capacity as a staffing decision, how to set the right cap, and how to make sure the system stops taking orders the moment your team is full.

Why does Shopify lack per-location pickup capacity?

Shopify’s location model was built for inventory and address routing, not throughput. A location has stock, a pickup-enabled flag, and an address. There is no field for “how many pickups per day can this location handle,” because the platform’s job stops at “is the item in stock here.”

That made sense when local pickup was a rare exception. It does not make sense now that pickup is 20-40% of orders for many merchants. The gap shows up the moment a store has more pickup demand than staff bandwidth: orders pile up, the “ready in 2 hours” promise slips to 6 hours, customers show up to a stockroom of un-prepped orders, and the support inbox fills with refund requests.

The fix is to install a capacity layer. The math behind it is staffing math, not engineering.

How do you calculate pickup capacity for a location?

Pickup capacity is the maximum number of orders a location can prep and hand off per day without quality degrading. It has three inputs:

  1. Prep time per order — typically 4-8 minutes for a small-item store, 10-15 minutes for a furniture or grocery store
  2. Staff-minutes available per day — the hours your dedicated picker(s) are on, in minutes
  3. Overhead and surge factor — staff take breaks, fielding pickup customers slows other tasks, and demand is not evenly distributed

The rule of thumb: take your picker’s available minutes, multiply by 0.7 to account for overhead, then divide by prep time per order. The 0.7 is a discount that holds up across most retail BOPIS contexts. Some operations need 0.6 (high foot traffic, frequent interruptions), some can hit 0.8 (dedicated picker with no other duties).

Worked example: a store with one picker on 9am-3pm (360 minutes) prepping orders that take 6 minutes each. That is 360 times 0.7, divided by 6, which comes out to 42 orders per day. That is your starting cap. Watch the first two weeks and adjust — if quality holds at 42, push to 48. If staff are stressed, drop to 35.

If your team can pack 30 orders a day before quality drops, set the cap at 30 and make sure the system stops at 30. The whole point of capacity enforcement is removing the gap between what your staff can do and what your store will promise.

Daily caps vs hourly slots

Two scheduling models cover most use cases.

Daily caps are the simpler model. The store accepts X pickups per calendar day. When the count hits X, the location shows as unavailable in the pickup picker until midnight — visible but unselectable. Easy to communicate (“we accept 40 pickups a day at this store”), easy for staff to plan around, easy for customers to understand.

Hourly slots are the right model for stores that promise pickup-time precision (“ready between 2pm and 3pm today”). The day is divided into one-hour windows, each with its own cap. Customers pick a slot at checkout. When a slot fills, it disappears from the picker.

ModelBest forComplexityCustomer experience
Daily capMost BOPIS storesLow”Pickup today” generally honored
Hourly slotsTime-precise pickup (grocery, prepared food)HighCustomer chooses exact window
Hybrid (daily + surge slots)Stores with peak hoursMediumDaily cap plus reserved slots for rush

Pick the simplest model that matches what you actually promise your customer. Most stores never need hourly slots — they need a reliable daily cap that holds.

Staffing math: how many pickers do you need?

Capacity is half the equation; staffing is the other half. The right number of dedicated pickers depends on your daily pickup volume:

Below 20 orders, dedicating staff is over-investment; the picker stands idle most of the time. Above 50, sharing duties means orders pile up during in-store rushes and quality drops. The transition between “shared” and “dedicated” is where most stores feel pickup pain — they have grown past shared staffing but haven’t yet committed to a dedicated picker.

According to McKinsey’s research on omnichannel fulfillment, retailers that invest in dedicated BOPIS staff at the right volume threshold see 30-40% lower fulfillment time and meaningfully higher repeat purchase rates from pickup customers.

How do you stop at-capacity locations from taking orders?

This is the enforcement layer. Once a location hits its daily cap, it should stop being selectable in the pickup picker until the cap resets. There are two ways to make this happen on Shopify.

Option A: Manually disable the location

The lowest-effort option. When you see the day’s pickup count approaching the cap, someone on your team goes into Shopify Admin → Settings → Locations and toggles pickup off for that location. Reverse it the next morning.

This works only at very low volume and high staff attention. It misses surges (40 orders come in between 9am and 10am, capacity is blown before anyone checks), and it requires someone watching dashboards all day. Use only as a stopgap.

Option B: Let the app enforce capacity at checkout

This is the customer experience you actually want. The moment a location hits its cap, it greys out in the pickup picker and the next-nearest store takes its place. Nothing changes for the customer except which store gets selected; nothing changes for the staff except they stop receiving orders they can’t fulfill.

Behind the scenes, the app keeps a live count of today’s pickups per location and compares it to the cap you set. As soon as the count meets the cap, the location is marked unavailable in the picker and across every express checkout surface (Shop Pay, Apple Pay, Google Pay) — visible but unselectable. There is no slowdown at checkout — the customer sees the picker render with every store, the full one greyed out, no different from before.

For surge protection, the cap can also be enforced per hour. If you know the rush hits between 11am and 1pm and your team can handle 8 pickups in that window, set an hourly cap of 8 and the location goes quiet from 11am once the eighth order lands, then comes back at noon with a fresh budget.

Integration with the rest of your BOPIS stack

Pickup capacity does not live in isolation. It stacks with three other backstops:

A clean BOPIS stack runs all four checks (inventory, safety stock, capacity, mixed-cart routing) together. Splitting them across different apps creates gaps where orders leak through.

What goes wrong without capacity enforcement?

The failure modes are predictable and cumulative.

Week 1: pickup goes live, volume is low, everything works. Staff handle pickup alongside other duties.

Week 4: volume crosses 20 pickups/day. Orders start staging up in the morning rush. Customers wait 20-30 minutes at handoff because the order wasn’t prepped before they arrived.

Week 8: volume crosses 35. The “ready in 2 hours” promise breaks regularly. Customers email to ask if their order is ready. Support ticket volume rises. Your team feels it.

Week 12: a 60-order Saturday hits. Half the orders aren’t prepped by close. Customers who showed up Sunday for “ready” orders find the store unprepared. Refunds, one-star reviews, churn. The pickup customers you worked hardest to win are the ones you lose.

Every store that ships BOPIS without capacity enforcement reaches Week 12 eventually. The fix is to install the cap before Week 4, not after Week 12.

Where Shopify defaults stop and BopiSafe begins

Native Shopify gives you pickup enable/disable per location. That’s the whole capacity surface. Everything else — daily caps, hourly slots, automatic hiding at capacity, weekday variation, safety-stock integration — needs to come from somewhere else.

BopiSafe ships capacity enforcement out of the box. Per-location daily and hourly caps, weekday variation, automatic hiding of full locations at checkout, integration with safety-stock and inventory, and a dashboard that shows the day’s pickup count against cap per location. No slowdown at checkout. No manual toggling on a busy Saturday.

The store picker that customers see in the pickup group of a split checkout is also driven by capacity — locations at cap don’t appear, and remaining locations are sorted by priority and distance with per-store stock status. The customer never sees a store they can’t actually pick up from.

Written by the BopiSafe team — we build BOPIS infrastructure for Shopify merchants. The 0.7 overhead factor in the capacity formula is from watching dozens of stores over their first three months of pickup.

Common pitfalls

The five mistakes that undermine capacity rollouts:

  1. Setting the cap too high to start. Always start low. Raising a cap is easier than apologizing for unfulfilled orders.
  2. Using the same cap weekday and weekend. Saturday is not Tuesday. Model weekday variation from day one.
  3. Manually toggling pickup off and on. It’s a stopgap, not a strategy. Move to automatic enforcement within the first month.
  4. Ignoring the overhead factor. Capacity calculated against full staff-minutes will be 30% too high. Discount.
  5. Treating capacity as separate from inventory and safety stock. All three backstops must run together or the gaps between them leak orders.

Next steps

Have a capacity edge case this guide didn’t cover? Email support@bopisafe.com.

Frequently asked questions

Does Shopify natively support per-location pickup capacity?

No. Shopify lets you enable or disable pickup per location, but there is no native daily or hourly cap, no slot booking, and no way to mark a full location unavailable at checkout. If your downtown store is staffed for 30 pickups a day, the 31st, 50th, and 100th order still go through — capacity is something you enforce at the checkout layer.

How do I calculate the right pickup capacity for a location?

Start with average prep time per order (typically 4-8 minutes including pulling stock, staging, and notifying the customer), divide your available pickup-prep staff-minutes per day, and discount by 25-30% for surge and breaks. A two-person store with one dedicated picker for 6 hours can typically handle 30-40 orders per day before quality degrades.

Can I set hourly pickup slots like Apple's "ready in 1 hour"?

Yes, but not with Shopify alone. You need a scheduling layer that lets customers choose a pickup time at checkout, with a cap per slot. The platform stores the booking, but it does not enforce the cap or render the slot picker.

What happens when a pickup location hits capacity mid-day?

With native Shopify, nothing — the location keeps accepting pickup orders until you manually disable it. With an app like BopiSafe, the location shows in the picker as unavailable the moment it hits the cap — customers can't select it, so they choose a different location or switch to shipping.

How does pickup capacity differ from inventory limits?

Inventory is "do we have the unit." Capacity is "can staff prep and hand off this many orders today." A store with 200 units of stock but one staffer can still only handle 30 pickups a day. Both backstops are needed — running out of inventory and running out of staff are different failure modes.

Can I have different capacity rules per weekday?

Yes, and you should. Weekend pickup demand is typically 2-3x weekday demand, and many stores have different staffing on weekends. A capacity rule that says "30 per day" without weekday context will be too high on Monday and too low on Saturday.

Does pickup capacity work with same-day fulfillment promises?

Yes — in fact same-day promises only work with capacity enforcement. If you promise same-day pickup and accept unlimited orders, the 35th customer of the day won't get their order until tomorrow, and your promise broke. Capacity is what makes "ready in 2 hours" a real promise instead of a marketing claim.

How does an app stop a full location from taking orders?

BopiSafe (and similar apps) read each location's order count throughout the day, compare it to the cap you set, and mark the location unavailable in the pickup picker once the cap is hit. The customer can't select it and picks the next-nearest store instead. No staff intervention, no manual toggling, no slowdown at 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.