Skip to content

What happens when a customer walks in

Ten steps, from the guest sitting down to the bill paid. For each step: what the guest sees, what staff does, what Ordina does behind the scenes.

Ordina is not an app the guest downloads. It's not a POS either. It's the layer in the middle: between the hungry guest and the kitchen, between the till and the tax man. Here's a typical day at our Punta Ala venue, summer 2026, told step by step.

  1. 01

    The guest arrives

    Guest
    Sits at the table the host pointed at, drops their keys, looks outside. Smells fresh bread.
    Staff
    Greets, walks them to the table, says 'tap your phone here for the menu' and points at the NFC tag on the table.
    Ordina
    Nothing yet. The table session opens at the first tap.
  2. 02

    The NFC tap

    Guest
    Taps the phone on the tag on the table. Safari/Chrome opens with the restaurant menu. No app to download, no camera, no login.
    Staff
    Nothing. This is the guest's moment.
    Ordina
    Creates a BillSession for that table. Loads the menu in the browser language (Italian or English, falls back to Italian). If a confirmed booking exists for that table in the current slot, marks it 'arrived' automatically.
  3. 03

    Browses the menu

    Guest
    Scrolls dishes by category. Taps one, sees a big photo, description, allergens, modifiers (e.g. 'gluten-free pasta', 'extra olive oil'). Adds to cart with one tap.
    Staff
    Keeps serving other tables.
    Ordina
    Whole menu is cached (ISR 60s) — instant load. Photos lazy-loaded. No server call until order submit.
  4. 04

    Composes the order

    Guest
    Adds dishes, writes a free note ('no onion') in the text field, sees the total update. Taps 'Send order'.
    Staff
    Comes by only if the guest raises a hand (the 'Call waiter' button in the app — pg_notify to staff).
    Ordina
    Order payload is saved in localStorage until confirmed by the server. If the guest loses signal, the submit waits until the connection comes back.
  5. 05

    The order goes out

    Guest
    Sees a tracker page: 'Order received, awaiting acceptance'. Timeline visible.
    Staff
    A new order card appears in the dashboard, with a beep and a soft tablet vibration. Big table number, compact content.
    Ordina
    Order insert in PG, pg_notify('orders'), SSE push to all clients subscribed to the tenant channel. Latency under 200ms.
  6. 06

    Staff accepts

    Guest
    Sees 'Order accepted' with a 12-min ETA. No refresh — the page updates on its own.
    Staff
    Taps 'Accept' on the tablet. The order moves to the KDS in the kitchen, grouped by category (firsts, mains, sides).
    Ordina
    Updates OrderStatus → ACCEPTED, writes OrderStatusEvent, emits pg_notify for the customer tracker. AuditLog written.
  7. 07

    Kitchen cooks

    Guest
    Waits. Drinks. Talks to whoever is at the table.
    Staff
    In the kitchen the young chef has the KDS in front. Sees the bundle of orders, marks 'in prep' at start, 'ready' at end.
    Ordina
    New states propagate to the guest. The timer for orders in IN_PREP feeds the average kitchen latency report.
  8. 08

    Food arrives

    Guest
    Sees the 'Bon appétit' Caveat-red animation when the waiter taps 'Served'.
    Staff
    Carries the dishes, taps 'Served' on the floating cart.
    Ordina
    Final SERVED state. Order.foodCostMinor snapshot taken from Recipe.foodCostMinorCached at that moment — this is the real margin, not the estimated one.
  9. 09

    Payment

    Guest
    Opens the order page, taps 'Pay'. Stripe Element offers Apple Pay (it recognises iPhone) or card. Tap, FaceID unlock, pays in 3 seconds. Leaves a 10% tip.
    Staff
    Nothing — the guest paid from the phone. A passive 'Table 7 has paid, all good' notice on the dashboard.
    Ordina
    Stripe PaymentIntent created server-side, 'payment_intent.succeeded' webhook flips paymentStatus to PAID. Tip tracked separately. Fiscal receipt (RT) issued by the provider chosen by the restaurant.
  10. 10

    The guest leaves

    Guest
    Says goodbye, leaves. Ate in 45 minutes, paid in 3 seconds, said 'thank you' to a waiter who never asked them where the bathroom was.
    Staff
    Cleans the table, queues the next confirmed booking on screen.
    Ordina
    BillSession closed, table back in the pool, next bookings notified (t12 email to the guest if a table was assigned).

Want to see it live?

Ten minutes of remote demo. We'll have you drive the flow, from the fake table to the simulated kitchen. No commitment, no credit card.

Book the demo
How it works — Italy On Demand — Italy On Demand