Point of Sale

Point of Sale (POS) is the main cashier workspace. From here, cashiers manage the full transaction lifecycle: selecting products, managing tables, accepting payments, printing receipts and kitchen orders, and closing the shift. POS also receives real-time notifications for visitor orders.

Cashier

When to Use

đŸĒShift Operations
  • Cashier opens a new shift by entering beginning balances per payment type.
  • Cashier resumes an active shift without opening a new one.
  • Supervisor closes the shift, reconciles physical totals, and prints the closing report.
🛒Transactions
  • Scan barcodes, search products, select from grid or category.
  • Import from Sales Order or reopen a previous invoice.
  • Change qty, price, discount, memo, customer, or salesperson.
  • Process multiple payment types including online payment gateways.
đŸĒ‘Table Management
  • Open a table, fill in guest name and guest count.
  • Move an order to a different table.
  • Print orders to the kitchen by product group and dedicated printer.
  • Receive and process visitor orders via table QR codes.
⭐Rewards & Points
  • Auto-calculate product rewards from customer rules.
  • Use customer point balance as a payment method.
  • Invoice discounts, product discounts, and taxes are calculated automatically.

Opening & Managing a POS Shift

Open the Point of Sale menu

Navigate to Sales & POS → Point of Sale → Point of Sale. The list of POS points is shown with their status, opening date, and the user holding the shift.

Select a POS point

Click the POS point to use. If no shift is active, a form to enter beginning balances per payment type appears. Fill in the opening balances and click Start.

Resume an active shift

If the same user already has an active shift, click Resume to return directly to the POS screen without entering balances again.

POS screen opens

The system loads POS point configuration: default customer, table list, printers, payment types, paper width, product categories, barcode decoder, reward rules, and table/rental mode.

Process transactions

Add products, manage tables, accept payments, and print receipts or kitchen orders.

Close the shift

Return to the PosStart screen, open Close POS, enter the physical count per payment type, review discrepancies, then click Close POS. Only users with the closepos role can close a shift.

Main POS Screen

The POS screen is split into two main areas: the product area on the left and the transaction panel on the right.

  • Barcode scan — scanning a barcode automatically adds the product to the cart. Supports multiple barcode decoder formats configurable per POS point.
  • Product search — search by name or code in real time. Display can be a grid with images or a text list depending on POS point layout.
  • Product categories — filter products by product groups allowed in this POS point.
  • Product cache — when enabled, the product list is stored locally for faster navigation.
  • Special products — products with serial numbers, variants, multiple units, or departments open an additional dialog before being added to the cart.

  • Cart — each item shows product name, qty, unit, price, discount, and subtotal. Click an item to select it, then use the keypad or dialog to change values.
  • Keypad — number buttons to change qty, price, or discount for the selected item. Discount editing can be locked by the locksalesdisc role; price editing by locksalesprice.
  • Customer & Salesperson — change from the POS default customer; changing customer affects discount and point rules.
  • Sales Order Import — pull items from a confirmed Sales Order into the POS cart.
  • Open Invoice — reopen a previously saved transaction by invoice number for revision or reprint.
  • Print Bill — print a temporary bill (not final) to show the customer.

  • Point Balance — current customer point balance.
  • Transaction Points — points earned from this transaction, calculated from salespointrewardrules.
  • Reward Products — free or bonus products added to the transaction based on customer reward rules.
  • Reward calculation runs automatically before the transaction is saved.

All payment types enabled in the POS point configuration appear here.

Type Kind Notes
Cash 0 Amount minus remain (change) determines the actual payment.
Transfer / Card 1–5 Direct amount input; can be combined with other types.
Customer Points 6 Uses point balance. Conversion rate (points to currency) is set in the payment type configuration.
Online Payment Gateway 7 The Pay Now button opens the gateway process. Payment must be confirmed (accepted) before Save becomes active.
  • Credit Limit — shown above the payment type list; affects whether Save is enabled.
  • Quick Amount — fast amount buttons to speed up cash entry.
  • QR Code — some payment types show a QR button to display a payment code.
  • Save button — active when total payments satisfy the credit limit. After a successful save, cashier can print a receipt, open a new order, or return to PosStart.

Table Management & Kitchen Print Order

The table feature is active when the POS point is configured with usetable = 1. Each table has its own status communicated through the postable database table.

