15 min read

QR Table Ordering

Set up table QR labels and seating, guide guests through menu requests, release the bill, collect payment at the counter and download a private full-table receipt.

QR table ordering lets guests scan a QR label on their table, join with a short code your staff give them and send orders from their phone. Staff accept each request from a register session (the default) or the request goes straight to the kitchen. A cashier always collects payment; a guest request never means the bill is paid. It needs the Point of Sale Restaurant pack and its own add-on.

Guest ordering and counter payment

Guests can join the current seating, browse the menu, send requests and view the released bill when the shop has POS, Restaurant and QR ordering enabled. Pay-at-table is unavailable while its payment capability is disabled. Staff collect payment at the counter; an active seating member can then open and download a private receipt for a released, fully paid table bill.

Where to find the pages

As the store owner, go to Counter devices (/counter/devices), choose Settings, then use QR table ordering in the Add-ons row of Counter settings (it shows On or Not on). The other screens can be opened by path. Only the store owner or a store admin can open them.

  • Settings: /settings/pos/table-ordering
  • Guest requests (a read-only list): /settings/pos/table-ordering/requests
  • Seat a table and finish bills: /settings/pos/table-ordering/seating

Turn the add-on on

Go to Settings → Billing & Plan → Add-ons (classic sidebar), Billing & plan → Add-ons (new sidebar) or /settings/billing?tab=addons. The add-on is shown at Rs 299 per month; check the price on the billing screen before activating.

If it is not on, every QR page shows a notice instead of controls: QR table ordering is not on for this store (never enabled) or QR table ordering has lapsed. While lapsed, new guest orders stop, but bills, payments and receipts for tables already seated stay available. A See add-on details button opens the Add-ons tab.

Set it up

Open /settings/pos/table-ordering (QR table ordering).

Accept guest orders

Turn on Accept guest orders by QR. It is off by default, and table QR labels can only be created once it is on and saved.

Choose the optional controls

  • Pause new guest requests stops new requests while guests can still read what they sent. A banner shows while paused. Use it when the kitchen is overloaded.
  • Dine-in menu works when the online shop is closed lets your normal storefront stay unpublished.
  • What happens to a guest request: Staff check first (default; staff accept each request from a register session before it reaches the kitchen) or Send to kitchen automatically.
  • Pay at the counter is always on and shown for information.
  • Let guests pay at the table is unavailable while online table payment is not ready. Keep using counter payment. Switching other ordering settings on does not enable online payment.

Save

Press Save settings; the button enables only after a change. Choosing Send to kitchen automatically opens Turn on automatic kitchen send?, explaining that guests who joined with a table code send orders straight to the kitchen and the bill without a staff check (prices and stock are still checked). Press Turn on and save or Back. Saving Staff check first needs no confirmation. If someone else saved first you see Someone else changed this. Reload to see the latest, then try again. and nothing is saved.

Create table QR labels

Under Table QR codes each table row shows QR active · ends and the last characters of the code, QR replaced or off, or No QR yet. If you see No tables found. Add tables in POS settings first., add tables before continuing.

Create or replace

Press Create QR on a table with none, or Replace QR to issue a new one. Both are disabled until guest ordering is on and saved (Turn on guest ordering and save before creating QR codes.).

Give a reason

Type a Reason (required; the confirm button stays disabled until you do) and confirm. Replacing warns that the old QR stops working at once and the sticker must be reprinted.

Download the label now

QR for the table is ready appears. Press Download PDF label or Download image label right away and check the label ends with the characters shown. For safety the code cannot be shown again.

Handle guest requests

Accepting or rejecting a guest request is done by staff at a counter, signed in on a register. The admin page Guest requests (/settings/pos/table-ordering/requests) is a read-only list: it has no Accept or Reject buttons and no reason box. The page intro reads Orders sent from guests' phones. Staff accept or reject them at a counter., and a line under the Refresh and QR settings buttons reads Accept requests from a counter.

Check what is waiting

Open Guest requests as the owner or an admin. Waiting for staff (n) lists each request with its status, its total and its lines (2 x Masala Dosa, with any guest note beside the line). Refresh reloads the list; QR settings returns to the settings page.

Send staff to the counter

Tell the staff on a counter to accept or reject the request there, from a signed-in register session. This page has no control that decides a request. Come back to this page and select Refresh; the request moves from Waiting for staff to Already handled.

Check the result

