Retail Inventory Management System
Unified inventory scattered across stores under headquarters standards and synced it in real time.

- Timeline
- About 7 months
- Team size
- 5 people
- Platforms
- Web · Server
- Integrated system
- Existing accounting system
Background
Each store kept its own separate inventory ledger. For headquarters to see overall inventory, staff had to call stores or compile spreadsheets, and in the meantime actual stock and the ledger kept drifting out of sync.
Scope
- Per-store stock in/out registration
- Headquarters unified inventory lookup
- Inter-store inventory transfer requests and approvals
- Low-stock threshold alerts
- Integration with the existing accounting system
- Mobile screen for store staff
Technical decisions
What we chose, and why it fitKept the existing accounting system as-is, syncing inventory data through an API only
Rebuilding the accounting system would have meant re-validating tax handling as well, which was too risky. It was safer to build only the inventory management piece new and hand off just the figures accounting needed at closing, via API.
Recorded inventory changes as in/out events rather than updating a status value
Storing only the current stock count made it impossible to trace how it got there. By logging inbound, outbound, and transfer as separate events and computing current stock as their sum, we could trace back exactly when and at which store a discrepancy occurred.
Engineering challenges
Problem
When a store registered an inventory transfer but the receiving store never confirmed it, the ledger and actual stock diverged.
Approach
We split transfer requests and receipt confirmation into separate steps, marking the stock as in-transit at both stores until receipt was confirmed.
Result
The screen now shows at a glance which store is responsible for in-transit stock, reducing ledger mismatches caused by missed receipt confirmations.
Problem
The existing accounting system only accepted data through a nightly batch job, which didn't match the real-time events the inventory system emitted.
Approach
We had the inventory system accumulate a separate daily closing snapshot and added a middle layer that delivered only that snapshot on the accounting system's batch schedule.
Result
The inventory system kept its real-time event structure while accounting continued receiving data the way it always had.
Handover and operations
We wrote and delivered a separate user manual for store staff and an operations guide for headquarters admins. We handed over the source code and deployment infrastructure configuration, and for the first three months provided maintenance support limited to issues arising from store expansion.