One QR code per table.
Guests order. Staff confirm.
A guest scans the code on their table, picks what they want, and sends it to your staff — who accept it at the table, the way they always have. No app to install, no payment gateway in the middle, and no commission on a single order.
Set Up Table Ordering →Free to try · No card required
What table ordering actually is
Most “scan to order” systems are a marketplace wearing a QR code. They take a cut of every bill, they own the relationship with your guest, and they need a card on file before anyone can eat.
This is not that. A table code is a printed shortcut to your own menu, carrying one extra piece of information: which table the scan came from. When a guest sends an order it becomes a ticket on your dashboard with the table number on it. A member of your staff accepts it. Money is settled exactly as it was before.
One menu, many codes
Twenty tables do not mean twenty menus. Edit once; every table updates.
Confirm-only
No payment is taken. An order is a request until a person accepts it.
Per-table analytics
Every code has its own scan history, so you can see which corner is dead.
How one order travels
Four steps, about ninety seconds end to end. Watch it move:
Guest scans
The code on the table opens your menu, already knowing which table it is.
Guest chooses
They tap dishes and send the round. Nothing is charged.
Staff accepts
The ticket appears on your Orders board with the table number.
Guest sees it
Their screen turns to Accepted, then Served, without them asking.
Both sides, live
The guest's phone on the left, your Orders board on the right. Neither person has to refresh anything or ask how it is going.
The Grand Kitchen
Table 7What the guest sees — the status changes on its own
- 1× Margherita Pizza$14
- 2× Garlic Bread$12
- 1× Chocolate Torte$8
“Less spicy please”
What your staff sees — Accept is the loudest thing on the card
Setting it up, step by step
About ten minutes for a twenty-table floor, most of it spent cutting up the printed sheet.
- 1
Create the menu
From your dashboard choose Create QR and pick the Menu type. Build the menu properly — this is the thing your guests will read and order from.
- • Restaurant name, and an optional tagline
- • Categories — Starters, Mains, Desserts — and the dishes in each
- • A price per dish, and the currency for the whole menu
- • Veg / non-veg markers, which show as the familiar green and red squares
You can also attach a PDF menu, but ordering needs real dishes with real prices — a PDF is a picture, and nothing can be tapped in a picture.
- 2
Turn ordering on
In the same editor, switch on Take orders from tables. Then decide how the location check should behave:
- • Pin my location — one tap, read from the device you are holding. Or paste coordinates, or a Maps link.
- • Radius — 150 metres by default. Anywhere from 20 to 1000. Generous enough for a courtyard or a first floor, tight enough to exclude the next street.
- • Skip the location check — for a basement, a mall food court, anywhere GPS is unreliable. Staff acceptance still applies.
- 3
Create the table codes
Open the menu code and choose Table codes. Enter how many tables you have and create them in one go — up to 100 at a time.
Each one is a real QR code with its own short link and its own scan history, all pointing at the same menu page. Adding more later continues past your highest table number, so a twenty-table floor plus five more gives you 21 to 25 — never a clash with a card already on a table.
- 4
Print the sheet
Hit Print and you get one sheet, three codes to a row, each labelled with its table number and each kept whole so a code never splits across two pages. They inherit the menu code's design, so a branded menu does not print next to twenty plain black squares.
One card damaged? Tick that table and print only what you selected. Shift-click to take a range.
- 5
Take orders
Orders appear under Orders in your dashboard, newest first, refreshing on their own. Each card shows the table, the round, how long ago it arrived, how far away the device was, the items, any note, and the total.
Accept sends it to the kitchen and turns the guest's screen green. Mark served closes it off. The small × declines it, and the guest is told to speak to a member of staff.
People order in rounds
Nobody decides their entire meal in one go. Starters arrive, then somebody wants a main, then somebody else wants another drink. A system that treats the second order as a duplicate of the first is a system that has never worked a dinner service.
For the guest
Each round they send is listed with its own status, and a running tally of everything already ordered sits above the basket — so nobody re-orders a dish out of doubt. Tapping Add more to this table starts the next round.
For your staff
Each ticket is numbered by table — Round 2 for table 7 — so it reads as a follow-up to serve alongside the first, not a mistake to chase. Prices are captured as they were when the order was placed, so re-pricing the menu tomorrow never rewrites what somebody ordered today.
How we stop orders from people who are not there
Worth being straight about this, because some products are not. A printed QR code is a static string. Anyone who photographs it can reproduce that scan from anywhere, and nothing inside the code can tell the difference. So presence is handled in two layers, and neither one pretends to be proof.
A geofence
The browser reports where it is and the order is refused beyond your radius. This stops the case that actually matters — somebody ordering from home off a photograph — without stopping a real customer. It is defeatable by anyone willing to spoof their location, and it is not treated as authentication.
A person
Orders arrive as requests and reach the kitchen only when your staff accept them. Anything the geofence lets through is still a human decision — which is exactly what makes the first layer good enough without being perfect.
If location is denied or unavailable, ordering is blocked rather than waved through. A guest who cannot place an order simply asks a waiter, which is how it worked last year. An order accepted from anywhere is a prank ticket in your kitchen.
What it changes
No commission, ever
You are not on a marketplace. Nobody takes a percentage of a bill for the work of showing a menu.
Fewer trips to take an order
Staff walk to a table to confirm and to serve, not to write things down and walk back.
No mis-heard orders
The guest picked it themselves. There is no handwriting to read and nothing lost across a noisy room.
The menu is never out of date
Sold out at eight in the evening? Mark it and the next scan will not show it. Nothing to reprint.
Guests order more
The second round costs nobody a walk across the room, so it gets ordered instead of skipped.
You learn the room
Per-table scan history shows which corner nobody sits in, and which card has quietly gone missing.
No app to install
A phone camera and a browser. That is the whole requirement, on any phone made in the last decade.
Works in any language
The page is plain text, so a guest whose browser translates pages gets your menu in their language.
Nothing to unlearn
Money is settled at the counter or the table exactly as before. You are not changing how you get paid.
What it costs
Your first month is free, on up to 20 tables.
No card, no plan, no trial that quietly starts the day you sign up. The month begins when you create your first table codes, so a floor you set up in March gets a full March of it. Twenty tables is a real restaurant, not a demonstration — enough to run every service for a month and decide on evidence.
When the month ends, nothing you printed stops working. Every table code still opens your menu — the cards on your tables keep doing their job. Only the ordering button goes, until you pick a plan. We are not going to 404 a card in front of your customers to make a point about billing.
After that, the counting is simple: each table code is a QR code on your plan. A twenty-table floor uses twenty codes, plus one for the menu itself — twenty-one in total, wherever in the world it is.
| Plan | QR codes | Tables it covers | Price | India |
|---|---|---|---|---|
| Free — first month | 21 | Up to 20 tables | Free for 30 days | — |
| Free — after that | 3 | Menu keeps working, ordering off | Free | — |
| Basic | 5 | Up to 4 tables | $2.99 / mo | ₹79 / mo |
| Pro | 25 | Up to 24 tables | $5.99 / mo | ₹199 / mo |
| Business | Unlimited | Any size floor | $24.99 / mo | ₹599 / mo |
Start on the free month — it costs nothing and covers a real floor. After it, Pro is genuinely fine up to twenty-four tables. Most restaurants running table ordering properly end up on Business, because a floor grows and unlimited codes means never counting again. Billed in US dollars, or in rupees if you are in India; yearly is cheaper on every paid plan.
Your menu is priced separately from your plan, in whichever of these you work in: ₹ INR · $ USD · € EUR · £ GBP · AED · S$ SGD · A$ AUD · C$ CAD · ¥ JPY. Pick it once and every dish, ticket and total follows.
Questions
Do guests need to download an app?
No. The table code opens a web page in whatever browser the phone already has. There is nothing to install, nothing to sign up for, and no account to create. A guest who has never heard of Photon QR can scan and order in about fifteen seconds.
Does the guest pay through the QR code?
No. Table ordering is confirm-only: the order is a request that reaches your staff, who accept it and settle the bill the way they always have. There is no payment gateway in the flow, which means no commission per order and no card details passing through us. If you want to take payment by QR as well, add a separate UPI Payment QR to the bill.
What stops someone ordering from home after photographing the code?
Two layers. First a geofence: the browser reports where it is and the order is refused beyond a radius you set — 150 metres by default, adjustable from 20 to 1000. Second, and more importantly, staff acceptance: every order arrives as a request and reaches the kitchen only when a person accepts it. The geofence is a filter, not proof; the human decision is what makes it good enough.
What if the venue has no GPS signal — a basement or a mall food court?
Turn the location check off in the ordering settings. Ordering then runs on staff acceptance alone, which is the layer that was doing the real work anyway. Nothing else changes.
What happens if a guest denies location access?
The order is blocked and they are asked to speak to a member of staff. That is deliberate: a guest who cannot place an order simply orders the way they did last year, which is the status quo. An order accepted from anywhere would be a prank ticket in your kitchen.
Do I have to reprint the codes when the menu changes?
Never. Every table code points at the same menu page. Change a price, add a special, mark a dish unavailable — save once and every table on the floor is showing the new menu on the next scan. The printed pattern never changes.
How many table codes can I create?
Up to 100 in a single request. During your free month a free account can hold up to 20 table codes. After that each table code counts as one QR code on your plan, so a twenty-table floor uses twenty codes plus one for the menu itself.
What exactly is free, and for how long?
Table ordering on up to 20 tables, for 30 days, on a free account. The month starts when you create your first table codes rather than when you sign up, so nothing is quietly ticking away while you build your menu. No card is required and it is once per account.
What happens to my printed cards when the free month ends?
They keep working. Every table code still opens your menu, so the cards on your tables carry on doing what they were printed for — nothing 404s in front of a customer. What stops is ordering: the button disappears until you pick a plan, and guests order the way they did before.
Can I add more tables later?
Yes. Enter how many you are adding and the numbering continues past the highest table you already have, so adding five to a twenty-table floor gives you 21 to 25. Nothing already printed is affected.
Can I use names instead of numbers?
Yes. A table label can be anything up to 24 characters — "Patio 2", "Bar", "Window" — and it is what your staff see on the order ticket. Numbered tables sort numerically; named ones follow after them.
One card got damaged. Do I reprint the whole sheet?
No. Tick just that table and print only what you selected. Shift-click selects a range if you need several.
Can I see which tables are busiest?
Yes. Each table code is its own QR code with its own scan history, so you can see which corner of the room actually gets used, which table is quiet, and which card has stopped being scanned because it has gone missing.
What if the same guest orders twice?
That is expected and supported. Guests order in rounds — starters, then a main, then a drink. Each round arrives as its own ticket, numbered by table, so your staff can see that the second ticket for table 7 is a follow-up rather than a duplicate. The guest sees a running list of what they have already sent, so nobody re-orders out of doubt.
Put a code on two tables tonight
You do not have to commit the floor. Create the menu, make two table codes, print them, and watch one service. You will know within an evening whether it belongs in your restaurant.
Create Your First Table Codes →Also worth reading: QR codes for restaurants · Digital menu QR · Pricing