POS Inventory & Barcoding
Migrate a legacy catalogue into a point-of-sale (POS)-ready master, mint SKUs, batch serials and printable barcodes at scale.
01 · The opportunity
What it set out to solve
Moving off a legacy system means every product needs clean codes, serial numbers and scannable barcodes, thousands of them. By hand it takes weeks and breaks stock accuracy from day one.
02 · The approach
How I thought about it
We built a dashboard that ingests the old catalogue, matches existing vs new items, mints parent codes and unit-level serials, generates POS barcodes in bulk, and exports one clean master file the new system can import.
03 · What I built
- Ingest & reconcile a legacy product catalogue
- Mint parent codes + batch serial numbers (serial-level SOH)
- Generate scannable POS barcodes in bulk, plus a product QR that opens a live page for the shopper
- Parent → unit stock hierarchy so stock ties out
- One-click export of a clean POS-ready master file
04 · The result
What changed
A migration that would take a team weeks, done in a fraction of the time, with stock that reconciles from the very first sale.
Migrate a catalogue.
Paste a legacy catalogue (or use the sample) and watch it reconcile against the SKU master, mint parent codes and unit-level serials, then generate two real codes per product, a Code 128 barcode for the till, and a QR for the shopper. Go on: point your phone camera at one of the QRs below and it'll open that product's live page.
Legacy catalogue
One product per line: name | colour | size | MRP | qty.
Parent SKUs, unit-level serials, scannable barcodes and product QRs will appear here, plus a POS-ready master file.
05 · Decisions & trade-offs
The questions I'd get asked about this, and my answers
Are those real barcodes in the demo?
Yes, they're genuine Code 128, encoded in the browser (start code, checksum, stop pattern and all). Scan one off your screen with any phone scanner and it reads the SKU back. Nothing is faked for the demo.
Why mint serials per unit instead of just per SKU?
Because stock only truly ties out at the unit level. A parent code tells you what a product is; a unit serial tells you which physical item sold, moved or came back. That's what makes stock-on-hand trustworthy from the first sale, and it's what a migration usually gets wrong.