Already handled lists accepted, rejected, cancelled by the guest and expired requests, each with its status. A rejected request shows the reason staff gave. An accepted request also shows its kitchen status, and The kitchen did not receive this order. Tell the kitchen by hand or resend it from the kitchen screen. appears when an accepted request failed to reach the kitchen.

No guest requests are waiting. shows when the queue is empty.

Why can't I accept a request from this page? It is deliberate: the page only shows the queue. Open the counter and decide there. If Staff check first is on (see Choose the optional controls), requests wait for a counter until someone does; Send to kitchen automatically skips that step.

Seat a table, release the bill and close

Open Seat a table and finish bills (/settings/pos/table-ordering/seating).

Open the table in the POS first

Only tables with an open bill appear under Choose a table. If none do, the page says No table has an open bill. Open the table at the counter, then come back.

Seat the table

Choose the table, set Number of guests and press Seat table and get join code.

Share the join code

The join code is shown only once; tell the guests, who enter it after scanning the table QR. Change join code (with a Reason) issues a new one, and Remove guest (a Guest ID and reason) removes a guest. Counters show Guests joined and Requests sent.

Release the bill

Under Bill and payment press Release bill for payment. It shows tax, service charge, tip, total, paid and Still to pay, and whether guests can pay at the table or only at the counter. After the bill changes use Release updated bill. A notice counts requests still waiting that are not on the bill, with Review requests.

Close the table

Enter Reason for closing and press Close table. After closing, guests can no longer order for this table or download its private receipt. Let guests download the receipt before closing.

Closing is blocked, with the reason listed, when guest requests are waiting (accept or reject them at a counter), a kitchen ticket is unresolved (resend or clear it on the kitchen screen) or a payment is being checked (wait for it to finish or fail).

Full-table receipt only

You may see Assign a share to a guest on the seating screen. Guest share payment and separate share receipts are unavailable in this release. Use the released full-table bill and staff-recorded full payment for the guest receipt flow below. A partial collection does not make that receipt available.

Join and order as a guest

The guest entry point is the table's printed QR label. Keep using the same browser after joining; the current seating, its bill and private receipt depend on that browser's table membership.

Scan and join the current seating

Scan the table QR. You can choose Browse menu without joining. To order, ask your server for the current six-digit code, enter it under Seating code and choose Join table, then See menu. A code from a previous seating does not give access to the current party.

Find and choose a dish

Use Search menu and Search, or Clear search to remove the filter. Load next page and First menu page move through the menu. Open Details on an available item. Sold-out items cannot be selected.

Choose quantity and options

Enter Quantity in the displayed unit, following the minimum, maximum and step shown. Whole pieces stay whole; weighed portions require the shop to enable measured ordering. Select available options and required choices, optionally add a Kitchen note of up to 200 characters, then Add to cart. Back to menu leaves the item detail. Joining is required before adding an order.

Review and send

Open View cart, check Order total, and use Remove item or Add more if needed. Press Send order to staff when staff check first, or Send to kitchen when automatic send is enabled. Neither action records payment. If the quote expires or prices change, use Review latest quote and Accept the new price when offered before sending. Unavailable items or invalid options must be corrected first.

Follow your request

Open Your orders. Waiting for staff means it has not been accepted; Accepted · sent to kitchen means it is on the table bill. Kitchen delivery acknowledgment does not mean food is ready or served. Use Check status to refresh or Order more to return to the menu. Only requests from your own browser membership appear here.

While a request is pending, Cancel request opens a review: choose Keep request or Cancel pending request. If staff accept first, cancellation does not remove kitchen or bill lines; ask staff for a change. A rejected request adds nothing to the bill. For an expired request or kitchen delivery issue, ask staff before sending again.

If sending is interrupted and the result is uncertain, use Retry the same request. Do not submit a second copy. New requests stop when intake is paused, the add-on lapses or you are offline; reconnect and check existing requests with staff.

Check the bill and pay at the counter

Ask for the bill

From Your orders, choose Ask for bill. Until staff release it, Your server is checking the bill appears. Use Check released bill after staff finish. Unresolved requests may need staff attention before the bill is ready.

Review the released amounts

Check the item lines, tax, discount, service charge, optional tip, round off, Bill total, Already paid and Amount due. If the bill changes or the quote expires, review the current released bill before continuing.

Make optional requests

Add an optional tip opens Tip (₹). Choose No tip for zero, or enter an amount and press Update total to request a fresh total. This is disabled after full payment. When a service charge is present, Ask staff to remove service charge sends staff a request; it does not change the invoice. Check the updated bill after staff act on it.

Pay with staff

