Commerce
Inventory & Retail
Stock management, retail sales, purchase orders, suppliers, and product catalogue.
Overview
The inventory module tracks physical products: retail items sold to clients and professional-use consumables used in services. It manages stock levels, records movements, handles supplier purchases, and integrates with checkout so stock is decremented automatically when products are sold.
Products
Products are the physical items the salon manages:
| Product type | Description |
|---|---|
| Retail | Sold to clients at checkout (shampoo, serum, accessories) |
| Professional / internal | Used in service delivery (colour, chemicals, equipment consumables) |
Product Fields
- Name, brand/manufacturer, SKU/barcode
- Unit of measure (unit, ml, g, box)
- Retail price and cost price
- Minimum stock level (triggers low-stock alerts)
- Supplier reference
- Tax category
- Active / inactive
Product Categories
Products are grouped into categories for display and reporting (e.g. "Hair Care", "Skincare", "Tools").
Stock Management
Stock Levels
Each product has a stock item record per location showing:
- Current quantity on hand
- Reorder level (minimum before restocking alert)
- Last movement date
Stock Movements
Every change to stock quantity is recorded as a movement:
| Movement type | Trigger |
|---|---|
| Sale | Product sold at checkout — auto-decrements |
| Return | Client return — increments stock |
| Receive | Stock received from purchase order |
| Adjustment | Manual count correction |
| Transfer | Stock moved between locations |
| Wastage | Damaged or expired stock written off |
| Service usage | Professional stock consumed in a service |
Stock Takes (Physical Counts)
Periodic manual counting to reconcile expected vs actual:
- Export or print the stock list
- Count physical stock by location/shelf
- Enter counted quantities
- System computes variances and creates adjustment movements
Low Stock Alerts
When stock falls to or below the reorder level, the system alerts the relevant staff or auto-generates a purchase order suggestion.
Purchase Orders
A purchase order (PO) is the formal record of a stock purchase from a supplier:
- Create PO — select supplier, add products and quantities, set expected delivery date
- Approve — manager approves the order
- Send — PO sent to supplier (email PDF)
- Receive — when goods arrive, staff records received quantities (partial receipts supported)
- Post — stock levels are updated; a vendor bill is created in finance
Purchase Order States
| State | Meaning |
|---|---|
| Draft | Being assembled |
| Sent | Submitted to supplier |
| Partially received | Some items received, rest pending |
| Received | All items received |
| Cancelled | Order cancelled |
Suppliers
Supplier records store:
- Business name, contact details
- Default payment terms
- Products typically supplied
- Purchase history and outstanding bills
Retail Sales at Checkout
When a product is added to a checkout invoice:
- Stock is decremented automatically on invoice confirmation
- The sale is recorded in the product's movement history
- Revenue is attributed to the location and (optionally) the staff who recommended the product
Retail product sales generate their own analytics: top-selling products, revenue by category, staff retail performance.
COGS Allocation
Cost of Goods Sold is tracked per product:
- Cost price is recorded on each purchase order receipt
- COGS is calculated when products are sold, using the cost at time of receipt
- COGS feeds into the P&L via the finance module
Key Data Entities
- Product — the item definition (name, SKU, prices, category, supplier)
- StockItem — current stock level of a product at a location
- StockMovement — each change to stock quantity (type, quantity, reference, timestamp)
- Supplier — supplier master record
- PurchaseOrder — a restocking order
- PurchaseOrderLine — each product line on a PO
Permissions
| Action | org_owner | brand_manager | location_manager | front_desk |
|---|---|---|---|---|
| Manage product catalogue | Yes | Yes | No | No |
| View stock levels | Yes | Yes | Yes | Yes |
| Record stock movements | Yes | Yes | Yes | Yes |
| Create / approve POs | Yes | Yes | Yes | Create only |
| Receive deliveries | Yes | Yes | Yes | Yes |
| Run stock takes | Yes | Yes | Yes | Yes |
| Add retail product at checkout | Yes | Yes | Yes | Yes |