Stock in,
199 AED/ month | Includes 1 user | +49 AED / extra seat
Multi-location stock, transfers, reorder alerts, barcode scanning, stock adjustments, assembly, vendor returns. Perpetual-inventory accounting baked in: every movement posts the matching journal so your COGS and Inventory asset are always in sync with the count.
- Multi-location stock tracking with per-location quantities
- Perpetual COGS — invoice fulfillment auto-posts DR COGS / CR Inventory
- Stock adjustment + cycle count variances post Inventory Variance journal
- Assembly orders + vendor returns auto-journal at qty × unitCost
- Asset capitalisation: per-fixed-asset asset / accum-dep / dep-expense FKs
- Per-product valuation: FIFO or weighted average
One product, many shelves.
Each product carries per-location stock quantities. A sale at the main shop decrements main; a sale at the airport branch decrements airport. The product list shows total + per-location at a glance.
- Unlimited locations per company
- Per-location reorder points
- Per-location stock value rollup
- Branch reports filtered by location
Move stock without losing it.
Issue a transfer at the source location. Stock decrements source, becomes in-transit. Destination location receives it; in-transit clears, destination increments. Lost-in-transit reports flag anything dispatched but never received.
- Multi-line transfers (many products in one move)
- In-transit balance per transfer
- Partial receive supported (3 of 5 boxes arrived)
- Lost-in-transit report
Never stock out twice.
Set a reorder point per product per location. When stock crosses below, the product hits the Reorder Alerts page. Optionally auto-generate a Purchase Order on the Accounting module, addressed to the preferred vendor, with the suggested quantity pre-filled.
- Per-product per-location reorder point
- Reorder Alerts dashboard with overdue badge
- Auto-PO generation to preferred vendor (configurable)
- Vendor lead-time tracking recommends the order date
Scan in. Scan out.
Generate Code 128 / EAN barcodes per product (or import the vendor's). Scan at receiving, at the till (with POS), at stock counts. Barcode-labelled price tags print straight from the product page.
- Code 128, EAN-13, UPC supported
- Per-product barcode generator
- Bulk label printing on Avery + custom layouts
- Scanner input wired through POS, picking, receiving
Cycle counts that survive busy stores. And post to the GL.
Create a cycle count for a location or product range. Count over multiple sessions (paused + resumed). On commit, the inventory engine writes the variance movements AND emits the stock-adjusted event — the accounting handler posts DR Inventory Variance (5100) / CR Inventory (1140) for write-offs, or the reverse for discoveries. Idempotent on `J-INVADJ-CC-{countId}` so re-commits are no-ops.
- Multi-session counts (count today, finish tomorrow)
- Per-line discrepancy with reason codes
- Commit → variance journal posted automatically (J-INVADJ-CC-{id})
- Audit log of every count adjustment
Cost of goods sold, recognized at fulfillment.
When an invoice is fulfilled, the stock-hooks service writes the stock-out movement at the engine's actual unit cost AND emits INVENTORY_COGS_RECOGNIZED. The accounting handler posts DR COGS / CR Inventory at `qty × unitCost` per line, idempotent on `J-COGS-INV-{invoiceId}-{lineId}`. Voids reverse (`JR-COGS-INV-…`); credit-note sales returns restock + reverse COGS (`J-COGS-CN-{id}-{lineId}`).
- Invoice fulfill → DR COGS / CR Inventory (real engine unit cost)
- Void → reversing journal (audit-clean, never edits the original)
- Credit-note returns: restock + reverse COGS in one event chain
- Bill receipts auto-route to 1140 Inventory for trackInventory=true products
Build kits, return defects — GL stays balanced.
Assembly orders consume components + produce finished goods at the engine's actual cost (`J-ASM-{assemblyId}` reclassifies between sub-accounts when configured). Vendor returns ship defective stock back + reverse the original receipt cost (`J-VRET-{returnId}-{lineId}`: DR A/P / CR Inventory). Plus an Asset 3-account FK trio (asset / accum-dep / dep-expense) so fixed assets capitalise cleanly per row.
- Assembly: components → finished goods at weighted-avg cost
- Vendor return: DR A/P / CR Inventory per return line
- Asset 3-FK trio for fixed-asset capitalisation + depreciation routing
- Warehouse-level costCentreAccountId for branch overhead attribution
One subscription. One stock figure. One ledger.