A-006187  /  HW-MAIN  /  7-2-3

Every box
has a name.

Not ninety of them — this one. Every unit is serialised the moment it arrives, including the ones the manufacturer never numbered, onto a UHF RFID label. Everything it does afterwards is recorded against that name: the shelf it sat on, the person who moved it, the customer who bought it.

  • Runs on any Android — pair a Zebra sled for UHF RFID
  • Live in a working warehouse, not a demo
  • Two-way Sage 50 sync — or your own back office
The app running on a Samsung Galaxy S24: a home screen listing Warehouse, Transfers, Pick Lists, Complete Delivery, Incoming Deliveries, Move Product and Locations, each with a count of outstanding jobs, above a banner reading RFID Disconnected
The problem

The question every warehouse gets asked

“Can you confirm whether a box has been moved from its designated shelf location — or is it still where it's supposed to be? And if it moved, where from?”

— the question that started this conversation, verbatim
01 / LOCATE

A live map of every bin

One product can sit in five different bins across a warehouse at once. QP Inventory shows all of them in a single lookup — by product code, serial, barcode or RFID tag — with the exact serials held at each location.

Locate Product screen showing product P-0094 held across five warehouse locations with serial numbers listed per bin
Locate Product — web
02 / TRACE

A permanent record of every move

Every scan writes an audit row: what moved, which bin it came from, which bin it landed in, when, and who did it — including the moves nobody meant to make.

Movement History screen filtered by product code, serial, source bin, destination bin, user, movement type, warehouse and date range, listing 9,164 movement rows each showing the product, its individual serial, the bin it left, the bin it landed in and why
Movement History — 9,164 movements, filterable by any of them
03 / CONFIRM

Confirmed, not assumed

Every bin carries a status: confirmed by a physical scan, known empty, or not yet visited. “We haven't checked” is never quietly treated the same as “it's fine.”

Gun app Locations screen showing a list of bins flagged red as unknown, not visited, expecting a count
Locations — gun, worst first
The hardware

Built on Zebra, not around it

Zebra builds the reader, the printer and the encoder. What it leaves to people like us is the part that knows your warehouse — the app that turns a tag read into “that box is on shelf 7-2-3, it arrived in March, and it's going out on Thursday.”

This is that part. Every label carries a barcode, a QR code and an encoded RFID tag at once, so the same box can be picked up by whichever reader is in someone's hand — a full RFID sled or just a phone camera.

  • ZD621R

    RFID label printer

    Encodes a unique RFID tag into every label as it prints, alongside a QR code and barcode — one label, three ways to read it.

  • TC22R

    Integrated RFID handheld

    RFID reader built into the scanner — no separate sled — reads a shelf of tags at a time.

  • TC53 + RFD9091

    Sled-mounted RFID handheld

    Higher-power reader for longer-range sweeps across a full bay in one pass.

  • AT SOURCE

    Or let the supplier label it

    Send a supplier a print file and the stock arrives already labelled and encoded — so it books in on the first scan instead of being labelled by hand on your dock.

  • any Android

    Camera-only fallback

    Every workflow — locating, moving, picking, counting — runs QR-only from a plain phone camera. Pair a Zebra sled over Bluetooth and that same phone gains full UHF RFID; unpair it and the phone still works. The handheld app is Android only today; there's no iOS build yet.

Label Printer screen showing a Zebra ZD621R detected with RFID On, live QR label preview, and an EPC capacity reference table
Label Printer — live ZD621R connection, RFID on
Per-unit identity

The life of one box

The name is minted at the door and never changes. Everything around it does — which shelf, whose hands, which order — and all of it is written down against that one name. This is a single unit, end to end.

A-006187 minted on arrival
01 / IN

It arrives

Booked in against its purchase order, with supplier and date. If the maker stamped a serial on it, that's captured. If not, one is minted.

02 / LABELLED

It gets a name

A label prints carrying a barcode, a QR code and a UHF RFID tag — three ways to read the same box, none of them needing line of sight.

03 / SHELVED

It lands somewhere

