Sales & Point of Sale
The sales module handles counter sales — walk-in parts purchases, side jobs billed outside the workshop flow, and retail transactions. The Point of Sale (POS) terminal is purpose-built for fast checkout.
Sales orders
Sales → Sales lists all sales orders — both draft and confirmed.
A sales order carries:
- Customer (optional — anonymous counter sales are supported).
- Line items (products from inventory, with quantity and price).
- Discount (per-line or order-level).
- Payer type (cash / card / bank).
- Delivery — confirmed orders can produce a delivery challan and a gate pass for vehicle collection.
Lifecycle
draft → confirmed → (challan / gate pass) → invoiced → paid
→ cancelled
- Confirm — locks the order, decrements stock (if reserved).
- Challan — generates a delivery challan (
CH-{year}-{seq}). - Gate pass — generates a gate pass for vehicle collection.
- Invoice — generates the sales invoice (
INV-{year}-{seq}). Uses the same invoice pipeline as a job. - Receipt — PDF receipt for the customer.
Discount controls
Per-line and order-level discounts are configurable by role. Use
custom roles (Settings → Roles) to lock down who can apply
large discounts — the visibility is gated, but enforcement is server-side.
Point of Sale (POS)
Sales → POS Terminal is the fast-checkout screen.
Features:
- Product search — SKU or name, real-time stock validation.
- Customer search — by phone or name; create new on the fly.
- Cart with quantity, line discount, and tax preview.
- Payment account selection (cash / bank / card) — configured at
Settings → Payment Accounts. - Atomic checkout — single transaction, no double-charge risk.
- Receipt print — opens the receipt PDF immediately.
POS uses the same invoice pipeline as a job, so every counter sale:
- Auto-numbers an invoice.
- Decrements stock (with weighted-average cost).
- Posts to the GL.
- Updates the customer's purchase history.
Invoices
Sales → Invoices lists all invoices (sales + jobs).
Each invoice has:
- Status:
draft→issued→partial/paid/overdue/cancelled. - PDF download — branded per your document template.
- Linked documents — credit notes, payments, source sale or job.
Returns
Sales → Returns handles product returns.
Lifecycle
pending → approved → (restock or scrap)
→ rejected
- Pending — created from a sale or invoice. Optionally linked to a warranty claim.
- Approve — choose restock (return to inventory at WAC) or scrap (write off).
- Reject — with reason.
A restocked return automatically:
- Adds stock back to inventory at the original weighted-average cost.
- Posts the appropriate GL entries (inventory + COGS reversal).
- Generates a credit note linked to the original invoice.
Payment accounts
Settings → Payment Accounts lists the cash, bank, and card accounts
you accept. Each account has:
- Type (cash / bank / card / mobile wallet / other).
- Name and reference number.
- Status (active / inactive).
Payments on jobs, sales, and POS all draw from this list — so every collection is tagged with the right account for reconciliation.
Tips
- Counter vs. workshop — counter sales are independent of jobs.
A customer buying four tires and a filter at the counter is a
sale, not ajob. - Mixed billing — a single customer can have both job invoices (for service work) and sale invoices (for parts), unified in their purchase history.
- Stock awareness — the POS warns if you try to sell more than is in stock. You can override (for special orders) but the override is logged.
Next: CRM & Memberships, or Inventory & Vendors.