Stock is reserved the moment an order is confirmed and released if it's cancelled; a moving-average cost basis prices each variant, and every completed sale snapshots its own COGS so a later cost change can never rewrite historical margin. Procurement closes the loop - replenishment candidates become draft purchase orders, which become receipts that update stock and cost together - and every mutation, from a price edit to a role change, is written to an audit log.
Highlights
Correct-by-construction inventory
Stock reservation, moving-average costing, and per-sale COGS snapshots that survive later cost changes.
Procurement lifecycle
Replenishment candidates flow into draft purchase orders, then linked receipts that update stock and cost together.
RBAC + audit log
Support / manager / super_admin roles, with every admin mutation written to an audit trail.
Stack