Scanned onto a bin. The box and the bay are now linked, and that bay stops being assumed and starts being confirmed.

04 / MOVED

It moves. Often.

Every relocation writes a row: out of which bin, into which bin, when, and by whom. However many times it happens, for as long as you hold it.

05 / PICKED

It goes on an order

Scanned off its bin onto a specific order, with the bin recorded at the moment of the pick rather than guessed at afterwards.

06 / OUT

It leaves

Despatched and invoiced. That individual box is tied to that customer and that invoice — permanently, and long after anyone remembers it.

The bin is scanned, not guessed. Location here comes from a person physically reading the bin label and then the stock sitting in it. Not from overhead readers triangulating a room, not from antennas bolted to a forklift, and not from picking whichever shelf marker happened to answer loudest. There's no ceiling hardware to fund, it works the morning you put the first label up — and it produces the one thing the inferred approaches can't: a defensible record of who put what, where, and when. GS1's own vocabulary has a name for the pattern; it's what a location read from a mobile reader is supposed to look like.

Two serials, not one. Where a manufacturer does stamp its own serial on the box, that's captured as well — photographed off the maker's label at pick time and stored alongside ours. Ours makes every unit trackable whether the maker serialised it or not; theirs keeps you tied to warranty claims and the manufacturer's own records.

Movement history

Ask it anything
about a box

Every move ever made sits in one list — nine thousand of them in this warehouse and counting — and every column is a filter. The power isn't the log; it's that you can come at it from whichever end you happen to know.

Movement History screen showing filters for product code, serial, source bin, destination bin, user, movement type, warehouse and date range above 9,164 movement rows, each listing the product, its individual serial, source and destination bins, quantity, movement type and the reason it happened
Movement History — every filter above, every move below
Stock takes

A full stock take is a walk

UHF RFID reads every tagged box in range at once — through cardboard, off a pallet, stacked three deep. Counting a bay means walking past it. The count that used to shut the warehouse for two days becomes the time it takes to cover the floor.

THE USUAL WAY

Clipboards and a shutdown

Open the bay, count what's in it, write it down, key it in afterwards. Slow enough that most warehouses do it once or twice a year — and wrong often enough that nobody fully trusts the answer when it comes.

WITH A ZEBRA RFID GUN

Trigger, sweep, next bay

Pull the trigger and the reader picks up every tagged box in range at once. Nothing opened, nothing unstacked, no line of sight. Walk the aisle and the bays count themselves as you pass.

SEEDED

The bay already knows what it holds

Each bay opens on the gun pre-loaded with what should be there, so what's missing and what shouldn't be there both surface while you're still standing in front of it.

RECONCILED

Differences go where they belong

Variances surface for the office to review, and — where you want it — post straight through to your accounts system without anyone rekeying a figure.

SAFE BY DEFAULT

A count never destroys what it didn't see

Not scanning something is not the same as it being gone. Taking stock off a bay needs a deliberate declaration — never silence, and never a half-finished sweep.

Location flags

A shelf can raise its hand

Not everything wrong with a bay is a number. The rack is damaged, the labels have come off, someone has stacked the wrong product behind the right one. Flags let whoever is standing there mark the location itself as needing attention — and turn that into a queue somebody works through later.

  • RAISED THERE

    Flagged by the person who found it

    Anyone with a gun in their hand can flag the bay they're standing at, without stopping what they were doing or finding someone in the office to tell.

  • QUEUED

    It becomes a list, not a memory

    Flagged bays collect into a worklist with a reason, an urgency and who raised it — sorted worst-first, so the round of remedial work is already planned.

  • YOUR REASONS

    Your own flag types

    Alongside the built-in states, you define the flags that match your problems — damaged racking, mislabelled, stock pillaged for parts — each with its own colour and urgency.

  • SELF-CLEARING

    The ones that resolve themselves, do

    Book stock into a bay marked empty and the empty flag lifts on its own. A flag a person raised deliberately stays up until a person clears it.

