Menus

Build recipes, see cost per serving and allergens, and publish your menu.

Build a recipe

Open Hospitality → Menus → Recipes and create a recipe. Add its ingredients with the quantity and the unit you use in the kitchen, such as grams or millilitres. A recipe can include another recipe, for example a sauce inside a dish. Set how many servings it makes and the waste percentage of each ingredient when part of it is lost in preparation.

Cost per serving and food cost

The cost per serving is the sum of the ingredients at their current average cost. When a new purchase changes an ingredient’s cost, every recipe that uses it is recalculated. Add a sale price and Komplian shows the food cost percentage of the dish against the target you set.

Allergens

Mark each ingredient with the allergens it contains and the ones it may contain as traces, from the 14 in Regulation (EU) 1169/2011. A recipe carries every allergen of its ingredients and sub-recipes, so the dish is updated when you change an ingredient.

The allergen information is only as accurate as what you record on each ingredient. Review it whenever a supplier or a recipe changes. Your business remains responsible for the allergen information it gives to customers.

Your public menu

Mark the dishes that are on the menu and assign them to sections. When you open Menus, the Public menu tab shows your guest menu in the centre, with shortcuts to customise it, edit dishes and share it. Open the public link or copy it to share your dishes, prices and allergens in Spanish or English. Ingredient costs stay in Recipes and never appear in the guest menu.

When your AI agent is active, it can answer customers’ questions about the menu and allergens from the same information, and it always asks them to confirm with your staff if they have an allergy.

Customise your menu

Open Design and choose a style, cover photo and logo in Appearance. Use Content for your restaurant name, sections and contact details, and Guests to decide whether guests can order from their table. Advanced appearance options let you adjust colours, fonts and dish layout.

The preview uses the same menu renderer your guests see, receives the builder’s current draft directly and responds as you edit. The public-menu overview receives the saved design and current dishes without fetching the published menu again inside the preview. Switch between mobile and wide previews, or open the published menu in a new tab. The desktop preview uses a real wide viewport scaled to fit the editor. Changes, including uploaded cover photos and logos, stay in a draft until you press Save changes. Use Discard changes to restore the published design; leaving with edits asks for confirmation. Save and Discard controls appear only when the draft differs from the published design. The preview never sends an order to the kitchen.

In Content → Languages, choose Spanish or English as the original language, prepare a translation, then review and edit the translated restaurant text, sections and dishes. Translation preparation does not publish anything. Press Save changes to publish it with the design. The flag-and-code language selector shows the current language and offers reviewed languages in the menu, profile and optional entry form. In the preview it changes language in place and retains that selection as you edit. Guests can switch languages only when every current text has a translation. Editing an original text makes that translation unavailable until reviewed again; old translations are never applied to new text.

In Guests, optionally require email, phone, or number of diners before entering the menu. Each switch is off by default. Only selected details are collected, with a country code required for phone numbers. Guests can browse again during their 12-hour session without repeating the form for the same restaurant and QR. Enabling an additional required field asks for it on the next access. Recent guests shows the private operational history to authorised editors; collecting details does not subscribe anyone to marketing or prove they are present at the table.

The guest menu opens with search, allergen filters, your configured cover banner and visual categories. Card and gallery layouts open a single dish collection, browsable horizontally on mobile and in a grid on desktop. Select a category to filter it and read its section note; select it again to see the full collection. See all expands the mobile cards into a grid. The list layout retains its section headings and category navigation. Dish details put the photo first, with quantity, kitchen notes and a fixed add action; the image cart keeps quantity controls and its send action accessible while the content scrolls. The menu, dish details and cart use your saved colours, fonts, photos and description settings. Hearts save favourites in the current browser tab for this restaurant. Sharing a dish opens the general menu without sharing the private table QR. The bottom navigation opens Home, Orders, Payment and Profile. Orders retains each private request in the current browser tab and table visit, with its dishes and preparation status. Profile holds the guest’s name, language, allergy filters and favourites; it is a visit preference, not a verified customer account. The Order button remains visible in the header and priced, available dish details. With table ordering available it opens the cart or adds the dish; otherwise it explains that an active table QR is needed, the visit has ended or ordering is closed. The preview explains that it cannot send real orders.

In a dish, swipe its photo sideways to move between the visible dishes, or use the left and right keyboard arrows outside text fields. No navigation arrows cover the photo. The share control uses an upward arrow from a square. The sheet stays open while its content changes; quantity and notes reset for the next dish. Adding a dish or dismissing the sheet finishes the closing transition before returning to the menu. Pull down from the photo or sheet header to close it; scrolling through its description and notes stays inside the sheet. Expand long descriptions with Read more. In the cart, the options button opens kitchen notes or asks you to confirm before clearing all dishes. Quantity controls and the total remain accessible while you scroll. The payment bill uses the restaurant’s saved design and dish photos too, including when returning from the payment provider.

Table QR codes

Each table gets its own QR when you create it in Tables. Open Tables & QR to copy, open or print its code, or print signs for all tables. The general menu QR is for browsing; a table QR also identifies the table when ordering is enabled.

Renewing a table QR asks for confirmation. The old QR stops accepting orders, so replace any printed signs with the new code. Removing a table invalidates its QR too. Existing orders remain in your history.

Guest menus receive changes to dishes, availability and design while they are open. If a table QR is renewed or its table is removed, its open menu stops offering table ordering.

Guest ordering and security

The menu always opens without a password or code. In Design → Guests, choose Browse only (the default) for staff to take the order, or Allow orders for guests to submit a request once staff open their table visit.

A printed QR identifies a table, not the person using it. Each guest request therefore waits in Orders for the waiter to check it with the guests and select Confirm and send to kitchenor Reject request. Before confirmation, it stays outside the kitchen, bill, payments and sales results. Guests can reopen each private request in Orders after closing the confirmation or reloading in the same browser tab and table visit. After staff confirmation, Payment shows the balance for that guest’s order without exposing the other guests’ orders. With a verified live merchant, guests can pay the available balance, choose an amount or split by diners through the payment provider. Pending collections reserve their amount; a lost response resumes the same request. Provider confirmation records the receipt and updates the bill and sales results automatically. Without online payments enabled, the bill directs the guest to pay the waiter. Closing the visit or renewing the QR revokes its guest bill link. Spanish and English follow reviewed menu translations.

Closing the table cancels unconfirmed requests. An old cart cannot submit into the next visit, and only one request can await confirmation per table at a time. A saved QR link cannot open a table or authorize kitchen preparation by itself; staff must verify the actual guests before approving a request.

If an order response is lost, the cart keeps the original request and checks whether it was created before sending again. Quantities, notes and the original total stay locked until the result is known. If it was already created, Komplian restores that order. Otherwise, retrying resumes the original request. A change to the menu’s prices does not silently change a request that may already have reached the restaurant.

Sold-out dishes

When a dish runs out, select Sold out next to it in the Public menu tab and choose until tomorrow or until you turn it back on. The public menu shows it greyed out and marked as sold out, and the AI agent stops offering it; if a customer asks for it, the agent says it is not available right now. Select Back on to offer it again.

Producing a batch

For preparations you make in advance, such as a sauce or a dessert, record a production. Komplian takes the ingredients out of stock and adds the finished product, with its batch code and expiry date.