Opening & Managing Tables
  • Click the Select Table button to open the table grid.
  • Occupied tables look different from empty ones. Tables with new unprocessed visitor orders are shown in an urgent color (orange/red).
  • Click a table to open its order. The system calls the openpos API and loads all existing order products.
  • Enter guest name and guest count in the table properties dialog.
  • Use Move Table to transfer the entire order to a different table.
Printing Orders to the Kitchen
  • Click Print Order to send items to the kitchen printer.
  • The system compares the last printed order snapshot with the current order. Only new items (the difference) are sent to the kitchen — previously printed items are not repeated.
  • Each kitchen printer can be configured to receive items from specific product groups only.
  • After a successful print, the snapshot is updated and the isordervisitor flag is reset to 0.
Table Status Flags (postable table)
Flag Value Meaning
isordervisitor 0 No new visitor order is waiting to be processed by the cashier.
isordervisitor 1 Visitor has sent a new order. Table appears urgent in POS. Cashier should open the table and print to kitchen.
firstorder 1 First visitor order at this table. POS clears the old snapshot so all items are treated as new during Print Order.
isvisitorpaid 1 Visitor has fully paid via payment gateway from the Table Order screen. Cashier only needs to click Close Table.

Visitor Order Flow

This feature is active when the POS point is configured with orderfromvisitor = 1. POS polls the server every 10 seconds.

Visitor Side
  1. Scan table QR → Table Order page opens.
  2. Browse and select products.
  3. If the POS has an active payment gateway: complete payment first.
  4. Click Send Order → order saved on server, table flags updated.
Cashier Side
  1. POS detects isordervisitor = 1 via polling → notification sound plays.
  2. Table appears with urgent color in the table grid.
  3. Cashier clicks the table → POS loads the visitor's order.
  4. Cashier clicks Print Order → new items are printed to the kitchen.
  5. If visitor already paid: see the "Already Paid by Guest" banner in the payment panel.
  6. Cashier clicks Close Table → table is cleared, transaction complete.

Scenario: Guest Already Paid from the Table New

📱
1. Guest Pays

Guest clicks the gateway button on the Table Order screen → payment confirmed → order is submitted automatically with isvisitorpaid = 1.

đŸ–¨ī¸
2. Cashier Prints to Kitchen

Cashier receives notification, opens the table, clicks Print Order as usual. The payment panel is pre-filled and marked "Already Paid by Guest".

đŸšĒ
3. Cashier Closes Table

The Save button changes to Close Table (orange). Click to clear the table. No payment re-entry needed.

What Changes on the Cashier Screen
  • A ⭐ Already Paid by Guest banner appears above the payment type list.
  • All payment types are displayed as read-only — the cashier cannot modify amounts.
  • The Pay Now button (online payment gateway) is disabled.
  • The Save button changes to Close Table with a meeting_room icon and orange color.
  • Clicking Close Table only clears the table status — it does not rewrite payment data.

Closing POS (End of Shift)

  1. Return to the PosStart screen from the button in POS or the menu.
  2. Click Close POS (only visible to users with the closepos role).
  3. The system shows a shift summary: total per payment type, number of transactions, and net sales.
  4. Cashier/supervisor enters the physical count per payment type.
  5. Review discrepancies. If there is negative stock, the page lists the affected products with a CSV export option.
  6. Click Close POS to save the closing. A closing report can be printed after the process completes.

Things to Check

  • Do not leave the POS screen while a transaction is unsaved. Temporary data is stored in local storage, but the official save only happens when savepos succeeds.
  • POS point configuration changes (default customer, printer, payment type, etc.) take effect immediately without restarting.
  • The Save button is inactive if the customer's credit limit is not satisfied by the total payment.
  • Payment gateways (kind=7) require confirmation (accepted = 1) before the transaction can be saved.
  • Print Order uses a diff/snapshot — items that were already printed will not be printed again even if they appear in the cart.
  • Closing reads totals from all shift transactions. Negative stock is detected at closing and must be resolved before the report is accepted.
  • Printing can go through APS (raw printer) or browser preview. If APS connection fails, prints are queued as pending and resent when the connection is restored.
  • For tables with visitor payment, the cashier does not enter payment amounts — just click Close Table.

Menu Location

See Also