Locations status screen listing 681 warehouse locations with a coloured status dot, status and reason, urgency score, expected quantity, when last counted, who flagged it, and per-row Stock and Flag buttons
Location Status — filter by flag and urgency, worst first
A warehouse operator holding a Zebra handheld mid-scan, prompted to scan the bin they took stock P-0353 from, standing among stacked cardboard boxes
On the floor, not a demo

This is the actual screen, in an actual hand, between two actual boxes.

Every screenshot on this page comes from the same live system a real pump distributor runs their warehouse on today — not mockups, not a sandbox seeded for a sales call.

In the warehouse

The whole job, on the gun

Every warehouse workflow runs natively on the handheld — nothing is a cut-down version of the web app. This is the screen a picker, a receiver or a counter actually has in their hand.

Live OCR

Point the camera.
Stop typing.

Two of the slowest, most error-prone moments in a warehouse are somebody copying a twelve-character serial off a carton by hand, and somebody trying to remember what an order looked like when it left. The camera on the gun does both jobs instead.

READS IT

The maker's serial, straight off the carton

Hold the camera to the manufacturer's own label and it reads the serial — then confirms the same value across three consecutive frames before saving it. There's no button to press and no keyboard to get wrong.

If the label isn't one it knows, the screen dims and a guide box appears: line the serial up inside it and only what's inside is read, so the phone number and the field labels printed alongside can't creep in. Or tap any block of text on screen to take it as it stands. Or type it — the keyboard never goes away.

LEARNS IT

You teach it your own suppliers

A new supplier's label is a row in a library, not a code change. Describe the label once — the text printed immediately before the serial, and the shape of the serial itself — and every gun picks it up on its next sync.

Whichever brand name the camera can see is tried first, then the rest in priority order, and the first fit wins. A strict pattern can sit in front of a looser fallback, so a supplier whose label prints badly still gets read.

PHOTOGRAPHS IT

The order, as it was packed

At despatch the picker can attach photos of the packed order before it goes. They land in the office's gallery against that sales order — what was in the box, and what condition it was in, at the moment it left the building.

When a customer rings three weeks later to say something arrived damaged or short, that is the difference between a discussion and an argument.

Nothing serialised leaves unrecorded. A serialised unit can't be despatched until its manufacturer serial has actually been captured — the line sits amber until it is. The control isn't a policy somebody has to remember; it's the button staying shut.

Serial Formats settings screen listing recognition patterns per manufacturer, each with an indicator, a template of the serial's shape, a worked example, a priority and an active status
Serial Formats — one row per supplier label, tunable by the office, synced to every gun
Reader control

The reader does
what you tell it

A UHF reader at full power reads everything — the bay in front of you, the rack behind it, and the trolley going past. That's the problem with RFID, not the feature. So the beam, and what counts as a read, are both under the operator's control.

POWER

Dial the beam to the job

Transmit power is a slider, from 10.0 up to 30.0 dBm, with Near / Mid / Full presets you can change without stopping the count.

Wind it down and the reader sees one shelf. Wind it up and it takes a whole aisle in a pass. Same gun, same tags — you decide how far the question travels.

LOCK ON

Single out one product

Scan the QR of the product you care about and the count arms to it. From then on the reader still hears everything, but only that product is counted.

Tags for anything else in range — the next bay, a pallet passing behind you — are discarded rather than quietly joining the total. Arm several products at once and it counts each one separately.

SIGNAL

Find the one you want

Reads are ranked by signal strength and badged Strong, Good or Fair, so when you're hunting a single box the top of the list is the one nearest the gun.

Walk toward it and the order re-sorts. It's how you go from "it's somewhere in this aisle" to having it in your hand.

“Could you encode the location into the tag?” On a large enough inlay, yes — and our encoder already writes the bigger 128-bit format when a tag offers it. But it's the wrong place to keep it, and on the labels running through the printer today there is nowhere to put it at all: a UCODE 9 carries a 96-bit EPC and no user memory whatsoever. Room for identity, and nothing else.

