Virtual Tray & Ordering (PRO)
Virtual Tray & Ordering (PRO)
Overview: The Virtual Tray is the guest-side ordering layer in Stolik Menu PRO. It allows patrons to select dishes, review their cart, submit orders, append additional items across multiple rounds, and follow fulfillment status in real time—all within a unified digital menu session.
Where Virtual Tray is Available
The Virtual Tray is engineered specifically for transactional PRO workflows. It activates automatically when guests scan a transactional QR code:
- Restaurant Universal Mode: Patrons scan a shared dining room QR code, enter their name, and select their table number from a dropdown list.
- Restaurant Dedicated Tables: Patrons scan a table-specific QR code. The table number is encoded cryptographically, so guests only provide their name.
- Hotel Custom Locations: Guests scan a room or zone QR code (e.g., Room 102, SPA, Cabana 4, Poolside). The location is pre-authenticated, unlocking In-Room Dining and Hotel Services.
Guest Ordering Flow
The complete end-to-end guest ordering journey operates as follows:
- The guest scans a valid transactional QR code with their smartphone camera.
- Stolik establishes the authenticated table or hotel location session.
- The guest browses categories and taps items to add them to their selection.
- The floating bottom bar updates dynamically with item quantities and pricing.
- The guest opens the Virtual Tray to review their unsent selection.
- The guest enters their name or pseudonym (if not already entered).
- The guest taps Send Order.
- The request appears instantly on staff’s Live Service Dashboard.
- Staff members review and click “I’m on it” to acknowledge the order.
- The guest’s phone updates with live confirmation and active order totals.
- The guest can continue browsing and append more items at any time.
Adding Items & Floating Summary
Guests add dishes and drinks using intuitive item-level buttons and quantity steppers (+ / -). While browsing across multiple categories, a sticky floating bar remains anchored at the bottom of the screen.

The floating Virtual Tray keeps the current unsent selection visible while the guest browses the menu.
Tapping the floating summary opens the full drawer, displaying line-item prices, quantities, and the order submission trigger.
Selected Items vs Already Ordered Items
Understanding this architectural separation is fundamental to using Stolik Menu PRO:
| State Container | Definition | Permitted Guest Actions |
|---|---|---|
| Virtual Tray | Unsent items currently staged in the cart. | Increase quantity, reduce, remove, or cancel before sending. |
| Active Order | Items already sent to the kitchen or hotel staff. | View fulfillment status, review active bill, request check. |
Guest Identity Resolution
To ensure staff can match orders to physical patrons, the system prompts for a guest identifier upon order submission:
- Universal Mode: The guest provides their Name and selects their Table number.
- Dedicated Table / Hotel Room: The table or room coordinates are resolved automatically by the QR identity token; the guest only inputs their Name.

Dedicated Table and Custom Location flows request the guest name while the QR automatically provides the location identity.
Sending an Order & Active Order Card
Upon tapping Confirm Request or Send Order, the payload is transmitted to the server. The interface seamlessly transitions into the Active Order view:

Submitted items move into the Active Order and remain visible separately from the next tray selection.
The Active Order card gives patrons transparent visibility into their cumulative tab, ordered quantities, itemized pricing, and request status.
Appending Additional Items
Guests are never locked out of ordering after their initial submission. If a table wants additional appetizers, drinks, or desserts, they simply browse the menu and stage new items in the tray.

1. First submission active in kitchen

2. Appending fresh items to tray
Guests can continue browsing and append new items without resubmitting previously ordered items.
Staff Acknowledgement Loop
When an order is placed, it immediately surfaces inside the Live Service Dashboard on the staff tablet or terminal.

Submitted orders appear in the Live Service Dashboard for immediate staff acknowledgement.
Once staff clicks “I’m on it”, the guest’s mobile status changes from “Request sent. Awaiting confirmation…” to “Request accepted! We are on it.”
Restaurant & Hotel Ordering Modes
The Virtual Tray adapts its behavioral contract depending on the operational venue domain:
- Restaurant Domain: Anchored to dining tables. Items ordered map to the kitchen/bar, and the session supports “Ask for Bill” triggers.
- Hotel Domain: Anchored to rooms, suites, or resort facilities. The Virtual Tray handles both food items and hospitality requests.
Mixed Hotel Orders
In Hotel Custom Locations, a single Virtual Tray submission can combine items from both the In-Room Dining channel (e.g., King Prawns, Wine) and the Hotel Services channel (e.g., Extra Pillows, Turndown Service).

Hotel Custom Locations can combine In-Room Dining and Hotel Services in one guest ordering workflow.
When submitted, the Live Service Dashboard flags the order as a MIXED ORDER – Coordination required, allowing kitchen and housekeeping teams to coordinate dispatch seamlessly.
Payment & Charge to Room
Depending on your admin settings and QR context, the Virtual Tray provides flexible settlement options:
- Mobile Stripe Checkouts: Guests can pay immediately tableside using Apple Pay, Google Pay, or Credit Card.
- Charge to Room: Available exclusively in authenticated Hotel Custom Locations when toggled ON in plugin settings. Guests post order totals directly to their room folio.
Fresh QR Scan Precedence
Scanning a new physical QR code represents an explicit guest action that instantly establishes a new authoritative venue context:

1. Guest at Restaurant Table 1

2. Guest scans Room 102 QR later
A fresh QR scan establishes a new authoritative venue context and prevents stale Restaurant/Hotel session identity from carrying over.
Common Questions (FAQ)
Why did my tray reset after scanning a different QR code?
Scanning a fresh QR code establishes a new physical location context. The previous table or hotel room session is cleared intentionally to prevent misdirected orders.
Why are already ordered items not shown inside the Virtual Tray?
The Virtual Tray holds only unsent selections. Once submitted, items transfer into the Active Order view to prevent accidental duplicate orders.
Why is the Virtual Tray missing in Base Menu mode?
Base Menu mode is designed for non-transactional catalog browsing. Ordering requires Universal, Dedicated Table, or Custom Location QR modes in Stolik Menu PRO.
Why is the Charge to Room option missing at checkout?
Charge to Room requires three conditions: an active PRO license, the Charge to Room toggle enabled in Stolik Menu → Payments, and an authenticated Hotel Custom Location QR code.
Developer Integration Notes
Business domain: restaurant | hotelEntity: none | table | locationService mode: base | universal | dedicatedContent channel: food | hotel_services- Server-Side Validation: Never authorize ordering or payments purely from URL query parameters (e.g.,
table_id=1). All capabilities require server-validated token resolution. - Opaque Short IDs: Treat
service_qr_idas an opaque identifier. Do not parse, modify, or assume fixed character lengths. - Locale Invariance: Changing languages (e.g., from
/menu/to/menu-pl-pl/) must modify only the presentation layer; it must never reset or alter the active table or room identity.