M cenaly.ru
⚙️ Features

🛒 Orders

Dine-in, delivery, takeaway, WhatsApp, Telegram, KDS

Documentation

Orders — Dine-in, delivery, takeaway

Overview#

The Meni ordering system supports all key restaurant business scenarios:

Order type Description Ideal for
Dine-in Table order via QR code Restaurants, cafés, bars
Delivery Delivery to the customer's address Restaurants with delivery
Takeaway Pickup (customer picks up themselves) Cafés, fast food, bakeries
WhatsApp Order via messenger Latin America, Middle East
Telegram Order via Telegram Mini App CIS, Georgia

The admin panel has dedicated work screens for handling orders:

  • POS — order entry by a waiter, table binding via QR;
  • Kitchen (KDS) — kitchen display: queue, statuses, stations;
  • Courier — own-delivery screen with a map and routes;
  • Floor Plan — table map, waiters and reservations.

Dine-in — Table ordering#

How it works#

  1. The guest scans the QR code on the table
  2. The menu opens linked to the table number
  3. The guest selects items, add-ons, and adds notes
  4. Taps Order
  5. The order instantly appears for staff (on the kitchen screen / waiter's tablet)
  6. The waiter confirms the order → the kitchen starts cooking
  7. The guest receives a status notification

Setup#

  1. Turn ordering on for the location: Locations → the location → the WEB tab. The same fields are gathered in one place under My website → the Online ordering card → Configure → the Delivery & pickup section.
  2. Configure the floor plan in the Floor Plan section: tables, zones, bar counter (see Floor Plan).
  3. Bind QR codes to tables in the same Floor Plan section — after that a table order is recognised automatically.

There is no "Dine-in" tab in Settings, and no "Settings → Orders" page with ordering toggles either. The Settings → Orders tab is about something else: status automation, the guest blocklist and refund reasons (see "Order settings" below).

Table management#

  • Visual floor plan with drag & drop
  • Table statuses: free / occupied / reserved
  • Automatic release after payment

Call a waiter#

The guest taps "Call a waiter" in the menu and picks a reason: bring water, the bill, help with the menu, or "other".

The call travels the same path as an order itself — a signal to the server and from there to the staff in real time:

  • a bell in the Orders section — with the table number and reason, with sound (the sound can be muted with a button);
  • the "Calls" tab in the Hall panel — the same list, next to the scheme and the queue;
  • the "Acknowledged" button clears the call on both screens.

Separately from calls there is an addressed "order ready" push to the waiter: if a waiter is assigned to the table (see Floor plan, "Waiters" mode), the readiness notification goes to them rather than to the whole shift.


Pre-order slots#

If your kitchen can't absorb arbitrary "at 13:07" requests, turn on pre-order slots in the location settings. Then, for a scheduled order, the guest picks a slot rather than a free time:

Setting What it defines
Slot length 15 / 30 / 60 minutes — the grid step
Slot capacity how many orders to accept per slot (0 — unlimited)
Lead time the minimum notice for accepting an order
Horizon how many days ahead slots are opened (1–7)

The values can be set globally and overridden separately for pickup and delivery — their loads differ.

The guest sees the nearest slots taking opening hours into account; full slots are greyed out. Slot occupancy is counted from orders already accepted and updates automatically.

The slot quota is soft: it is drawn for the guest and discourages overbooking, but there is no server-side "slot is full" rejection yet. If two guests pick the last slot at the same time, both orders go through.


Pay-at-table — the guest pays from the table#

At a QR table the guest gets a floating "Bill" button: it opens the table's current bill (items, quantities, total) and lets them pay it online.

The button only appears when both conditions hold: the QR code is bound to a table and online payment is enabled for the location. After payment a webhook marks the order paid — the till and the Orders section see it as usual.

The guest can pay the bill in full or their own share: the bill sheet offers a choice between “split evenly” (they say how many people are sharing) and “by items” (they tick their own dishes, quantities can be split fractionally). A tip can be added on top of the share. Each share goes through as its own payment and the bill stays open until it is fully covered, with the amount due recalculated on the fly: if a neighbour has already paid their part, “pay in full” takes only the remainder rather than the whole bill again. Two guests paying at the same time will not overlap — a share is reserved on the server.

While an order is being taken at the till, an upsell prompter works: after an item is added, "suggest with this" chips appear — dishes most often bought together with it. The prompt adds nothing by itself; the waiter decides.


Delivery — Delivery#

Setting up delivery zones#

  1. Open the Couriers section — polygon zones, the venue point and courier settings live there (the order settings hub links to it as "Delivery zones on the map, couriers and the courier network")
  2. Draw zones on the map or set a radius from the venue
  3. For each zone specify:
    • Delivery fee
    • Minimum order amount
    • Estimated delivery time

General delivery terms (fee, free-from, minimum amounts, radius, notes) are set on the location: Locations → the location → WEB, or My websiteOnline orderingDelivery & pickup. Details — Delivery.

Ordering flow#

  1. The customer opens the menu (via link, from social media, from packaging)
  2. Selects Delivery → enters the address
  3. The system determines the zone and shows the terms
  4. The customer places the order → pays online or on delivery
  5. The manager sees the order → assigns a courier
  6. The customer tracks the status: accepted → preparing → on the way → delivered

Courier management#

In-house delivery has its own Courier screen (see the guide):

  • The courier sees the queue: preparing → ready for pickup → out for delivery → delivered
  • "Take order" assigns the order to the courier, "Delivered" records the handover time
  • A map with the route to the customer and the courier's location
  • The payment method in the card: cash/card on delivery, online

Takeaway — Pickup#

How it works#

  1. The customer opens the menu → selects Takeaway
  2. Places the order → selects pickup time
  3. Pays online or chooses pay on site
  4. Receives confirmation with the order number
  5. Picks up the order at the scheduled time

Setup#

  1. Locations → the location → the WEB tab (or My websiteOnline orderingConfigureDelivery & pickup)
  2. Enable takeaway
  3. Set the pickup terms: minimum amount and a note for the guest
  4. Configure minimum prep time (e.g., 15 minutes)

There is no separate "Settings → Takeaway" page: delivery and pickup are enabled by the same location fields.


WhatsApp orders#

A popular ordering channel in Latin America, the Middle East, and Asia.

Setup#

  1. Locations → the location → the WEB tab (or My websiteOnline orderingConfigureDelivery & pickup)
  2. Turn on Accept orders via WhatsApp
  3. Enter the WhatsApp number in international format. Leave it empty to use the WhatsApp number from the location contacts

There is no "Settings → WhatsApp" page — the toggle and the number live in the storefront ordering block.

How it works#

  1. The guest builds a cart in the menu
  2. Taps Order via WhatsApp
  3. A WhatsApp chat opens with a pre-filled message (item list, quantity, total)
  4. The manager confirms the order in chat

Telegram orders#

Setup#

  1. Create a bot via @BotFather in Telegram
  2. In the admin panel → IntegrationsTelegram
  3. Connect the bot to your location
  4. The menu will automatically become available as a Telegram Mini App

More details: Telegram Mini App — guide


Order management#

Orders panel#

All orders from all channels (dine-in, delivery, takeaway, WhatsApp, Telegram) are displayed in a single panel:

  • New — just received, awaiting confirmation
  • In progress — confirmed, kitchen is preparing
  • Ready for pickup — the kitchen finished; the order waits for the courier or the guest
  • Out for delivery — a courier took the order (for own delivery)
  • Completed — customer received the order
  • Canceled — order canceled

Notifications#

Staff receive notifications about new orders:

  • 🔔 Sound notification on tablet/computer
  • 📱 Push notification on phone
  • 🖨 Automatic kitchen ticket printing (when a printer is connected)

The guest gets an e-mail confirmation. The checkout form has an optional “E-mail” field (entered once — the address is remembered in the browser and pre-filled next time). When an address is given, a confirmation e-mail goes out with the order contents, the total and a link to its status, followed by a digital receipt once the order is paid. Letters come from the venue, in the guest's language. The order settings give the field three modes: hidden, optional (the default) and required — the last one makes sense where a receipt is always needed, for instance with online payment for takeaway. A consent checkbox for the venue's news can be shown next to the field: without it, the address is used only for this order and its receipt.

Kitchen Display System (KDS)#

The Kitchen (KDS) screen in the admin panel shows the order queue (see the KDS guide):

  • Dish order by time received, timers
  • Item statuses: queued → preparing → ready; bump and recall
  • Stations — filtering by menu categories
  • All-day summary and a sound alert for new orders

Voice order management#

With the AI assistant, you can manage orders by voice:

Command Example
Open the order list "Show orders", "Open orders"
Open a specific order "Open order 42"
Accept an order "Accept order 15"
Mark as ready "Order 42 ready"
Mark as paid "Mark order 5 as paid"
Cancel an order "Cancel order 7"

All commands that change status require confirmation. More details — in the voice assistant documentation.


Order settings#

Settings live in two places — worth knowing so you don't look in the wrong one.

Ordering terms belong to the location: Locations → the location → the WEB tab. The same things are gathered on one screen under My website → the Online ordering card → Configure, as an accordion of four sections:

Section What it configures
Delivery & pickup Fees and free-from, minimum amounts, radius, notes, accepting orders via WhatsApp
Payments Card payments online (your own provider account) and payment methods offered on delivery
Checkout Checkout fields and the guest e-mail, scheduled pre-orders, checkout upsell
Fiscal receipts Where receipts for online orders are issued

The same hub links out to related sections: delivery zones and couriers, promo codes, loyalty, order automation rules, service charge and tips, taxes on the receipt.

The "Settings → Orders" tab is about handling orders that have already been placed:

Block What it does
Automation Auto-cancel unpaid orders after N hours and auto-complete handed-over/delivered ones. Checked hourly; cancellation goes through the normal flow (stock, notifications) and is reversible from the order card
Guest blocklist Phone numbers, e-mails and IPs whose orders are not accepted
Refund reasons Your own list of reasons the staff picks from when issuing a refund

Payment methods visible on the order card: cash, card on delivery, online, corporate account, charge to room (hotel) and On credit — the order was closed at the till into the debt ledger (see POS).


7. Floor plan and table management#

Floor plan editor#

  1. Open the Floor Plan section — it is its own sidebar item, not a Settings tab
  2. Drag and drop elements: tables (round, square, rectangular), chairs, walls, doors
  3. Specify the number and capacity of each table
  4. Create multiple zones: main hall, terrace, VIP, bar counter

Details — Floor Plan.

Table statuses#

Status Color Description
🟢 Free Green Table is ready for seating
🟡 Occupied Yellow Guests are at the table
🔵 Reserved Blue There is a reservation for this time

There are no separate "awaiting payment" or "service" table statuses. On the POS floor scheme two extra signals are highlighted on top of the status: waiter call and order ready.

Linking QR codes to tables#

  • Each table gets a unique QR code
  • When scanned, the system identifies the table number
  • The order is automatically linked to the table
  • The waiter sees which table the order came from

8. Reservation system#

Reservations for guests#

Guests can reserve a table:

  1. Via the QR menu → "Reserve a table" button
  2. Via the venue website
  3. Via a Telegram bot
  4. By phone (manager enters it manually)

Reservation setup#

  • Time slots: reservation duration
  • Guest limit: minimum and maximum per table
  • Deposit: require a prepayment for the table — a fixed amount or per guest; separately you choose what happens to the deposit if the guest doesn't show up (forfeited or refunded)
  • Waitlist: the guest joins a queue, and the invitation to a freed table is valid for a limited time
  • Confirmation: automatic or manual

All parameters and their defaults — in Reservations and Floor Plan.

Notifications#

  • The guest receives confirmation (email / Telegram)
  • The manager sees all reservations in the calendar

9. Room Service (in-room dining)#

For hotels, hostels, and apartments:

Setup#

  1. Locations → the location → the Business type field → Hotel. Business type sets the terminology and default presets of the location; it does not limit any features
  2. In the Floor Plan section switch to Rooms mode and create rooms (101, 102… or names) instead of tables
  3. Place a QR code in each room

Ordering flow#

  1. The guest scans the QR in the room → sees the menu
  2. Selects dishes → places an order
  3. Enters the room number and delivery time
  4. The kitchen receives the order → prepares → staff deliver to the room

Additional options#

  • Ordering additional services (towels, pillows, cleaning)
  • Breakfast schedule with dish selection
  • Mini-bar: consumption tracking
  • PMS (Property Management System) integration

10. Split Bill#

The bill is split at the till, by a waiter or cashier:

  • by items — each guest picks their dishes and pays only for them;
  • equally — the total is divided by the number of guests.

Each part is closed with its own payment method (cash, card, corporate account), and the order counts as paid once all parts are closed. Details — POS.

Guests can split the bill too — with the "Bill" button at a QR table (pay-at-table, above): evenly or by items, with a tip on top of the share. Till-side and guest-side splitting compute the same shares and do not conflict: the till sees the parts guests have already paid and closes only the remainder.


11. Kitchen Display System (KDS) — detailed setup#

Hardware#

KDS works on any device with a browser:

  • Tablet (10–12 inches) — recommended for small kitchens
  • Smart TV (32–55 inches) — for large kitchens
  • Monitor with a PC — for large venues
  • Multiple screens at once — each shows its own station

Multiple kitchen screens: station presets#

There is no screen builder in the admin panel — a screen is configured on the kitchen screen itself. The number of screens is unlimited, and each one is locked to its own station.

How to connect#

  1. Open the Kitchen (KDS) section
  2. In the Stations panel tick the menu categories this screen should see (the hint says exactly that: "Show only dishes from selected categories")
  3. Press Save current as preset and name it (for example, "Grill")
  4. Take Copy link or the QR of the saved preset and open it on the kitchen tablet, TV or monitor
  5. The screen locks to that station — a "This screen is locked to a station" note appears

Presets are stored on the account, so the same link can be opened on several devices.

If the link was saved and the preset was later deleted or renamed, the screen says so honestly: "Unknown station link — showing all orders".

Example layout for a restaurant#

Preset Menu categories Device
Hot kitchen Hot dishes, sides, soups Smart TV 43"
Cold kitchen Salads, appetizers, desserts Tablet 10"
Bar Drinks, cocktails, fresh juices Tablet 10"
Pizza All pizzas Smart TV 32"
All orders no filter (assembly / handoff) Monitor 24"

How an item reaches the right screen#

Routing is done by the screen's menu-category filter, not by a field on the dish card: neither a menu category nor a menu item has a "KDS station" property. Whatever is ticked in the "Bar" preset is what the bar screen sees.

The only "station → hardware" link is the station printer: the same Stations panel defines which bridge printer prints that station's ticket and which one is its backup (see Kitchen printing).

Order queue board for guests#

The guest-facing screen is a separate thing, not a "KDS screen type". The public Order queue board shows order numbers that are being prepared and ready.

It is enabled on the location: Locations → the location → the integrations section → Order queue board. The same card holds the "Show delivery orders" toggle (off = counter orders only), the public link, a QR code and an "Open board" button. All that is left is to open the link on a TV in the dining area or at the pickup counter.

Station setup#

A station is a saved set of menu categories:

Station What it shows
Hot kitchen Hot dishes, sides
Cold kitchen Salads, appetizers, desserts
Bar Drinks, cocktails
All orders No filter — for assembly and handoff

Time color indication#

  • 🟢 < 10 min — within normal range
  • 🟡 10–15 min — needs attention
  • 🔴 > 15 min — critical, priority

The thresholds (10 and 15 minutes by default) are set in the KDS appearance settings and are shared by every kitchen screen of the account — there is no per-station threshold.

Managing orders on KDS#

  • Tap a dish → "Preparing", tap again → "Ready"
  • Start — take the whole ticket into work
  • Bump — the ticket is assembled and goes to handoff; the waiter is notified
  • Sound alert for new orders and when time is exceeded
  • All day — how many identical items are in progress in total

There are no swipe gestures and no bump-bar support on the kitchen screen — everything is done with taps and buttons.

KDS offline mode#

If the internet goes down:

  • KDS keeps showing the last known state — the orders and appearance settings already loaded
  • The screen reconnects on its own; orders missed meanwhile are fetched from the server once the connection is back
  • Statuses sync automatically

12. Order cancellations and refunds#

Cancellation policy#

Order status Cancellation possible? Refund
New ✅ Yes (automatically) Full refund
Accepted by kitchen ⚠️ With manager approval Partial/full
Preparing ❌ Manager only At manager's discretion
Ready ❌ No No (if picked up)
Out for delivery ❌ No Upon claim

Refund process#

A refund is not issued from the Orders section: the order card only displays the refund status. There is no "Refund" button there right now — it is in the works.

  1. The guest contacts the manager
  2. The manager opens POSReceipts, finds the sale receipt and issues the refund against it
  3. Selects items to refund (full or partial) and the refund method
  4. Retail-vertical orders with a submitted refund request are visible in the Returns section

Details — Receipts and refunds and Returns.


What you need to get started#

  • At least one order channel: the QR storefront, the POS, the Telegram shop, an order widget on your site, or a manual order created by a manager.
  • An understanding of the "guest order needs confirmation" setting. By default an order placed by a guest reaches the kitchen, the POS and the courier board only after an operator accepts it here; the location setting switches back to "straight to work" — for points where there is nobody to accept orders manually.
  • Employee roles — access to the section and to "My orders" is governed by permissions (Staff).
  • Configured order types — dine-in, pickup, delivery: each has its own guest fields and its own rules.

Limitations#

  • The order-acceptance setting is per location. There is no bulk "switch on for all locations of the account".
  • Updates come over a websocket. Without a connection the list does not refresh itself — reload the page manually (If the internet goes down).
  • The time promised to the guest is static. It comes from a location setting and is not computed from current kitchen load; there is also no automatic channel pause on overload.
  • Aggregator orders are verified on mocks. There are no live partner connections to Wolt, Glovo, Yandex Eda or Deliveroo.
  • A WhatsApp order is a message to the owner, not an order in the pipeline: the reply and the status are handled in the chat manually.
  • The only writer of an order is the server. Edits arrive as separate signals, so a change does not land instantly and "direct editing of the order file" does not exist.

Troubleshooting#

A guest's order did not reach the kitchen. Most likely it is waiting for an operator to accept it: accept it here, or switch the location to "straight to work".

The status does not update on screen. Updates come over a websocket — reload the page if the connection dropped.

A guest says the promised waiting time is wrong. The promised time is static and set by a location setting — change it in the order settings.

An order from an aggregator is missing. There are currently no live marketplace connections.

An order is "stuck" in a status. Check that somebody further down the chain can move it: the kitchen display, the handoff screen or the courier board must be enabled and open.