The deeper reason is that a tag storing its own location is right only until somebody moves the box by hand — after which it states the wrong shelf with complete confidence, and nothing on it admits that it's stale. Aerospace proved this on tags a thousand times larger: the data went half-right, half-wrong, with no way to tell which. So the tag carries identity, permanently, and the system carries location. Scan the serial and it tells you which bin it went into, when, and who put it there — and everywhere it has been since. Nothing to re-encode, and nothing to go quietly out of date.

Beyond the warehouse

Run the whole business on it

The warehouse floor is one part of a full inventory and sales platform — live KPIs, purchasing, sales orders, reporting and product builds all run in the same system, synced to Sage 50 as it happens.

Dashboard showing total items in stock, available and allocated counts, Sage connector status, stock value by warehouse, and warehouse performance turnaround times
DashboardLive stock value, sync health and warehouse throughput at a glance
Reports index page listing stock and order reports including stock valuation, slow-moving stock, open purchase orders and awaiting dispatch
ReportsStock, order and Sage reports, one click from raw to answer
Sales Orders list showing order numbers, references, order dates, totals and dispatch status with courier tracking numbers
Sales OrdersEvery order's value, status and tracking number in one list
Bundles screen showing named product bundles with exploding or kept behaviour and component counts
BundlesGroup products into a single sellable, priced unit
Work Orders screen listing builds that convert one serialised product into another, with build progress and status
Work OrdersConvert a serialised unit into another product to fill an order
Product detail page for P-0094 showing stock by warehouse, stock items with serials and status, and a full product movement timeline
Product detailEvery serial, every location, every move — on one page
Incoming Delivery detail page showing a 660-unit delivery from a supplier, with per-line label printing confirmation and a timeline of receipt events
Incoming deliveriesLabels confirmed printed per line before a single unit is booked in
Built-in AI

Ask it.
Out loud, if you like.

A report answers the question somebody thought of in advance. This answers the one you've just had. Ask in plain English — or say it out loud — and it goes and looks through your live data, then tells you what it found and how it worked it out. Ask it how to do something instead, and it teaches you.

“What happened in the warehouse yesterday?”
“How much has this account spent with us this year?”
“Which customers have stopped buying from us?”
“What does this customer buy most?”
“Where is P-0094, and how did it get there?”
“How do I book in a delivery?”
BESPOKE

A report shaped like your question

It assembles the answer from live data each time, so the reply fits what you actually asked rather than making you pick the nearest canned report and squint at it.

Follow-ups work the way they do in conversation — “and the year before?”, “just the Wycombe site” — without starting again.

VOICE

Both directions

Speak the question and hear the answer read back. Useful when both hands are full and you're halfway up a rack, and just as useful at a desk when you'd rather not type out a sentence.

The voice is configurable, and the whole thing works silently as text if you'd rather it didn't talk in an open office.

IT TRAINS THEM

A conversation instead of a manual

The assistant reads the same 141-article help system your staff do, so “how do I book in a delivery?” returns a walkthrough of this system — the real screen, the real button — rather than something generic.

And it handles the half that matters most: “I've just done that wrong — how do I undo it?”

The manual answers back. Most systems ship documentation nobody opens. Here the documentation is the thing people talk to — from any screen in the web app, in their own words, as many times as they like, without waiting for the one person who knows to come off holiday.

Ask where to print a label and it names the screen and the order to press things in. Ask what happens if you complete a delivery and it tells you what will change in Sage before you do it. It answers for your configuration, because the help describes the system as you actually have it set up — and the help is kept in step with what's shipped, so it can't quietly drift into describing a version nobody is running. Training stops being a day somebody sat through in March and becomes something available at half past three on a Tuesday, at the screen they've never seen before.

It cannot change anything — and that isn't a promise, it's an absence. Every tool the assistant has is a lookup: search products, get an order, read stock levels, search the help. There is no tool in it that writes. It can tell you a figure is wrong and explain exactly how to correct it, and then you go and correct it.

Bring your own key. The AI runs on your Anthropic account, under your key, with your spend and your data boundary — not resold to you per seat with a margin on top. Point it at a Claude subscription instead and it uses no API credits at all. The two run the same set of tools, so the answers don't change with the billing. Every question asked is logged, so you can see what the AI was asked and what it looked at.

