Point of Sale module
Fast retail checkout with barcode scanning, cart management, and transaction history.
The Point of Sale (POS) module provides a streamlined checkout experience for retail counters, showrooms, and walk-in sales—optimised for speed and simplicity.
Module overview
The POS module is designed for in-person transactions where customers are present. It integrates with your existing inventory and price lists while providing a dedicated interface for quick sales.
| Feature | Description |
|---|---|
| Barcode scanning | Scan products directly into the cart using your device camera |
| Product search | Find products by name, SKU, or category |
| Cart management | Add, edit, and remove items with quantity adjustments |
| Customer selection | Link sales to registered customers or process walk-in sales |
| Price list integration | Automatic pricing from your configured sell price lists |
| Discounts | Apply line-item or order-level discounts |
| Transaction history | View, search, and export completed sales |
Checkout screen
The main checkout interface is organised into two panels:
Left panel: Product selection
- Search bar — Type to search products by name or SKU
- Scan button — Open the barcode scanner to add products
- Product grid — Browse and tap products to add to cart
Right panel: Cart
- Cart items — List of products with quantity and price
- Subtotal — Sum before discounts
- Discount — Any applied discounts
- Total — Final amount due
- Complete Sale — Finish the transaction
Adding products to the cart
Barcode scanning
The fastest way to add products:
- Tap the Scan button in the header
- Point your device camera at the product barcode
- The product is automatically added to the cart
If the barcode isn’t found, you’ll see a notification with the option to search manually.
Manual search
When scanning isn’t available:
- Type in the search field (product name, SKU, or category)
- Results appear in the product grid
- Tap a product to add it to the cart
Repeat items
Scanning or selecting the same product again increases the quantity by one. To adjust quantities manually, tap the item in the cart.
Cart management
Editing quantities
- Tap the quantity on any cart item
- Use the numpad to enter the new quantity
- Tap confirm to update
Removing items
- Swipe left on an item to reveal the delete option
- Or tap the item and set quantity to zero
Clearing the cart
Tap Clear Cart to remove all items. You’ll be asked to confirm before clearing.
Customer selection
Walk-in sales (default)
If no customer is selected, the sale is recorded as a walk-in transaction:
- Default sell price list pricing applies
- No customer reference stored
- Transaction still appears in history
Registered customers
To link a sale to a customer:
- Tap the customer selector in the header
- Search or browse your contacts
- Select the customer
Benefits of selecting a customer:
- Customer-specific pricing applies automatically
- Transaction linked to customer history
- Useful for loyalty tracking or B2B sales
Pricing
Price list integration
The POS module uses your configured sell price lists from the Accounts module:
- Default price list — Applied for walk-in sales
- Customer pricing — Overrides applied when a customer is selected
- Price resolution — Falls back to default if no customer-specific price exists
Prices display in real-time as you add items to the cart.
Discounts
Apply discounts at two levels:
| Level | How to apply | Effect |
|---|---|---|
| Line-item | Tap cart item → Enter discount % | Discount on that product only |
| Order-level | Tap Discount button → Enter discount % | Discount applied to subtotal |
Both discount types can be combined.
Completing a sale
When ready to finalise:
- Review the cart items and totals
- Tap Complete Sale
- Confirm the transaction
On completion:
- Transaction is recorded with a unique ID
- Cart is cleared for the next customer
- Confirmation shows transaction number
Transaction history
View and manage completed sales:
Viewing transactions
Navigate to the Transactions tab to see:
- Today — Current day’s sales
- All — Complete transaction history
Each transaction shows:
- Transaction ID
- Time
- Total amount
- Item count
- Customer (if linked)
Filtering
Narrow down transactions by:
- Date range — Select start and end dates
- Customer — Filter by specific customer
- Search — Find by transaction ID
Transaction details
Tap any transaction to view:
- Full line item list
- Quantities and prices
- Applied discounts
- Customer details
- Transaction timestamp
Voiding transactions
To void a completed sale:
- Open the transaction details
- Tap Void Transaction
- Enter a void reason
- Confirm
Requirements:
- User must have void permission
- Voided transactions remain visible with “Voided” status
- Void reason and timestamp are recorded
Exporting data
Export transaction history for reporting:
- Set your desired date range
- Tap Export
- Download CSV file
The export includes all transaction details for the selected period.
Daily summary
The transaction screen displays a daily summary header showing:
- Total transactions — Number of sales today
- Total sales — Revenue for the day
- Average sale — Mean transaction value
Use this for quick end-of-day reconciliation.
Offline capability
The POS module works when your device loses connectivity:
What works offline
- Product browsing — Cached product index remains available
- Cart operations — Add, remove, and edit items
- Complete sales — Transactions queue for sync
Sync status
A pending sync indicator appears when transactions are waiting to upload. When connectivity returns:
- Queued transactions sync automatically
- Indicator clears when all transactions are uploaded
- Duplicate submissions are prevented
Best practices for offline
- Ensure products are cached before going offline
- Complete sync before ending your shift
- Check transaction history confirms all sales uploaded
Screen layout
The POS interface is optimised for tablets in landscape orientation:
┌─────────────────────────────────────────────────────────────┐
│ [Scan] [Search... ] [Customer: Walk-in ▼] │
├───────────────────────────────────┬─────────────────────────┤
│ │ CART │
│ Product Grid / Search Results │ ┌─────────────────────┐ │
│ │ │ Item 1 $10.00 x2 │ │
│ [Product] [Product] [Product] │ │ Item 2 $25.00 x1 │ │
│ [Product] [Product] [Product] │ │ Item 3 $15.00 x3 │ │
│ [Product] [Product] [Product] │ └─────────────────────┘ │
│ │ │
│ │ Subtotal: $100.00 │
│ │ Discount: -$10.00 │
│ │ ─────────────────────── │
│ │ TOTAL: $90.00 │
│ │ │
│ │ [COMPLETE SALE] │
├───────────────────────────────────┴─────────────────────────┤
│ [Clear Cart] [Hold] [Discount] [Transactions] │
└─────────────────────────────────────────────────────────────┘
On mobile devices, the layout stacks vertically with tabs to switch between product selection and cart.
Best practices
- Use barcode scanning — Faster than manual search for most items
- Set up your price list first — Ensure products have prices configured
- Train on the numpad — Practice quantity edits for speed
- Reconcile daily — Check the daily summary against your cash drawer
- Sync before closing — Ensure all transactions are uploaded
- Use customer selection for B2B — Track business customer purchases