Table Order

A QR-code-based self-ordering page for guests. Guests open a link or scan a QR on their table, browse products, complete payment (if the POS has a payment gateway enabled), and submit their order directly to the cashier system — without calling a waiter.

Guest

When to Use

🍽️Restaurant / Café
  • Tables are equipped with QR codes containing a URL with the POS ID and table number.
  • Guests order from their smartphone without needing to flag down a server.
  • Orders go directly to the cashier POS and can be printed to the kitchen immediately.
💳Self-Pay
  • POS has a payment gateway enabled in the payment type configuration.
  • Guests complete full payment from the table — no trip to the cashier needed.
  • Cashier only needs to close the table after the order is served.
🎛️Outlets with Diverse Menus
  • Products are shown based on categories configured in the POS point.
  • Prices, discounts, and taxes are calculated automatically per product rules.
  • Products with variants or add-ons show a selection dialog before being added to the cart.
🔄Adding to an Existing Order
  • Guests can return to the Table Order page to add more items to the same table.
  • Previously sent items are locked (read-only); only new items are transmitted.
  • The cashier receives a new notification and prints only the additions to the kitchen.

How to Access

📱
Scan QR at the table

The page is opened via a special URL generated when the table QR is created. The URL requires three mandatory parameters:

Parameter Example Description
p p=12 ID of the POS point that will receive the order.
t t=5 Table ID (from the postable table).
e e=1720000000 Unix timestamp expiry. If the link has expired, the page displays an "Invalid URL" message.

Standard Order Flow (Without Online Payment)

Scan QR or open the table URL

The system validates the URL parameters (p, t, e), checks POS status, and loads table data. If the URL is invalid or the POS is inactive, an error message is shown.

Product page loads

Products, categories, and POS configuration are loaded. The page is ready to use.

Select products

Browse products by category tab or search box. Tap a product to add it to the cart. Products with variants or add-ons show a dialog before being added.

Review your order

Open the Your Order tab. See item list, quantities, prices, and total. Adjust quantities or remove items before sending.

Send Order

Tap Send Order. The system submits data to savepos with flags isorder=1, isordervisitor=1. On success, items are locked and the guest sees a confirmation.

Cashier receives notification

The POS detects the new order (polled every 10 seconds), plays a notification sound, and highlights the table as urgent. The cashier opens the table and prints the kitchen order.

Pay Online from the Table New

If the POS point has a payment type with kind = 7 (Online Payment Gateway), the Table Order page will show a payment button. The guest must complete payment before the order is submitted.

Select products & review cart

Same as the standard flow. After adding products, open the Your Order tab to see the total.

Switching to the Order tab — Sales ID is created automatically

The system calls getpossalesid to obtain a transaction ID used as the gateway payment reference. This happens in the background.

Tap the payment gateway button

The payment button (named per payment type configuration) appears in the Your Order tab, replacing the Send Order button. Tap it to start the gateway payment process.

Complete payment

Follow the gateway instructions (transfer, scan QRIS, credit card, etc.). After payment is confirmed by the gateway, the system receives a success callback.

Order is submitted automatically

After payment succeeds, the order is automatically submitted to the server with the confirmed gateway payment data (accepted=1). The cashier does not need to enter payment details.

Screen is locked — payment complete

The page shows a green checkmark and a "Payment Successful" message. The guest cannot add more items from this session.

