Inventory Management
Know exactly what you have in stock, where it is, what it cost, and when to reorder — across every branch and warehouse.
What's in the Module
Products & Categories
A product is anything you sell, buy, or hold. Categories group products and can be nested (parent → child) for roll-up reporting.
Each product carries:
- Code, barcode, name, description, category
- Unit of measure (pcs, kg, L, box…)
- Cost price, selling price, reorder level
- Inventory, COGS, and sales revenue accounts (drives automatic posting)
Stock Levels
Every product's quantity is tracked per warehouse in real time. Whenever a sale, purchase, transfer, adjustment, or count is posted, the on-hand quantity moves.
- Filter by warehouse, category, or low-stock threshold
- Drill into a product to see every movement that produced its current balance
- API endpoint backs the POS, invoices, and GRVs for instant stock checks
Costing: Stock is valued using weighted average cost. Every GRV recalculates the average; sales then post COGS at that average.
Inventory Adjustments
Use adjustments for write-offs, write-ons, damages, shrinkage, or corrections that don't belong to a sale, purchase, or transfer.
Lifecycle
- Create as a draft, listing the products and the +/- quantities
- Submit for approval
- A manager or stores supervisor approves (or rejects)
- Approved adjustments post to stock and to the ledger
- PDF available for the file
Stock Transfers & Transfer Requests
Stock Transfer
Move stock between warehouses. Two-step so in-transit stock is tracked:
- Post the transfer at the source — stock leaves the source warehouse
- Receive at the destination — stock lands in the destination warehouse
- Generate a transfer note PDF for the driver
Stock Transfer Request
A branch / warehouse can request stock from another. The request is approved or rejected, then converted into an actual stock transfer with one click.
Stock Counts
- Generate a count sheet for a warehouse (optionally filtered by categories or product range)
- Download the Excel template, count physically, fill in the counted column
- Import the filled sheet back into the system
- Submit for approval; a manager reviews variances
- Approved counts post a variance adjustment automatically
Price Lists & Product Prices
A price list is a named set of selling prices — e.g. "Retail", "Wholesale", "Distributor". Each customer can be tied to a price list so their invoices and POS sales quote at the right level.
- Add products to a list one at a time or in bulk
- Duplicate an existing list as a starting point for a new one
- Bulk-adjust prices across a list by % or fixed amount
- Every price change is logged for audit
Individual product prices can also be managed directly and imported from Excel for fast bulk updates.
Barcodes
The system supports barcode scanning across POS, invoices, GRVs, and product search. For products that don't have a barcode on the packaging:
- Generate a barcode image for any product
- Print barcode label sheets for shelves and racks
- Choose label sheet layouts from the print dialog
How Inventory Connects
- Sales / POS: When you sell, stock leaves the selling warehouse and COGS posts to the ledger.
- Purchasing: GRVs bring stock in and recalculate the weighted average cost.
- Accounting: Every inventory movement creates the matching journal entry — no manual posting.
- Reports: Valuation, low stock, dead stock, movement, and stock-sheet reports all live in the Reports module.
Best Practices
- Set reorder levels: Then the Low Stock report becomes your buying list.
- Count regularly: Schedule rolling counts by category to keep stock honest without disrupting trading.
- Use categories: Categorisation drives clean reporting and faster product lookup.
- Approve adjustments carefully: They directly affect both stock value and the ledger.
- Keep price lists tidy: Duplicate, then adjust, rather than editing many products by hand.