Point of Sale (POS)
Overview
The POS module provides a full-featured point-of-sale system for processing sales, managing terminals and cashier sessions, handling multiple payment methods, printing receipts, running promotions, and suspending/resuming sales. The POS hub is a tabbed interface that centralises all POS management.
Accessing POS
Navigate to POS in the sidebar. The POS hub opens with 5 tabs: Terminals, Sessions, Sales, Suspended, and Reports.
POS Hub Tabs
| Tab | Description |
|---|---|
| Terminals | Manage POS terminal devices |
| Sessions | View and manage cashier sessions |
| Sales | Browse completed sales history |
| Suspended | View and resume suspended sales |
| Reports | POS-specific reports |
Quick Stats
An analysis panel at the top of the hub shows key POS metrics including total sales, revenue, and session statistics.
Open POS / Process a Sale
Click Open POS from the POS hub (or New POS Sale from the dashboard) to launch the POS terminal interface.
The POS terminal opens in a dedicated full-screen layout optimised for touch and speed.
Processing a Sale
- Select or scan products to add them to the cart.
- Adjust quantities, apply discounts, or remove items as needed.
- Optionally select a customer (defaults to "Walk-in Customer").
- Choose one or more payment methods and enter payment amounts.
- Complete the sale.
Payment Methods
The system supports multiple payment methods per sale:
| Method | Description |
|---|---|
| Cash | Physical cash payment with change calculation |
| Card | Card terminal payment |
| Mobile Money | Mobile money transfer |
| Bank Transfer | Direct bank transfer |
After Completing a Sale
- A receipt is generated automatically.
- If Auto Print Receipt is enabled in settings, the print dialog opens immediately.
- Stock is deducted from the terminal's warehouse.
- Accounting journal entries are created.
Suspending a Sale
If a sale cannot be completed immediately, it can be suspended and resumed later from the Suspended tab. Suspended sales retain all cart items and customer information.
Terminals
Terminal List
The Terminals tab displays all POS terminals in a data table.
Available Actions
| Action | Description |
|---|---|
| Create Terminal | Open the terminal creation form |
| Edit Terminal | Modify terminal settings |
Terminal Form Fields
| Field | Required | Description |
|---|---|---|
| Terminal Name | Yes | Descriptive name (e.g., "Counter 1", "Main Register") |
| Warehouse | Yes | Warehouse linked to this terminal for stock deduction |
| Default Bank Account | No | Pre-selected bank account for card/transfer payments |
| Active | Yes | Toggle terminal availability |
Note: Each terminal is automatically assigned a unique Terminal ID upon creation.
Sessions
What is a Session?
A POS session represents a cashier's shift on a specific terminal. Sessions track opening cash, all sales made during the shift, and closing cash for reconciliation.
Session List
The Sessions tab displays all sessions with analysis cards and a data table showing terminal, cashier, status, opening/closing times, and total sales.
Opening a Session
A session is opened when a cashier starts using a POS terminal. The opening cash amount is recorded.
Session Detail Page
Click on a session to view its detail page.
Session Info Cards
| Metric | Description |
|---|---|
| Terminal | Terminal name and ID |
| Cashier | Name of the user who opened the session |
| Duration | How long the session has been open (or was open) |
| Total Sales | Sum of all completed sale amounts |
Cash Reconciliation
| Field | Description |
|---|---|
| Opening Cash | Cash amount at session start |
| Cash Sales | Total cash received during the session |
| Expected Cash | Opening Cash + Cash Sales |
| Closing Cash (Counted) | Actual cash counted at session close |
| Variance | Difference between expected and counted cash (colour-coded green/red) |
| Notes | Cashier's closing notes |
Payment Method Breakdown
Shows total revenue collected by each payment method during the session.
Sales Table
Lists all sales processed during the session with:
- Sale number (linked to detail page)
- Time
- Customer name
- Number of items
- Total amount
- Status badge (Completed / Voided / Pending)
Session Actions
| Action | Description |
|---|---|
| Close Session | End the session and record closing cash (only available for open sessions) |
Session Status
| Status | Colour | Description |
|---|---|---|
| Open | Green | Session is currently active |
| Closed | Grey | Session has been closed with reconciliation |
Sales
Sales List
The Sales tab displays all POS sales in a searchable, sortable data table.
Sale Detail Page
Click a sale number to view the full detail page.
Sale Information
| Field | Description |
|---|---|
| Sale Number | Unique sale identifier |
| Date | Date of the sale |
| Time | Time of the sale |
| Terminal | Terminal where the sale was processed |
| Cashier | User who processed the sale |
| Customer | Customer name or "Walk-in Customer" |
Status Badges
Two status badges are displayed:
Sale Status:
| Status | Colour | Description |
|---|---|---|
| Completed | Green | Sale processed successfully |
| Voided | Red | Sale has been reversed |
| Pending | Yellow | Sale is in progress |
Payment Status:
| Status | Colour | Description |
|---|---|---|
| Paid | Green | Full payment received |
| Partial | Yellow | Partial payment received |
| Unpaid | Red | No payment received |
Items Table
| Column | Description |
|---|---|
| Product | Product name |
| SKU | Product SKU |
| Qty | Quantity sold |
| Unit Price | Price per unit |
| Discount | Discount applied to this line |
| Tax | Tax amount for this line |
| Total | Line total |
Totals
| Field | Description |
|---|---|
| Subtotal | Sum of line items before discount and tax |
| Discount | Total discount applied |
| Tax | Total tax amount |
| Total | Final sale amount |
Payments
Lists all payments received for this sale with payment method name, reference, and amount. If change was given, it is displayed separately.
Notes
Any notes attached to the sale.
Available Actions
| Action | Description |
|---|---|
| Print Receipt | Open the receipt modal with print option |
| Void Sale | Reverse the sale, restore inventory, and reverse accounting entries |
Warning: Voiding a sale cannot be undone. It restores stock to the warehouse and reverses all associated accounting journal entries.
Receipts
Receipts are formatted for 80mm thermal receipt printers and include:
- Company logo, name, address, phone, and VAT number
- Custom receipt header text (from Settings)
- Sale number, date, time, cashier, terminal, and customer
- Itemised list with quantities, unit prices, discounts, and line totals
- Subtotal, discount, tax, and total
- Payment method breakdown with change given
- "Thank you for your purchase!" message
- Custom receipt footer text (from Settings)
- Barcode of the sale number
Voided sales display a prominent "VOIDED" banner on the receipt.
Suspended Sales
Suspended Sales List
The Suspended tab displays all currently suspended sales in a data table with options to resume or discard.
Suspended sales are temporary holds that preserve the cart contents and customer information, allowing the cashier to serve another customer and return to the suspended sale later.
Promotions
Navigate to POS > Promotions from the sidebar (or via the dedicated route).
Promotion List
Displays all promotions in a data table.
Available Actions
| Action | Description |
|---|---|
| Create Promotion | Open the promotion creation modal |
| Edit Promotion | Modify an existing promotion |
Promotion Form Fields
| Field | Required | Description |
|---|---|---|
| Promotion Name | Yes | Descriptive name (e.g., "Summer Sale 20% Off") |
| Type | Yes | Percentage, Fixed Amount, or Buy X Get Y |
| Discount Value | Yes | Percentage or fixed amount depending on type |
| Coupon Code | No | Optional code customers can enter to apply the promotion |
| Start Date | No | When the promotion becomes active |
| End Date | No | When the promotion expires |
| Max Uses | No | Maximum number of times the promotion can be used (unlimited if blank) |
| Auto-Apply | No | Automatically apply the promotion without a coupon code |
| Active | Yes | Toggle promotion on/off |
Buy X Get Y Fields (visible when type is "Buy X Get Y")
| Field | Required | Description |
|---|---|---|
| Buy Quantity | No | Number of items the customer must purchase |
| Get Quantity (Free) | No | Number of free items the customer receives |
Conditions (Optional)
| Field | Description |
|---|---|
| Min Cart Amount | Minimum cart total for the promotion to apply |
| Min Cart Quantity | Minimum number of items in the cart |
POS Reports
The Reports tab within the POS hub provides POS-specific reporting. See the main Reports section for the full list of available reports.