AI in Retail Commerce: Click-and-Collect for a Single Local Shop

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI in Retail Commerce: Click-and-Collect for a Single Local Shop.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI in Retail Commerce: Click-and-Collect for a Single Local Shop.

Switch on pickup in the till or online-shop system you already have, hold back a small stock buffer so the last shelf unit is never sold online, and let AI draft the confirmation and ready-to-collect messages and sort pick lists by shelf. A person counts the items before the ready message goes out.

Chains tend to solve click-and-collect with dedicated teams and custom software; a single shop solves it with a counted shelf, a printed list and four messages. The AI does paperwork (arithmetic on your sales export, message wording, list sorting) and the platform does the status changes. The broader tutorial on click and collect for a small shop covers collection rules and the full message set; this one covers the parts that decide whether the stock side holds up.

Follow me on Instagram@sagnikteaches

Check what your till or web platform already does

Before any AI, find out which of five jobs your system does by itself. I read the pages below in October 2026; menus move, so treat the paths as a map and confirm them in your own admin.

Connect on LinkedInSagnik Bhattacharya
JobShopifySquare OnlineWooCommerce
Switch pickup onSettings, Shipping and delivery, Additional delivery methods, Pickup in store, then the locationSettings, Account & Settings, Fulfillment methods, Online pickup & delivery, then Set up locationWooCommerce, Settings, Shipping, Shipping zones, add the Local Pickup method (the older setup; block checkout has its own instructions)
Show a prep timeThe processing time in "Expected pickup date" appears at checkoutAutomatic times that weigh prep time, how far ahead people can order and limits on simultaneous pickups, or manual instructionsNot covered on the pages I read
Send a ready messageMarking an order ready sends a "Ready for pickup" email; pickup instructions go in the location settings; the page does not mention textsOrder status texts (confirmed, ready for pickup, shipped) and an email when an order is ready; some text options need a Plus or Premium planA "Completed" email exists, but no ready status is listed, so expect an extension or custom email
Handle stockBy default, pickup is offered only if the whole order is in stock at that location; the till warns but lets staff sell at zeroEach item needs Pickup assigned in the item library"Processing" is the status where stock is reduced
Record shelf positionsBin locations, set by CSV import, tied to picking from the pick listNot checkedNot checked

If your till is something else, put the same five questions to its vendor in writing. A one-line answer with a menu path is the test; a vague answer usually means the feature is missing, and a plugin or a manual step will have to fill the gap.

Subscribe on YouTube@sagnikteaches

The stock buffer rule, with numbers

A buffer is the number of units you refuse to sell online, so a customer is never told "ready" for something that went out of the shop door an hour ago. Without one, the last unit of every popular product is promised twice. The rule I would start with has three parts: hold back at least one unit; hold back the units the shop normally sells in a three-hour stretch (your slowest realistic order-to-pick gap); and add one more unit to any item that failed a recount in the last quarter. The online offer is the stock on hand minus that buffer, never below zero.

Take an illustrative garden-supplies shop, open 54 hours a week (nine hours, six days):

ItemOn handSold a weekFailed recount?Three-hour salesBufferOffered online
Potting compost, 20 litre4084No4.7, rounded up to 5535
Watering can, 5 litre43No0.2, so the minimum of 1 applies13
Gift tin21Yes0.1, minimum 1, plus 1 for the recount20 (shop only until recounted)
Gardening gloves, medium1214No0.8, rounded up to 1111

The arithmetic belongs in a spreadsheet laid out like the table: stock on hand in column B, weekly sales in C, the recount flag (0 or 1) in D and 54 open hours. The three-hour sales in E are =C2/54*3, the buffer in F is =MAX(1,ROUNDUP(E2,0))+D2 and the online offer in G is =MAX(0,B2-F2). The guide to Google Sheets AI prompts is useful if you would rather describe the formula than type it.

Where AI earns its place is the first pass over a long export, plus the explanation. Paste the export with customer details absent (stock exports have none) and ask for working:

Here is a stock export for a small shop: item, on_hand, units_sold_last_4_weeks, failed_recount (0 or 1).
The shop is open 54 hours a week. For each item calculate:
weekly_sales = units_sold_last_4_weeks / 4
buffer = the larger of 1 and (weekly_sales / 54 * 3, rounded UP), plus failed_recount
online_offer = on_hand minus buffer, never below 0
Return a table with those columns, then list every item whose online_offer is 0, and show your
working for the first three rows. Do not change any figure I gave you.

[paste export]

Check the working before you trust the rest. In an illustrative run, the assistant returned a buffer of 1 and an online offer of 1 for the gift tin, because it ignored the recount flag; the working it showed for the first three rows made the gap visible. That is the pattern to expect: a model reads columns confidently and drops a rule now and then. Verify three rows by hand, then paste the formula down the sheet for the other nine hundred.

Then apply the numbers in the system. On Shopify, units moved from Available to Unavailable are stocked but not sellable, and Shopify names safety stock as one reason to do it; check the labels on the inventory adjustment screen in your admin, and remember that the till lets staff sell at zero after a warning, so the held-back units can still go out of the shop door when staff choose. On other systems, lower the number the website sees by the buffer and keep a column in your sheet recording what you took off, so you can restore it. Items such as the gift tin that fail the rule stay off the online shop altogether. Review the buffers monthly: add one to any item short-picked twice, take one off an item with eight clean weeks.

For forecasting what to reorder rather than hold back, the tutorial on forecasting stock and reordering with AI picks up where this leaves off.

Setting the prep-time promise for a shop with one pair of hands

The promise you print at checkout does more for reliability than any other setting. Shopify shows the processing time you choose under "Expected pickup date", and Square can weigh prep time, how far ahead customers may order and a cap on simultaneous pickups. Neither can know how busy your counter is, so base the number on your slowest realistic day, not the average one.

Work it out from your own timings. Say an order takes five minutes to pick, bag and mark ready, there is one person on the floor, and the till is busiest between 12:00 and 14:00. Three orders landing in the same busy hour is 15 minutes of picking taken from the counter, and the person may only be free at the quiet end of that hour. A two-hour promise inside opening hours covers it. Orders placed late in the day or when the shop is shut need their own rule, so write the promise as a small table the owner approves and then reads out to the platform settings:

Order placedPromise shownReason
Open hours, up to 15:30Ready within 2 hoursCovers one busy hour with one person on the floor (illustrative)
After 15:30 on a weekdayReady from 10:00 next opening dayLate picking collides with closing and cashing up
Saturday after 14:00Ready from 10:00 on MondayThe shop is closed on Sunday
Holidays and stock-take daysNext normal opening daySquare lets you mark restricted dates; on other systems, change the processing time by hand

An assistant is useful here only for wording: it can turn the table into one clear line for the checkout page and the confirmation message. The numbers come from the owner's stopwatch, and the first fortnight of ready times will show whether they are honest.

Four messages and the rules each one must obey

Four messages cover almost every click-and-collect order: order received, ready to collect, a reminder before the hold ends, and an item-unavailable note that asks before substituting. The wording is the easy part. The risk is that an assistant invents policy, such as an ID requirement or a promise to reserve stock, so give it the rules and forbid anything else.

Write four customer messages for a small shop's click-and-collect orders: order received, ready to collect,
reminder after two days, and an item-unavailable message that asks whether to substitute.
Use only these facts: collection hours Monday to Saturday 9:00 to 17:30, closed Sunday; orders held 3 days;
quote the order number at the counter; phone [phone].
Merge fields, used exactly: [first name], [order number], [item list], [ready time], [hold until], [substitute].
Each under 60 words. No exclamation marks, no emoji. Never say an item is "reserved" or "in stock"
unless it is a merge field. Never invent a time, a discount, parking or an ID rule.

A first attempt at the ready message might come back as: "Great news, [first name]! Your order is ready and reserved for you. Pop in within 2 hours and bring ID. Free parking at the back." Four slips in four sentences. The exclamation mark and "great news" break the tone rule. "Reserved" is a promise the rules did not make. "Within 2 hours" is an invented deadline, and "bring ID" and "free parking" are invented policies. The repaired message reads: "Hello [first name], your order [order number] is ready to collect. We are open Monday to Saturday 9:00 to 17:30, and we will hold it until [hold until]. Please quote the order number at the counter. Questions: [phone]."

The substitution message deserves its own rule: never swap an item without asking. The version that works names the original and the proposed substitute and asks for a yes or no by a stated time, for example: "Hello [first name], we are out of [item list] from order [order number]. We could offer [substitute] instead. Reply yes to swap or no to remove the item and refund it. If we have not heard by [ready time], we will pack the rest and refund [item list]."

Paste each approved version into the platform's own templates: the pickup instructions field in the location settings on Shopify, the status alerts in Square's communications settings, or the email settings if you run WooCommerce. After that, the platform fills in the merge fields and the model is out of the loop. If your shop sells repaired or made-to-order goods, the tutorial on ready-for-collection texts for a repair shop shows the same idea with different timing.

Count at the shelf before anyone is told it is ready

Stock exports lie in small ways: a unit damaged and binned without an adjustment, a delivery put on the wrong shelf, a till sale rung up as a different size. The cheapest correction is to make picking a count. The picker looks at the bin, counts the units, and if the number differs from the system's, records an adjustment before carrying on. Over a month, every short-pick tells you which products to trust less.

What the picker findsDo thisMessage
Exactly what the order saysPack it, tick it, mark the order readyReady to collect
One line short, rest presentPack the rest, hold the order, contact the customerItem unavailable, with a yes or no question
Same product in another size or packSubstitute only after a yesThe substitution message above
Nothing suitableRemove the line, refund it through the platform, correct the stock countItem unavailable, with an apology and a restock date only if you know one

Keep a short-pick log: date, item, bin, system quantity, counted quantity, what you did. After four weeks, paste the log into an assistant (item names and numbers only) and ask it to rank the items by short-picks and mismatches and to propose a recount list for Sunday. An illustrative result for a log of 11 short-picks: potting compost three times (system showed 8, counted 5, 6 and 7), the gift tin twice, and six one-off items, which puts compost and the gift tin at the top of the recount list. The assistant's list is a suggestion, so check it against the log before anyone spends Sunday counting, and note that the recount flag in the buffer sheet comes from this list.

The same habit makes your full stocktake faster with a phone scanner, because the shelves you counted at pick time are already close to right.

A pick list that follows the shelves, not the order numbers

A list sorted by order sends the picker round the shop once per order. A list sorted by shelf, built from all open orders at once, walks the shop once. Shopify's help page on bin locations ties them to picking orders from its pick list, and the principle works on any system: give each product one shelf or bin name, keep the map in a sheet, and sort lines by it.

Take three illustrative orders and a bin map: gloves in A-02, trowels in A-04, watering cans in A-10, compost in B-03, bird seed in C-01.

OrderItems
#1042Compost 20 litre x 2, gloves medium x 1
#1043Watering can x 1, trowel x 1
#1044Gloves medium x 2, bird seed 2 kg x 1

