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:

  1. Export or print the stock list
  2. Count physical stock by location/shelf
  3. Enter counted quantities
  4. 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:

  1. Create PO — select supplier, add products and quantities, set expected delivery date
  2. Approve — manager approves the order
  3. Send — PO sent to supplier (email PDF)
  4. Receive — when goods arrive, staff records received quantities (partial receipts supported)
  5. 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