01 — Product records
Treat each product as a record, not a SKU.
A product record should hold everything the team needs to sell it: name, price, supplier, cost, barcode, variant rule, and whether it is a sellable line or a tracked-only one. Inconsistent product data is the upstream cause of most retail stock problems.
- Use one record per product family; use variants for size, colour, shade or pack.
- Decide which products are tracked vs untracked (display items, samples) up front.
- Set a clear naming convention before staff start adding lines.
- For barcoded items, keep barcodes on the variant, not the parent.
02 — Variants
Group sizes, colours and packs under one parent.
Variants are how shops actually sell — “the navy one in medium” or “the six-pack of the same can.” Without a parent–variant structure, every variant becomes its own product, and reporting falls apart. With one, customers, staff and reports all share the same vocabulary.
- Map every variant axis you actually use (size, colour, finish, pack size) — and only those.
- Build packs and bundles explicitly: which units they break into, which they roll up from.
- For seasonal lines, retire variants cleanly so reports stay readable next year.
- For trade items, decide whether you sell singles, packs or both.
Sizes, colours, packs and bundles all live under a parent product. Reports stay readable, stock stays accurate, and staff at the till see the right options without scrolling through duplicates.
- SKULIN-001
- SupplierNorthstar Textiles
- Cost£8.40
Resulting SKUs
Sells as one; stock reduces three variant SKUs.
Set once on the parent — cost, lead time, supplier code.
- Parent product carries supplier, cost, lead time and barcode rule.
- Variant SKUs get individual stock counts and reorder thresholds.
- Packs and bundles roll up from variants without duplicating product records.
03 — Live stock
Stock should move the moment a sale, return or transfer happens.
Stock that updates overnight is too slow for retail. A sale at the till, a return, a goods-received note or a branch transfer should all change the stock number immediately — so the buyer ordering this afternoon is not working from this morning’s numbers.
- Make every sale, return and adjustment reduce or restore stock immediately.
- Record goods received against a purchase order so cost and quantity match.
- For multi-branch, keep stock at branch level — never aggregate-only.
- For damages and write-offs, use a documented adjustment reason, not a quiet edit.
Every till transaction adjusts stock, fires a reorder check, and feeds the daily sales report. Without this loop closing in real time, the buyer is working from yesterday’s numbers.
2 × Linen shirt · M / Navy
Card on Stripe TerminalBranch: Camden · M / Navy
Real-time decrementAdd to PO queue
Northstar Textiles · 14d leadRepeat-customer record updated.
Owner reads while the day is live.
Buyer sees stock pressure same-day.
- POS → Stock is live: every sale, return, void and adjustment moves the number.
- Reorder check fires automatically when a variant crosses its threshold.
- Reporting closes the loop so owners see the same numbers as the buyer.
04 — Reorder thresholds
Set reorder thresholds against real sell-through.
A reorder threshold pulled from “feels about right” is how shelves empty and overbuying happens. The threshold should reflect how fast the line sells, how long the supplier takes, and how much risk you accept on an empty shelf.
- Calculate weekly sell-through per variant; set the threshold above lead-time consumption.
- Review thresholds every season; sell-through changes faster than people remember.
- For seasonal lines, set the threshold to drift down towards end-of-season.
- Separate “critical” lines (drives footfall) from “nice to have” — the rules differ.
05 — Suppliers & purchasing
Tie cost and supplier to every product line.
A product without a supplier and a cost is a product you cannot buy intelligently. Purchasing decisions should be one click away from the product record — see what to order, from whom, at what cost, and against which open purchase order.
- Set primary and secondary suppliers per product, with cost and lead time.
- Generate purchase orders grouped by supplier, not by individual product.
- Receive against the purchase order so cost variance is visible.
- For trade margin pressure, keep last-paid cost and best-paid cost both visible.
06 — Branch stock & transfers
Balance branches with transfers, not just orders.
If you run more than one shop, branch stock will diverge. The fix is not always to buy more — sometimes it is to move what you already have. A clean transfer workflow turns dead stock in one branch into available stock in another.
- Make branch stock visible across all branches, not just to head office.
- Build transfer as a workflow (request, in transit, received) with audit at each step.
- Set a rule for when to transfer vs when to reorder — by value, age or sell-through.
- Reconcile in-transit stock so it is not counted twice or lost.
07 — Stocktake
Stocktake should confirm trust, not rebuild it.
A stocktake should be a check, not a rescue. If you only know what you have after counting every shelf, the system is not earning its place. Spot-counts on fast-moving lines weekly are worth more than a full count quarterly.
- Run weekly spot-counts on top-velocity lines; full counts less often.
- Investigate every variance over a threshold — pattern, not just total.
- Use scanning on counts, not paper, so the record is the truth.
- Document write-offs with reason so theft, damage and miscounts are distinguishable.
08 — Customer & loyalty
Connect customers to repeat sales.
A customer record at the till — by phone, email or card — turns a transaction into a relationship. Repeat customers are usually a shop’s most profitable segment. Treating them like strangers leaves money on the counter.
- Capture customers at the till without slowing the queue (phone or email, not forms).
- Surface previous purchases and notes when staff look up a customer.
- Tie loyalty to behaviour you want to encourage — visits, basket size, referrals.
- Keep customer data tidy and compliant; one record per person, not five.
09 — Payments
Keep card payments in the same view as the sale.
Stripe Connect and Stripe Terminal give retailers a practical path to card payments that stay tied to the sale, the customer and the report. The card reader is one part of the journey — terminal assignment, reader health, refunds and settlements all belong next to the order.
- Assign card readers to specific tills so payments land against the right counter.
- Track reader health (online, offline, low battery) so staff are not surprised mid-queue.
- Handle refunds and partial refunds from the original sale, not as standalone events.
- Reconcile settlements against your sales record, not just the bank statement.
10 — Daily reporting
Read sales while the day is still live.
Daily reporting should answer practical questions — what sold, what is low, what needs ordering, which staff are doing what — while there is still time to act on them. End-of-month reports are for accountants. Daily reports are for owners.
- Pick five numbers to read every day; make them easy to find.
- Surface low-stock lines, fast movers and slow movers in the same view.
- Compare today against this day last week, not against a vague average.
- Drill from any number back to the orders, products or staff behind it.
SUMMARY
The shape of it.
A retail operation works when the till, stockroom and buying desk all agree — every minute of the trading day. Most of the gap is not in software. It is in the product, supplier, reorder and branch decisions made before the till ever rings. This guide is the order to make them in.