Table ordering

Contactless table ordering with QR codes

Customers scan a QR code at their table, browse your menu on their own device, and place their order without touching a shared menu or flagging down a waiter.

In the Business plan v2.0.4

What it does

Dine In brings a modern contactless table ordering experience to any restaurant running RestroPress. Customers sit down, scan the QR code on their table, and your full menu loads on their phone instantly. They browse, customize, and place their order without any staff interaction for the ordering step.

Order updates are delivered to the customer in real time. The kitchen receives orders exactly as placed, reducing errors from miscommunication. Both offline and online payment methods are supported. The updated version includes a waiter app feature, giving front-of-house staff their own interface to manage dine-in orders.

Everything in the box

QR code table menus
Each table gets a unique QR code. Customers scan it to access your menu on their phone.
Full menu on any device
The entire RestroPress menu loads in the customer's browser with no app download required.
Real-time order updates
Customers receive live updates on their order status directly on their device.
Online and offline payment
Supports both online card payments and cash or offline payment methods.
Waiter app included
The waiter app feature (from version 1.4) gives staff an interface to assist with dine-in orders.
Fewer order errors
Customers enter their own order, eliminating miscommunication between table and kitchen.
HOW IT WORKS

Three steps to contactless table ordering

Step 1

Enable Dine In and configure tables

Activate Dine In in RestroPress settings and set up your table QR codes.

Step 1
Step 2

Place QR codes on tables

Print and display the generated QR codes at each table.

Step 2
Step 3

Customers scan and order

Customers open the menu on their phone, place their order, and track it in real time.

Step 3

= Version 2.0.4(2026-05-13) =
- Fixed: Paytm dine-in app orders are created only after Paytm confirms successful payment
- Fixed: Paytm UPI aliases now use confirmed Paytm flow instead of direct UPI order placement

= Version 2.0.3(2026-05-09) =
- Added: PayPal, Stripe, and Square payment gateway handling for dine-in order flows
- Improved: Authenticated dine-in customers can continue editing active table orders with resolved JWT user context
- Improved: Active dine-in order API/runtime compatibility after app version syncs
- Code cleanup

= Version 2.0.2(13-04-2026) =
- Added: Active table-order merge flow so authorized users can append new items into the same live dine-in order
- Added: Table lock safeguards to block unauthorized updates on occupied tables while allowing waiter/admin/customer-owner actions
- Added: Waiter app push notification routing based on assigned tables with Firebase HTTP v1 token support
- Improved: Table ID normalization and variant matching across waiter assignment, table checks, and notifications
- Improved: Plugin runtime bootstrap and web-build/template resolution reliability during theme and plugin update scenarios
- Fixed: Add-order and update-order API payload validation, login-required behavior, and user info fallback handling
- Fixed: Notification payload delivery for waiter and order-tracking flows now includes stronger table context and priority metadata

= Version 2.0.1(30-03-2026)=- Fixed: Translation domain load timing warning in wp-admin- Fixed: Deferred auth/API bootstrap to init for WP 6.7+ compatibility- Fixed: PHP 8.2 deprecation issues in bundled dependencies- Fixed: Driver/user app/dinein extension conflict hardening improvements- Fixed: Waiter call/order-tracking notification 500 error in mixed notification mode- Fixed: Waiter item quantity update request validation for missing/partial payload fields- Fixed: Sanitized waiter-call and purchase-key inputs with prepared SQL for safer runtime processing- Fixed: Added permission callback and stronger input validation for dine-in order update and notes-clear endpoints- Improved: Removed debug runtime logging and prevented duplicate hook registration during REST bootstrap

= Version 2.0(05-08-2025) =
- Added: price_id added to order model
- Added: Template change for bug fixed
- Fixed: Order notification issue
- Fixed: Price update issue

= Version 1.9(27-09-2024) =

- Fixed: Firebase notification issue
- Updated: Template updated
- Code optimized


= Version 1.8(18-09-2024) =

- Fixed: Qr code floor issue fixed
- Fixed: Options setting all clear bug fixed
- Fixed: Issue with qr code generation
- Code cleanup


= Version 1.7(04-09-2024) =

* Fixed: Notification issue
* Fixed: Conflict issue with order tracking extension
* Code cleanup and optimized

= Version 1.6(08-09-2023) =

* Fixed: User name issue
* Fixed: Template changed
* Fixed: Stock qty issue
* Fixed: Multisite issue
* Fixed: Payment status bug
* Fixed: Service type name localization
* Fixed: Code cleanup

= Version 1.5(10-06-2023) =

* Updated: Template updated
* Fixed: Add-on price fixed
* Added: UPI id setting option added
* Fixed: Waiter order bug fixed
* Fixed: Table order notification issue fixed for the waiter
* Added: Assign tables to the particular waiter
* Added: License validation added from the app side
* Added: Order cancellation reason option added for the waiter
* Fixed: Order tracking app notification issue
* Added: wp_ajax_fajax_action added
* Added: Firebase link added
* Added: Signin option linked with Google account
* Added: Make disable food items featured integrated
* Added: Store close/open validation added

Version 1.4

  • Fixed: Firebase integration setup option added
  • Fixed: Issue fixed for dinein and order tracking app integration
  • Fixed: Waiter call functionality issue fixed
  • Fixed: Removed unused codes
  • Updated: New frontend UI
  • Updated: Now Payment process will be done after placing the orders
  • Added: Mobile OTP verification process for login
  • Added: Order change request feature added for placed orders
  • Added: User profile dashboard added
  • Added: Firebase notification integrated
  • Added: Quick checkout process
  • Added: JWT authentication
  • Code optimized

Version 1.3.1

  • Fixed: CSS issue fixed for 2.9.1.1 version RestroPress

Version 1.3

  • Added: Call waiter feature added
  • Code cleanup

Version 1.2

  • Fixed issues with RestroPress 2.8
  • Updated category menu
  • Updated product list view
  • Template redirect issue fixed
  • License block added
  • Checkout page issue fixed
  • Modal cursor issue fixed
  • Fo0d item button color issue fixed
  • Page shortcode issue fixed
  • Compatibility issue fixed for restropress version 2.6.2

Version 1.1

  • Fixed design issues with the menu page.
  • Added support for RestroPress 2.7.2

Version 1.0

  • Initial public release

Frequently asked questions

Do customers need to download an app?

No. The menu loads in their phone browser after scanning the QR code.

Is payment supported at the table?

Yes. Both online and offline payment methods are available.

Does each table get a unique QR code?

Yes. QR codes are generated per table so orders are correctly associated.

What is the waiter app feature?

From version 1.4, the waiter app gives front-of-house staff their own interface to manage and assist with dine-in orders.

© 2026 RestroPress. All Rights Reserved.
envelopephone-handset linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram