The challenge
The company runs warehouses in several cities and dozens of installers carrying tools and materials signed out to them. Stock was tracked on paper and in spreadsheets: what was issued, what was written off, where things were. An inventory count turned into a multi-day ordeal. The client had bought handheld terminals and wanted the storekeeper to simply scan an item and have the system do the rest.
What we built
- Stock control. A product catalogue with barcodes, balances per storage location and average cost. Three kinds of location — central warehouses, an installer's personal account, and sites — so it is always clear where a specific fixture is and what it cost.
- Documents. Receiving, write-off, transfer, return and stocktake. Posting a document recalculates balances and cost. A mistake in a posted document does not have to be reversed and re-entered: open it, correct it, repost. The system records who changed what and when, which is what stops quiet backdated edits.
- Terminals. Handhelds run on the DataMobile protocol. The storekeeper signs in by scanning their own badge, printed from the system. From there it is ordinary scanner work — create a write-off, pick a warehouse, scan the items, upload. The document appears in the web app already posted.
- Synchronisation that thinks. Terminals do not re-download catalogues they already have. The server remembers what each device holds and sends only what changed. Add a person or a product in the web app and every terminal picks it up. A new terminal gets a clean database on first connection.
- Printing and reports. Barcode labels and staff badges print from the browser with no special software. Turnover by warehouse, holdings per installer, and the movement history of any item — and every report drills down.
A note from the rollout
The DataMobile protocol is documented sparsely in places, and part of the format had to be established against a live terminal. The attribute catalogue, for instance, must arrive as an object rather than a list, or the terminal silently refuses to load anything. The user list cannot be cleared while an operator is working, or the device demands a restart. Every one of those was found, handled in the server, and the client never met any of them.
The result
Storekeepers work with a scanner rather than a notebook. What the system says is on the shelf is what is on the shelf. Management can see at any moment what is where and what is signed out to whom.