A pickup capacity cap is a staffing tool. It exists because a counter can stage six collections in a two-hour window and not sixteen, and because “everyone at 5pm on Friday” is what happens by default when nobody is asked to pick a time.
It is not an inventory tool, and treating it as one is the most common way merchants end up with a system that annoys shoppers without fixing anything.
Native Shopify has none of this
Local pickup is on or off per location. There is no daily cap, no per-window cap, and no signal when a location is saturated. Shopify will happily take twenty collections for tomorrow morning at a shop with one person on the counter.
You can’t approximate it with inventory either — dropping stock to throttle collections breaks your shipping orders and your reports at the same time.
Cap the window, not the day
A daily total is easy to build and nearly useless to a shopper, because the question they’re answering is “can I come Thursday morning?” — and a daily number can’t answer it. It also does nothing about clustering: twenty orders capped at twenty still all arrive at five.
The cap that changes behaviour is attached to the slot the shopper is choosing, per store. Once a window is full it stops being offered, and the next shopper picks a different one — which is exactly the behaviour you wanted.
Blackout dates are the same tool at a coarser grain: a whole day taken off the calendar for a holiday, a stocktake, or a refit. You’ll edit those more often than you edit the caps.
Hide it, don’t block it
This is the decision that matters, and the intuitive answer is the wrong one.
Blocking means the shopper reaches checkout and gets an error: this slot is full, choose another. It looks rigorous. What it actually does is take an order you had already won — cart built, payment ready — and hand the shopper a reason to leave. The failure lands at the worst possible moment, on the person least able to fix it.
Hiding means the full slot is never offered. The shopper picks from what’s available and never learns anything went wrong. Nothing is lost, because nothing was ever promised.
The cost of hiding is a real one, and worth stating plainly: capacity becomes soft. A shopper sitting on a page that loaded ten minutes ago can still book a slot that filled in the meantime, because their page doesn’t know. So one extra collection lands in a window you’d closed.
Weigh those two against each other for a staffing cap and it isn’t close. One extra person at the counter is absorbable. A checkout error is a lost sale plus a support email — and it happens to the shopper who was trying hardest to buy.
Consistency is the part people get wrong
Whatever you do, the storefront and checkout have to agree.
If your calendar hides a full slot but Shopify’s checkout still offers that pickup option, shoppers will find the gap — express checkouts skip the cart entirely, and a shopper who bookmarked a link comes in sideways. Then you have the worst of both: a cap that doesn’t cap, and a shopper holding a confirmation for a window you closed.
The fix is that both surfaces read the same record. On Shopify that means the full-slot result lives somewhere both the storefront and a checkout customization can read — and the checkout side only ever hides options, never rejects them. Same rule as above, applied one layer down.
What to set, in order
- Slot length and opening windows first — a cap is meaningless until the windows exist. See pickup time slots on Shopify.
- A prep lead time, so nobody books the window that starts in ten minutes.
- A cap per slot, per store. Start from what your counter genuinely handles, not from a round number.
- Blackout dates for the closures you already know about.
- Leave stock out of it. Whether the item is on the shelf is a different question entirely.
How BopiSafe does it
BopiSafe caps per slot, per store, and the cap is soft by design. When a slot fills it disappears from the calendar in the storefront and from Shopify’s checkout — both read the same record, so the two never disagree. Nothing in the app can stop a shopper with an error; the only thing it ever does at checkout is hide options that aren’t available.
Blackout dates, prep lead time, per-store overrides and the booking horizon come with it, in the free plan, at any number of stores — up to 100 pickup orders a month. See pricing for where the line is.
Written by the BopiSafe team — we build store-pickup tooling for Shopify merchants. Have a question this guide didn’t answer? Email miles.bopisafe@outlook.com.