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 Order via QR Code 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 β†’ Order via QR Code 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 Order via QR Code 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.

Direct Posting New

Normally a POS invoice only reduces stock and reaches the ledger when the shift is closed. With Direct Posting, inventory and journal entries are written as soon as the invoice is saved, so stock and the ledger follow sales throughout the day instead of waiting for the shift to close. The switch lives in Point of Sale Configuration, is set per POS point, and is off by default. While it stays off, POS behaves exactly as before.

Event Direct Posting off (default) Direct Posting on
Invoice saved Only the invoice is stored. Stock and journal have not moved yet. Inventory and journal for that invoice are written immediately.
During the shift Stock and ledger reports do not yet include this shift's sales. Stock and ledger reports already include every saved invoice.
Closing the shift Every invoice in the shift is posted at that moment — the more invoices, the longer it takes. There is no posting queue left, so closing is much faster.
Not enough stock when the invoice is saved Same for both. When the checkinventoryavailable access right is on, an invoice that exceeds stock is rejected when saved (see Insufficient Stock When Saving an Invoice). When it is off, nothing is checked.
Stock problems Closing is rejected when stock is not enough for this shift's invoices. Closing is rejected while any product still has a negative balance.
Closing report Identical. Invoices still belong to the running shift until the shift is closed.
What the Cashier Should Know
  • When the Check stock balance during transaction access right is on, an invoice that exceeds stock is rejected when saved, and the screen shows the quantity entered and the quantity available (see the section below). When it is off, the cashier is never blocked and selling continues even when the recorded stock is empty.
  • With the access right off, stock may go negative without any warning. With it on, a negative balance that still appears (for example two cashiers selling the last unit at the same moment) is caught at closing time.
  • Only finalized cashier invoices are posted. Table orders that have not become an invoice do not reduce stock.
  • The POS screen, buttons, and printouts do not change at all.
What the Supervisor Should Know
  • Close POS is rejected while any product still has a negative balance. The full list is shown and can be exported to CSV.
  • Fix it first with a goods receipt or a stock adjustment, then run Close POS again.
  • The checkinventoryavailable access right controls two checks: when an invoice is saved (rejecting sales that exceed stock) and at shift closing. It is on by default for roles. For cashiers who may sell without stock, turn it off on the Role.
  • Cancelling a shift also reverses its posting: inventory, journal, customer deposits, and giro written by those invoices are removed again.

Insufficient Stock When Saving an Invoice New Feature

When the Check stock balance during transaction access right on the cashier's Role is on, items without enough stock cannot be sold. The check runs when the invoice is saved, in regular POS and in Direct Posting alike. This access right is on by default.

  1. The cashier saves the invoice or completes payment. The system compares each product's quantity with the stock balance in the invoice's warehouse and department.
  2. If anything is short, the invoice is not saved and a dialog shows each product's name, the quantity entered, and the quantity available.
  3. Click OK. The quantity on the short lines is adjusted to the available stock, the line is selected and scrolled into view, and prices and totals are recalculated. A line with no stock at all is removed.
  4. Payment amounts are cleared because the total changed. Enter them again, then save.

How Stock Is Counted

Want to Keep Selling Without Stock?

Turn off Check stock balance during transaction on that cashier Role. Selling becomes unrestricted, and the stock check at shift closing stops as well. Direct Posting has no effect on this.

Split Bill New

Split Bill is for a table whose guests want to pay separately. The cashier picks the items and quantities one guest pays for, takes payment as its own receipt, and the rest of the order stays on the table for the next guest. It is available on POS points that use tables (usetable = 1) and needs no extra setup.

  1. Open a table that already has an order, then go to the payments tab. A blue Split Bill button (call_split icon) appears above the payment types.
  2. Click Split Bill. The dialog lists every item on the table. Set the quantity this guest pays for with the − / + buttons or by typing a number; the estimated amount shows at the bottom left.
  3. Click Pay Selected Items. The cart now holds only the selected items as a new receipt without a table. A bar above the payments reads Split bill from [table name] with a Cancel button.
  4. Take payment as usual: choose the payment type, enter the amount, save, and print the receipt.
  5. Once the receipt is fully paid, click the green Continue to [table name] button. The table reopens with the remaining items. Repeat for the next guest, or pay the rest directly as usual.
Rules to Know
  • Quantities can be split per item, for example 3 portions with 1 for this guest and 2 staying on the table. Line discounts are split in proportion to the quantity.
  • At least one item must be selected and at least one item must stay on the table. If everything is being paid, pay the table directly without Split Bill. A table with only one item cannot be split.
  • The receipt-level fixed discount and additional charges stay on the table receipt; the split receipt does not carry them.
  • The split receipt records the memo Split bill from [table] ([table receipt number]) so it is easy to trace in reports.
  • Not available for rental/reservation tables, tables already paid by the visitor, and receipts that include a Sales Order.
  • While a Split Bill is in progress the cashier cannot switch to another table or queue; the system asks to finish or cancel the Split Bill first.
Safe to cancel or if it fails. Clicking Cancel restores the table cart exactly as it was. If the table receipt was already saved, its content is only replaced with the remaining order at the moment the split receipt is paid successfully, in the same process; if the payment fails, the table is unchanged. If the table order was changed from another device in the meantime, the system refuses with The table order has changed: reopen the table and repeat Split Bill.

Product Variants in POS New

Products managed as variants (size/color/model from the Product form → Manage Variants) appear as one card per parent, not one card per combination.

Temporary Offline Mode New

If the cashier’s internet drops briefly, receipts can still be saved. They are kept on the device, the receipt prints as usual, and once the connection is back they are sent to the server automatically, in order, with no action from the cashier.

Requirements

When the Internet Drops

  1. Save the receipt as usual. If the server cannot be reached, the receipt is kept on the device with a spare number, the receipt prints, and a new sale can start.
  2. A cloud icon with a number appears at the top of the POS screen: the receipts not yet sent. Click it to see the list.
  3. Once connected, the receipts are sent automatically. The time on each receipt is when the cashier saved it, not when it was sent.

What Cannot Be Done Offline

Table POS While Offline

After Sending

Clashing Receipt Numbers New

A POS session cannot be opened if that POS’s Sales Invoice Prefix can produce the same numbers as another POS, or as the sales invoice or sales return number format of any division. The message names the clashing format. Change the prefix in POS Point so it is unique, then open the session again.

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 stock is not enough — or, on a POS point with Direct Posting, any product has a negative balance — 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.
  • On a POS point with Direct Posting, stock and journal were already written when each invoice was saved. Closing only reconciles cash and confirms no product is left with a negative balance.
  • 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