Choose Pay at counter and show the table and released amount to staff. This page does not mark money collected. Staff must record payment against the actual table bill. With pay-at-table disabled, the guest bill offers no online payment action. If any earlier payment is unresolved, follow the recovery instructions below before collecting another payment.

View and download the table receipt

After staff record full payment and release the full-table bill, open the bill and select View receipt. Check the receipt number, total, Amount paid and Collection channel, then choose Download receipt for the private receipt file. Share receipt appears on supported devices, but a copied or shared link does not grant another person access.

Keep the same browser session and remain an active member of the seating. Download checks that membership again. A partial payment, an unreleased full bill or an expired, removed or closed seating membership prevents the download; ask staff for help. Download before staff close the table.

Recover an unresolved payment

If a prior payment shows Checking, Needs review or The payment outcome is not final, select Check this payment to check that same attempt, or Ask staff. Do not pay again, change payment method or ask staff to collect a second payment while the outcome is unknown.

Ask to close this payment requests closure; it does not guarantee cancellation. If cancellation is refused because the outcome is unknown, the original payment remains in progress. Continue checking it or ask staff. A refusal never permits a replacement payment. Only a confirmed final Failed or Closed result permits reviewing the current bill with staff before another payment. Paid is final only after the shop confirms settlement; a provider notification alone is insufficient.

Troubleshooting

What you seeWhat to do
Guests cannot open the table page or orderCheck POS, Restaurant and QR ordering access, Accept guest orders by QR, intake pause, the saved dine-in menu setting, current seating and current six-digit code. When the shop cannot offer new QR requests, staff can take the order.
Guest says the QR does not workThe QR may have been replaced. Give them the new printed label.
Let guests pay at the table is greyed outThe payment gateway is not ready; guests pay at the counter.
No View receipt, or the download is refusedStaff must release the full bill and record full payment. Keep the joining browser's active seating membership; partial payments, separate shares and expired, removed or closed memberships cannot use this receipt flow.
Payment is checking or needs reviewUse Check this payment or ask staff. Keep the same attempt; do not pay again or switch tender until its outcome is final.
The Guest requests page has no Accept or Reject buttonsBy design: the page is a read-only list for the owner and admins. Accept or reject at a counter, then Refresh the list. See Handle guest requests.
Request accepted while the guest was cancellingAsk staff for any change. The failed cancellation did not remove accepted kitchen or bill lines.
Close table is blockedRead the listed blocker and resolve it, then close again.
Your POS role cannot do this. Ask the owner.These pages are for the owner or store admin only.
We could not check the add-on right now.Try again shortly; nothing is assumed off.
Labels show in EnglishNon-English copy for these pages is a draft pending review.

Back to the Point of Sale overview, or see Counter Billing & Tenders for collecting payment.

Move a counter table bill or divide it equally

Screen: open /pos/restaurant, choose the table and open its order. These are connected counter bill actions; they do not enable the separate guest-share receipt flow described above.

  1. Open More → Move to another table, select Choose a free table, then Confirm. Only enabled, unoccupied tables other than the current table are offered. This moves the bill; it does not merge occupied tables or move selected dishes independently.
  2. For equal shares select Split, enter Number of bills (2–20), then Review split. Inspect every amount and balancing label, then Confirm. GST is computed once on the parent; earlier shares use whole rupees and the last share balances.
  3. Check the refreshed bill before continuing. Retry same action handles an unknown outcome; Reload bill reloads a confirmed result if its refresh failed. Do not create another split.

Why don't I see Split? The Split button is only drawn when every condition holds: the store's split-bill entitlement is on for this account, the bill is a sale bill (not a different bill type), it is not a share created by an earlier split, and the bill is not frozen (the counter is offline or locked, the device or cashier session is not active, a save is in progress, or an earlier kitchen send or edit has an unknown outcome). Otherwise the button is absent from the row that holds Discount; it is not shown disabled. Check the plan or entitlement with the owner, open the parent bill rather than a share, and reconnect, unlock and let any pending action finish. Frozen bills and child shares do not offer these move/split actions. Restaurant changes and kitchen printing need internet; reconnect and unlock before editing.

Confirm a kitchen ticket was received

On an order with unresolved kitchen delivery, open Kitchen ticket. Show the original ticket to the kitchen and, only after checking receipt, select Kitchen has received this ticket. The acknowledgement clears that unresolved delivery; it does not prove that paper printed. If the result is uncertain, use Retry same action. Keep the original ticket and bill until confirmed; do not send a duplicate ticket to clear a warning. For hardware setup use Counter devices → Settings → Receipt printer.