The batch pick list should read: A-02 gloves medium, 3 (#1042 x 1, #1044 x 2); A-04 trowel, 1 (#1043); A-10 watering can, 1 (#1043); B-03 compost, 2 (#1042); C-01 bird seed, 1 (#1044). One lap, five bins, eight items, three bags to label.

Below are today's click-and-collect orders and my shop's bin map. Make one batch pick list in walking
order, one line per bin: bin, item, total quantity, and which order numbers it is for. Treat A-02 as
coming before A-10. Put any item with no bin at the end under NO BIN. Then give me, per order, the items
to check when bagging. Do not invent items, bins or quantities.

BIN MAP: [paste]
ORDERS: [paste order numbers and items only]

The realistic mistake here is alphabetical sorting. If the bins are named A-2 and A-10, a plain sort puts A-10 first, and the picker doubles back. Shopify's own bin guidance says bins sort alphabetically and recommends names like A-02 for exactly this reason. Name bins with leading zeros once, and every list, human or AI, comes out in walking order. Also read the assistant's list against the orders: if a quantity has changed or a line has vanished, bin the list and sort the lines in the spreadsheet instead.

Label each bag with the order number and the item count, and stage the bags on one shelf near the counter in order-number order. The ready message is sent when the bag lands on that shelf, not before.

A week in a garden-supplies shop: 28 orders, 61 items

Here is how an illustrative first full week might look once the buffer, the messages and the batch pick list are in place, with one person covering the counter and the picking.

DayOrdersItemsShort-picks
Monday370
Tuesday491
Wednesday360
Thursday5111
Friday6131
Saturday7151
Total28614 (6.6% of items)

Before the buffer, a comparable week had produced six short-picks in 61 items, about 10%. Of this week's four, two were miscounts (recounted next morning and added to the recount flag list), one was a damaged unit found at picking, and one was sold at the till despite the buffer, because the order had sat for five hours and the buffer was set for three. That last one is the tuning signal: raise the three-hour figure for that item, or send the pick earlier in the day. Three of the four short-picks ended in an agreed substitution by text and one line was cancelled and refunded. Two orders were still uncollected when the three-day hold ended, 7% of the week's orders; the reminder went out on day two, and both orders were refunded and the items went back on the shelf.

Handling time fell from about nine minutes an order to about five once the batch list and bag labels replaced one-order-at-a-time picking, which is 4 minutes an order across 28 orders, or 112 minutes a week. Treat that as the small, honest win: it will not transform a single shop's takings, but it removes phone calls, and it stops the disappointing "sorry, we sold the last one" conversation.

Handover, and the morning sweep for orders nobody collected

Collection takes about twenty seconds when it is rehearsed. The customer gives the order number, the person at the counter finds the bag by number, checks it against the printed list, and marks the order as collected. On Shopify the button is "Mark as picked up", which can also send a confirmation email. Skipping that last click leaves orders open in the system for ever, and the sweep below then chases people who have already collected.

Each morning, filter the open pickup orders to those that have been ready for two days or more. Paste only order numbers and ready dates into an assistant and ask it to split them into "reminder due" and "hold ended", then to word the reminder. The hold-ended group goes onto a list for the owner to cancel, refund through the platform and restock. The decisions (hold time, whether a day's grace is allowed, what happens to prepaid orders) stay with the owner; the assistant only sorts and words. An illustrative reminder:

Hello [first name], your order [order number] has been ready since [ready date] and we will hold it until [hold until]. After that we will cancel it and refund the payment. If you need another day, reply to this message or call [phone].

Check that the reminder offers only what the owner has decided: assistants like to add "no problem at all" flexibility that the shop never agreed to. If your shop regularly takes seasonal pre-orders with set collection days, the tutorial on pre-order forms and collection slots shows how fixed slots reduce uncollected orders.

Where a one-person shop trips up

  • The ready email goes before the bag is packed. It happens when marking ready is done in bulk at the start of the day. Give one person the job and make it the last step after bagging.
  • The buffer is set once and forgotten. Fast sellers drift, and a seasonal item needs a bigger buffer in its peak month. Put a monthly review in the diary and feed it from the short-pick log.
  • Uncollected orders pile up. Hold time, reminder day and what happens to prepaid orders at the end of the hold are decisions for the owner; the assistant only words the reminder. Decide them before the first order, not after the tenth.
  • The assistant writes the policy. A friendly draft that promises "reserved for you" or "bring ID" creates rules you never made. Give the rules in the prompt, and compare each draft against them.
  • Staff override the system at the till. If a held-back unit sells in the shop, record it, because the online number now disagrees with the shelf.

Customer details, plan costs and the half-hour a day it takes

Everything above works with item names, bin names and order numbers, none of which identifies a person. Keep customer names, phone numbers and addresses out of the assistant; the platform's templates add them at send time. On consumer plans, switch off the privacy setting that lets chats train models, and prefer a business plan if you start pasting anything customer-related.

Costs are mostly the till or web-shop plan the shop runs anyway. The pickup features above are part of each platform's ordinary setup, although Square says some text alert settings need a Plus or Premium subscription, so check your plan before promising text messages. The AI is a free plan, or about $20 a month if you subscribe to ChatGPT Plus or Claude Pro for other reasons. The real cost is the half-hour a day of someone's attention, and for a single shop the question is whether that half-hour beats the sales click-and-collect adds. Run it for a month and use the four-week numbers above to decide.

Practical questions from shops running click-and-collect

How long should a shop hold an uncollected order?

Pick a hold time you can staff, commonly two to three days, and print it in the confirmation message. Send one reminder before it expires, then cancel, refund and restock. Shopify's pickup page says nothing about hold time, so the rule is yours to set and enforce yourself.

Should the ready message go out before the order is packed?

No. Send it only after the bag is packed and counted. On Shopify, marking an order ready is what sends the customer's Ready for pickup email, so whoever presses that button must be the person holding the bag, and bulk-marking at the start of the day is a mistake.

Can AI do the picking or the stock count?

No. AI does the paperwork around them: arithmetic on your sales export, message wording, sorting pick lists and ranking items for recounts. A person still walks the shelves, counts the units, packs the bag and decides on any substitution before the customer is told.

Do I need a separate stock system for the online buffer?

Usually not. Your till or web platform already holds one number per product. Shopify, for instance, lets you move units from Available to Unavailable, and on other systems you can lower the number the website sees by the buffer and keep a spreadsheet column recording what you took off.

Further reads

Sources: Shopify's help pages on local pickup, bin locations, inventory states and selling out-of-stock items; Square Support articles on pickup and customer alerts; WooCommerce documentation on local pickup and order statuses, all read in October 2026.

Want click-and-collect running on the system you already have?

On a 1:1 call we'll check what your till or online shop already does, set the stock buffer rule, and decide which messages AI drafts and who confirms each order is ready.

Book a 1:1 call with me