BopiSafeInstall on Shopify
Blog

Pickup Time Slots on Shopify: How to Set Them Up

6 August 2026 · BopiSafe Team

Shopify’s native local pickup can tell a shopper “usually ready in 24 hours”. It cannot let them say “Thursday morning”. For a lot of stores that gap is fine. For anyone who stages orders — bulky goods, assembled items, refrigerated, high-value, anything a person has to physically pull and set aside — it is the difference between a smooth counter and six people arriving at once on Friday at 5pm.

This is what a pickup slot system is actually made of, and where each piece has to live on Shopify.

What native gives you

Per location, you can set a pickup instruction and an estimated ready time. That estimate appears at checkout and in Shopify’s own “Ready for pickup” notification. It is genuinely useful and it is free.

What it isn’t is a booking. The shopper never states an intention, so nothing about their arrival reaches your order. Your staff prepare in the dark and the counter absorbs the variance.

The six pieces of a real slot system

Every one of these exists because leaving it out breaks something specific.

1. Opening windows, per weekday. Not “9 to 5” but the hours you can actually hand things over — which is usually narrower than your trading hours, because the counter is staffed for part of the day.

2. Slot length. Two hours is the common default. Thirty-minute slots look precise and generate a calendar nobody can staff; a whole day isn’t a booking. Pick the granularity your team can actually be ready for.

3. Prep lead time. The hours between “order placed” and the earliest slot you’ll offer. Without it a shopper books the window that starts in ten minutes and your staff find out when they walk in. This is the single most valuable setting in the list.

4. Blackout dates. Public holidays, stocktake, the day the shop is closed for a refit. They have to be a first-class setting, because they are the thing you’ll edit most often.

5. A booking horizon. How far ahead the calendar goes — two weeks is a sane default. Without an end date the calendar is infinite and shoppers book collections against stock you haven’t ordered yet.

6. A capacity cap per slot. How many collections one window can absorb. That one deserves its own discussion: see limiting pickup orders per slot.

Store-wide defaults, then per-store overrides

Set one schedule that applies everywhere, then override the shops that differ. This ordering matters more than it sounds:

Where the choice has to happen: before checkout

Shopify’s checkout has no field for a collection time. You cannot add one on a standard plan, and the ways around it are either Plus-only or fighting the platform.

So the choice belongs on the product page or in the cart, and it has to travel to the order as a cart attribute — which native cart-to-order flow carries through, including through Shopify’s own mixed-cart split. That is also why the time has to be collected before an express checkout starts: Shop Pay and Apple Pay skip the cart page, so anything expecting the shopper to pass through it will simply never run.

A calendar beats a row of date buttons here, for a boring reason: once your booking horizon is longer than a week, “the Saturday after next” is something you find by looking at a month, not by reading a horizontal strip of labels. Days you can’t serve should keep their number and just be unpickable — a month with holes in it still reads as a month.

Getting the time in front of your staff

The order is the only place that matters. Whatever collects the time has to write it somewhere you’ll actually see in the Shopify admin — a tag on the pickup order (Pickup 2026-08-06 10:00-12:00) is enough to sort a morning’s collections and filter the order list.

One trap worth knowing: a cart attribute whose name begins with an underscore is hidden from the admin order page by design. It is still readable through the API, but if a tool relies on those alone, your order page will look empty and you’ll assume nothing was captured.

What not to build

How BopiSafe does it

BopiSafe puts all six pieces above in the free plan: a month calendar in the storefront picker, store-wide defaults with per-store overrides, slot length, lead time, blackout dates, booking horizon, and a cap per slot. Full or closed days stay visible but unpickable, and a slot that fills disappears from the storefront and from checkout, because both read the same record.

The chosen time rides to the order as a cart attribute and is written onto the pickup order as a tag, so it’s there in your admin. Nothing else changes: the order is Shopify’s own pickup order, and Shopify’s own notifications do the talking. Free up to 100 pickup orders a month, at any number of stores — pricing.

Written by the BopiSafe team — we build store-pickup tooling for Shopify merchants. Have a question this guide didn’t answer? Email [email protected].

Frequently asked questions

Does Shopify have pickup time slots natively?

No. Native local pickup has a per-location "usually ready in" estimate — a few hours, a day, whatever you set — and that is the whole scheduling story. There is no date picker, no time window, and nothing on the order telling you when the shopper intends to arrive.

Where should the shopper choose a pickup time?

Before checkout. Shopify's checkout has no field to put a collection time in, so the choice has to happen on the product page or in the cart and travel to the order as a cart attribute. Anything that tries to add it inside checkout is either Plus-only or fighting the platform.

What does a pickup slot system actually need?

Six things: opening windows per weekday, a slot length, a prep lead time so nobody books the next ten minutes, blackout dates for holidays and stocktakes, a booking horizon so the calendar has an end, and a capacity cap per slot. Anything less and you will be fixing it by hand within a month.

Can different stores have different pickup hours?

They should. Set a store-wide default so every location works on day one, then override the shops that differ — a mall unit with late hours, a warehouse counter that only hands over in the morning. A system that forces one schedule on every location gets abandoned the first time a store's hours change.

Where does the chosen time show up for my staff?

On the order. The clean way is to write it onto the pickup order itself so it is visible and filterable in the Shopify admin — a tag like "Pickup 2026-08-06 10:00-12:00" is enough to sort a morning's collections. Note that a note attribute whose name starts with an underscore is hidden from the admin order page by design, so a system relying only on those will look empty to you.

Does a pickup time survive Shop Pay and other express checkouts?

Only if it was already attached to the cart before the express button was pressed. Express buttons skip the cart page entirely, which is why a good implementation catches the buy-now click, collects the store and time first, and then lets the express flow continue.

Pickup that shows the real number.

Every store's available quantity, a store picker and a pickup time — on Shopify's own checkout. Free up to 100 pickup orders a month, at any number of stores.

Questions this post didn't answer? Email [email protected] — we reply within 24 hours.