Story · Click and Pick
She ordered online to skip the queue. Then she stood in it anyway, holding a phone.
Collection is the cheapest delivery a retailer will ever offer — the customer does the hard part. It only works if the shop knows they are coming.
The shop and the people in this story are an illustration, not a customer. The software is real; the problem is one we keep being called about by retailers running more than one address.
Saturday, 11:05
“Collection” meant the same counter as everyone else.
Ngozi paid online on Friday night so Saturday would be quick. She arrives, joins the till queue behind a full trolley, and reaches the front holding a confirmation email nobody has seen.
The assistant is helpful and completely unprepared. He checks a screen, then a back room, then asks a colleague. Eleven minutes.
She saved nothing. Next time she will just shop normally, which is the quiet cost nobody puts in a report.
One collection, start to finish
- Fri 21:40Paid online, pickup chosen
- Sat 11:05Walks into the branch
- Sat 11:16Leaves with the order
11 min
At the counter, after a journey made to avoid exactly that.
Behind the counter
The branch found out when she did.
Nothing told that shop an order existed. It sat in a system head office watches and the floor does not, and the first signal was a customer at the counter asking for it.
You cannot prepare for an order you have not been told about. Everything that went wrong after that point was downstream of that one fact.
Collections due at this branch today
Nothing here.
The order existed. It just did not exist anywhere the shop floor could see it, and nobody can prepare for that.
The detail everyone skips
You cannot collect from a closed shop.
Each pickup location carries its own opening schedule: several intervals in a day for a branch that shuts at lunch, holidays, and one-off dates for the Saturday it opens late.
The schedule is read in the location's own timezone, not the server's. A customer is never offered a time the shop will not be open, because the hours are data the checkout reads rather than a promise on a contact page.
Yaba branch · opening schedule
- Monday to Friday
- 08:00–13:00 · 15:00–19:00
- Saturday
- 09:00–14:00
- Sunday
- Closed
Special date
1 October — closed, public holiday
Read in the branch's own timezone. A slot is never offered outside these hours.
Picking a time
A thirty-minute slot the shop agreed to.
At checkout Ngozi chooses the branch, a date, a thirty-minute slot inside its opening hours, and leaves a note if she needs to. All of it is validated on the server, so a stale page or a hand-edited request cannot book a time that does not exist.
That slot is the whole mechanism. It turns an order the branch did not know about into an appointment it can see, and it costs the customer nothing but a tap.
Choose a collection time
Saturday 24 October
- 12:30
- 13:00
- 13:30
- 15:00
- 15:30
- 16:00
Crossed-out times fall outside the branch's opening hours, so they cannot be chosen — and the server checks again when the order is placed.
Which branch
Nearest first, if she allows it.
A chain with nine locations presents a scrolling list to someone who only wants the one near their office. Click and Pick can sort by proximity and put the closest at the top.
It asks first, and it does not keep the answer. The position is used to order the list and is never stored — the same standard we hold the rest of the site to, applied to the one feature where it would be easiest not to bother.
Nearest first
- Yaba1.2 km
- Surulere4.8 km
- Ikeja12.6 km
Sorted by distance only if the customer allows it. The position orders the list and is never stored.
Paying
Some customers will pay at the counter, and should.
Click and Pick adds Self pick-up as a shipping method — no delivery charge, because there is no delivery — and Pay on pickup as a payment method.
In a market where a card is not always the instrument of choice, letting someone reserve online and pay in person is not a fallback. For a share of customers it is the only version of this that they will actually use.
Shipping method
Self pick-up
₦0
No delivery charge, because nothing is being delivered.
Payment method
Pay on pickup
at the counter
Only offered once pickup is the shipping method. It never appears on an order being delivered.
Ready
Two messages, and nobody guessing.
When the order is packed, staff set it to Ready. The customer gets an email telling them where and when, and the pickup location gets a notification of its own. Both are Flow Builder flows, so a chain that would rather send SMS sends SMS.
On the order itself there is a Pickup information tab: location, date, slot, note. Whoever is on the counter at four o'clock can see what whoever took the order at ten already knew.
Ngozi walks in, says her name, and leaves. That is the entire product.
To the customer
Your order is ready at Yaba. Saturday 24 October, 15:30–16:00.
To the branch
One collection due Saturday 24 October, 15:30–16:00.
Pickup information
- Location
- Yaba
- Slot
- Sat 24 Oct · 15:30
- Note
- Collecting after 3
Two sides of the same collection
For the person collecting
- A time they chose, inside hours the shop is actually open.
- No delivery fee, because nothing is being delivered.
- The option to pay at the counter rather than up front.
- An email that says ready, and a branch that is expecting them by name.
For the chain
- The cheapest fulfilment there is: no rider, no route, no delivery cost to recover.
- Branches told about their own orders, before the customer arrives rather than at the counter.
- Opening hours, holidays and split shifts held as data, per location, in the right timezone.
- A customer in the shop, where the second item in the basket happens.
Straight answers
What this is not
The honest edges, including the ones that matter most to a chain. A plugin that claims everything is a plugin you find out about later.
- A slot does not hold stock
- Choosing a time reserves the time, not the item. Nothing in the plugin touches inventory, so whether the last one is still on the shelf when they arrive is your stock control's problem, not this plugin's.
- No cap on a slot
- Ten customers can choose the same thirty minutes. Capacity limits, cutoffs and blackout dates are a deliberate extension point in the code, not a feature that ships today — for a counter with a queue of one that is fine, and for a flagship branch on a Saturday it may not be.
- Shopware 6.7 only
- Unlike our payment plugins, this one does not support 6.6. If you are on 6.6 the upgrade comes first.
- It does not pick the order
- Staff still pull the items and set it to Ready. There is no picking app, no warehouse workflow and no barcode scanning — the plugin handles the appointment, not the labour.
- Nearest-first needs permission
- Location sorting only works if the customer allows it and their browser supports it. Everyone else sees the plain list, which is why the list has to be good on its own.
- Pay on pickup carries no-show risk
- An unpaid reservation is a promise, not a sale. The plugin gives you the appointment and the evidence of it; deciding how long to hold goods for someone who never came is a policy you write, not a setting.
Not a mockup
It is running on our demo store right now.
Self pick-up sits in the shipping selector at shophub.kommandhub.dev. Choose it and Pay on pickup appears in the payment list — it is not offered on orders that are being delivered. Try to order without choosing where to collect and the checkout answers:
Please select a valid pickup location before placing your order.
No default branch, no nearest guess, no order the counter cannot honour. The same refusal the delivery plugin makes about an address, made here about a location.
Open the demo storeClick and Pick is released, and documented.
It is a paid, proprietary plugin for Shopware 6.7, installed from our own Composer registry rather than public Packagist. The documentation is open to read before you talk to anyone — start there, then tell us how many counters you are running.