Page Features

  • Store Name — shown in the top-left corner.
  • Search Box — search products by name in real time.
  • Cart Button — shortcut to the Your Order tab with item count badge.
  • Language Selector — switch the page display language.
  • Bottom Tab Bar — navigate between Products and Your Order.

  • Categories — filter buttons for product groups. All categories can be selected together or individually.
  • Product Grid — shows product image, name, and price. Number of columns adjusts to screen width.
  • Tap a Product — adds one unit to the cart. A variant/add-on dialog appears if the product has options.
  • Discount Badge — shown on products with an active discount rule.
  • Out of Stock — products with zero stock (when stock control is active) are shown as disabled.

  • Item List — each item shows product name, unit, unit price, quantity, and subtotal. Items already sent to the cashier are marked with a lock icon (read-only) and cannot be changed.
  • Order Total — shown in the bottom toolbar below the item list.
  • Online Payment Button — appears if the POS has a gateway payment type (kind=7). Replaces the Send Order button.
  • Send Order Button — appears if there is no gateway payment type. Guest confirms and the order is sent to the cashier.
  • Success Screen — after a successful online payment, the page shows a green checkmark and a confirmation message. All actions are disabled.

Interaction with Cashier POS

After the guest submits an order, a chain of events happens automatically on the cashier side.

Guest Action What Happens on the Server What the Cashier Sees
Submit order (without payment) isordervisitor = 1, firstorder = 1 (first) or 0 (additional) on postable Notification sound, table turns urgent
Pay via gateway + submit order isordervisitor = 1, isvisitorpaid = 1, payment saved in salespayments, POS balance updated Notification sound, table urgent, payment panel pre-filled, Save button = Close Table
Cashier clicks Print Order Item diff sent to kitchen printer, isordervisitor = 0, snapshot updated Print confirmation, urgent highlight removed from table
Cashier clicks Close Table Table cleared (salesid = '', all flags reset to 0) Table returns to empty status in the grid
Cashier clicks Save (normal payment) Payment processed, table cleared, POS balance updated Transaction complete, table empty

Technical Reference

Submit Order Payload
isorder1 (order mode, not cashier finalization)
isordervisitor1 (guest is submitting)
firstorder1 (first) / 0 (additional)
payment[] (empty if no gateway)
paymentGateway data with kind=7, accepted=1 if paid
deleteproduct0 (append only, do not delete)
Table Flags After Order Submit
FlagValue
isordervisitor 1 (new order waiting)
firstorder 1 (first) / 0 (additional)
isvisitorpaid 1 (gateway paid) / 0
salesid Populated with the active transaction ID

Comparison: With vs Without Payment Gateway

Aspect Without Gateway With Gateway New
Button in Your Order tab Send Order Gateway Button
Payment flow Cashier receives and processes payment at the counter Guest pays directly from the table
Cashier payment panel on table open Amount = 0, cashier must enter Amount pre-filled, read-only
Cashier action button Save Close Table
Print Order to kitchen ✅ Available ✅ Available (unaffected)
Table status after order submit Still occupied (waiting for cashier to take payment) Still occupied (waiting for cashier to close)
Guest screen after completion Confirmation "Order Received" Confirmation "Payment Successful" + locked

Things to Check

  • Invalid or expired URL. If the p, t, or e parameters are wrong, the page shows an error and the order cannot be submitted.
  • POS inactive. If there is no active shift on that POS point, the page cannot load products.
  • Guests cannot modify items already sent to the cashier (marked with a lock icon). Contact the cashier for changes.
  • If the gateway payment fails or is cancelled, the order is not submitted. The guest can retry the payment.
  • Prices, discounts, taxes, and service staff are calculated automatically from product and POS configuration — guests cannot change them.
  • After paying via gateway, the screen is locked. To add more items, the cashier must close the table first.
  • Cashier can still print orders to the kitchen even after the guest has paid. The payment feature does not affect the kitchen print flow.
  • For security, gateway payment confirmation is validated server-side before the isvisitorpaid flag is set.

Required Configuration

Configuration Location Description
usetable = 1 POS Point Enables the table feature in POS.
orderfromvisitor = 1 POS Point Enables visitor order polling on the cashier screen.
Table List POS Point → Tables List of tables that can accept visitor orders.
Payment Type (kind=7) Master Data → Payment Type Add a gateway payment type to enable online payment from the table.
Order Printers POS Point → Print Orders Kitchen printer configuration with the product groups routed to each printer.

Menu Location

See Also