Customer-facing

A trade portal on the same data

Customers get their own storefront — live stock, trade pricing and datasheets — reading from the exact same product and stock records the warehouse works from. Nothing to keep in sync by hand.

A trade customer portal home page: company name and logo, product search, Home / Products / Featured navigation, login and register links, a basket, and a hero banner reading Premium Products for Distributors and Resellers above an Explore Product Range button
The trade portal — your branding, your products, your stock levels
The full system

More than warehouse tracking

This is a full inventory and sales platform, not a single-purpose scanning app — everything below is shipped and in daily use, drawn straight from the in-app help system.

[ WAREHOUSE & RFID ]
  • Locate any product instantlyScan a code, serial, barcode or RFID tag and see every bin it's in, right now.
  • Full movement historyEvery move, receipt, pick and dispatch logged with who, when, from and to.
  • Bin status flagsEvery shelf marked confirmed, empty, or not yet visited — never assumed.
  • RFID cycle countsSweep a bay with the reader and reconcile straight against Sage.
  • Multi-warehouse transfersMove stock between sites as a tracked pick-up-then-deliver job.
  • Goods-in to put-awayBook deliveries onto a bin's own books, then place stock without touching Sage twice.
  • Camera reads the maker's serialLive OCR lifts a manufacturer's serial straight off the carton, confirmed over three frames before it saves.
  • Teachable label formatsAdd a new supplier's label as a pattern in Settings; every gun picks it up on the next sync.
  • Label printing & encodingPrint barcode, QR and RFID labels from the product record, including bulk pre-labelling for suppliers.
  • Supplier pre-labellingSend a supplier a print file so stock arrives already labelled and encoded, and books in on the first scan.
  • Labels on receiptPrint a whole delivery's labels from the incoming delivery, with a label counted only once the printer confirms it.
  • Stray stock recoveryPicked units that no live order still owns are listed on their own screen and returned to the bin they came from.
  • Void & orphaned stockSee stock Sage says you own that isn't in any real bin, and resolve it before it's gone for good.
[ ORDERS & DESPATCH ]
  • Purchase & sales order workflowFrom raising a PO through to picked, dispatched and invoiced.
  • Amend an order mid-pickThe office changes an order while it's being picked; the gun shows what grew and issues put-back cards for what shrank.
  • Backorder handlingShort lines can be allowed, reduced, or split into a child order a PO receipt auto-promotes.
  • Quotes & pro-formasOrders carry their Sage kind, and a pro-forma is badged so nobody picks it as a live order.
  • Work orders / buildsConvert one product into another to fulfil an order you have no stock of.
  • Courier & despatch trackingChoose how an order is leaving, key in tracking, confirm it left the building.
  • Photos of the order as packedThe picker photographs the packed order at despatch; the office sees it in the order's gallery.
  • Packing slipsGenerate a slip and confirm quantities before anything goes out of the door.
  • Product & customer remindersShort "don't forget" notes that surface the moment that product or customer lands on an order.
  • Who raised it, who changed itEvery order records the person who created it and the person who last touched it.
[ BUYING, COSTS & SAGE ]
  • Two-way Sage 50 syncProducts, prices, customers, suppliers and stock levels stay in step automatically.
  • Or the system you already runThe accounts integration is a connector against a defined interface — a different ERP is a connector, not a rewrite.
  • Landed costsFreight, duty and other costs roll into a PO's true stock cost.
  • Early payment discountApply a supplier's early-settlement discount once, and that lower cost is what posts to Sage on goods-in.
  • VAT & multi-currencyPurchase orders handle foreign currency and VAT without hand calculation.
  • Price lists from SageCustomer price lists sync across, so the price on the order is the price you agreed.
  • Credit status at a glanceA customer's aged debt and oldest unpaid item, right on the order screen.
  • In-transit stockSee what's on its way from a supplier and reserve it for a customer before it lands — never counted as available.
  • Reorder alertsProducts under their reorder level surface as a worklist rather than a surprise.
  • Stock & order reportsStock on hand, valuation, ageing, slow movers, open POs and SOs, awaiting despatch, overdue.
  • Product weights back to SageSet a weight on the web or the gun and it writes to Sage, so despatch and packing weights stay right.
