Built for distributed retail.
Every feature exists because someone running a real warehouse needed it. Nothing is bolted on.
Multi-location inventory
Define warehouses and showrooms. Each product has a quantity per location. Roles can be scoped so showroom staff only see their own stock.
Movement-driven accounting
Stock levels are derived from immutable movements: receipts, transfers, sales, and adjustments. Every change has a who, when, and why.
Two-step transfers with goods-in-transit
Dispatch from the source location and receive at the destination. Stock that has left A but not yet arrived at B is visible as in-transit, not lost.
Sales without a POS
Showrooms record sales as a single movement: pick the product, set the quantity, optionally capture customer details. Stock decrements instantly.
Barcodes optional
Products can have multiple barcodes, or none. Look up by SKU or barcode from a single search box. USB scanners and phone cameras both work.
Low-stock alerts
Set a default low-stock threshold company-wide. Override per-product when you need to. Daily email digest to managers and admins.
Reports and PDFs
Stock on hand, movement summary by period, top-moving products, low-stock list, and stock valuation when cost prices are filled in. Prawn-rendered transfer notes for every dispatch.
Custom domain
Run the app on your own domain - bookings.acme.com, stock.yourbrand.ng - on the Growth plan and above. SSL is automatic.