[ PRODUCTS & CUSTOMER PORTAL ]
  • BundlesGroup several products under one code so they go onto an order together.
  • Documents against a productDatasheets, certificates, test sheets and photos attached to the product record.
  • Returns & RMA historyReturn and repair history held against the individual serialised unit.
  • Trade customer self-serviceCustomers register with their Sage account reference and order online.
  • Catalogue, cart and checkoutCategories, search and datasheets, on the same product data as the warehouse.
  • Order approval queueThe office reviews and approves web orders before they hit the floor.
  • EnquiriesCustomers ask questions and download certificates without a phone call.
[ CONTROL & TRUST ]
  • Everything is auditedEvery action, and every refusal, recorded against the person and the moment it happened.
  • Errors that say what to doA refusal explains what happened and whether a retry is safe — and it never silently disappears.
  • Watch what goes to SageA queue shows everything being written; retryable failures heal themselves, the rest are yours to retry or cancel.
  • Shadow mode before you commitRun the Sage reconciliation observe-only for as many cycles as you like before letting it touch anything.
  • Sign in by fingerprint or faceA trusted phone or tablet satisfies two-factor, so the code isn't needed every time.
  • 2FA, passkeys and session controlOne-time codes with backup codes, WebAuthn passkeys, session timeout and a list of active sessions.
  • Roles and section accessEach account carries a role plus a separate permission role governing which sections open at all.
  • Email notificationsSystem mail on your own SMTP — despatch confirmations, alerts and approvals.
  • Features you can switch offThe system is fifteen modules; turn off what you don't use and it leaves the menus entirely.
  • The connector updates itselfThe Sage-side service pulls its own updates, so sites don't drift onto old versions.
[ AI ASSISTANT ]
  • Plain-English questionsAsk where something is, what an account spent, or why a number looks wrong — it looks up and explains.
  • Talk to it out loudSpeak the question and hear the answer read back, or run it silently as text.
  • It trains your staffIt reads the same help system they do, so it walks a new starter through this system, screen by screen.
  • Bring your own keyRuns on your own Anthropic account and spend — or on a Claude subscription using no API credits.
  • Every question loggedAn AI query log records what was asked and what the assistant looked at.
  • Read-only by constructionEvery tool it has is a lookup. There is no tool in it that can write.
  • Query it from your own systemsThe agent is reachable over an HTTP API with its own key, so other software can ask it questions too.
Adaptable

Sage 50 today.
Whatever you run tomorrow.

Your accounts system sits behind a connector — a separate service that talks to it and keeps everything in step over a live link. Sage 50 is the one that's built, proven and running in production. Pointing it at a different back office means writing a new connector, not rebuilding the warehouse.

BACK OFFICE

Not welded to Sage

The accounts integration is its own service speaking a defined interface — stock levels and orders in, adjustments and invoices out. Another ERP, or your own in-house system, is a connector against that same interface.

MODULES

Built in parts, so parts can change

Warehouse, labels, deliveries, returns, reporting and the customer portal are each a module registered into the app. New capability bolts on alongside the rest instead of being threaded through it.

NO REDEPLOY

Your rules, edited by your office

Couriers and delivery methods, warehouse and bin structure, bin-status flags, serial formats, label layouts — all editable from Settings by the people using them. No developer, no release.

LIVE

Real-time, not overnight

A persistent connection keeps the warehouse floor, the office and the back office moving together. A scan on the gun shows on the web app immediately, not on the next batch run.

Expect to change it. Everything on this page was shaped around one distributor's actual way of working — their bays, their labels, their paperwork, their idea of what "picked" means. Yours will be different in ways neither of us can list up front. Fitting it to that is the work, and it's the normal way this gets deployed.

GET IN TOUCH

Want to see it on your own stock?

Happy to walk through a live warehouse, or run a screen-share against your own product data.

Email us