QR Menu — Complete Guide
What you need to get started#
- A location with a name and an address — the storefront is signed with them.
- Categories and items with prices — the fast way to fill them in is import: from a photo of a paper menu, from an Excel file or from a website (Migrate to us).
- A QR code — printed in the QR codes and devices section: as sheets, posters or one at a time.
- Storefront languages — translation is automatic, you only pick the languages.
- Item photos — not mandatory, but they are what sells.
What is a QR menu?#
A QR menu is a digital version of your venue's menu, available to guests via a QR code. The guest scans the code with their phone camera and instantly sees the full menu with photos, descriptions, prices, and translations into their language.
Advantages over a paper menu#
| Paper menu | Cenaly QR menu | |
|---|---|---|
| Price updates | Replace the printed copy | Edit in the panel; the guest copy then refreshes |
| Languages | Separate translated copies | Up to 45 menu languages |
| Photos | Included in the printed layout | Item photos and galleries |
| Hygiene | Physical contact | Contactless |
| Allergens | Small print | Interactive filtering |
| Analytics | Not possible | Popularity, views |
Menu structure#
Location (your venue)
├── Category: Breakfasts
│ ├── Item: Fried eggs with bacon
│ ├── Item: Pancakes with berries
│ └── Item: Granola with yogurt
├── Category: Salads
│ ├── Item: Caesar
│ └── Item: Greek salad
├── Category: Mains
│ └── ...
├── Category: Desserts
│ └── ...
└── Category: Drinks
├── Subcategory: Hot drinks
├── Subcategory: Cold drinks
└── Subcategory: Alcoholic drinks
Category management#
Creating a category#
- Go to Menu → + Add category
- Enter the name in the primary language
- Upload a category photo (recommended 800×600px)
- Set the display order (drag & drop)
Editing#
- Click the category name to edit
- Translate names manually or use auto-translation
- Changes are saved automatically
Pause, archive and delete#
- Pause temporarily hides a category from guests while keeping it in the editor.
- Archive removes it from the working list; you can restore it from the archive.
- Delete is available for archived categories and permanently removes the category and its items, including nested subcategories.
Move items to another category#
One item. In the item row, click the folder icon with a down arrow. In the window, pick a category from the tree — the number of items in each is shown next to it. The item becomes the first one in the new category. You can do the same in the item card: change the Category field — the move is applied immediately. The icon is not shown when the list is filtered by a custom menu or a collection, or when you have view-only access to the menu.
Several items at once with AI. You cannot tick arbitrary catalog rows and change their category. Instead, you can gather matching items from other categories into a category:
- Next to the heading of the target category, click the gear (tooltip AI selection). The Category settings window opens.
- If needed, refine the Which products should be in this category field, for example "all soft drinks". AI picks by the category name and this text.
- Click Pick items. On a large catalog the window shows progress: "Checked N of M…".
- Review the list. Each item shows where it is now (now in "…") and, if AI explained it, why it fits. Untick the ones that do not belong — the Selected N of M counter shows how many remain.
- Click Move here (N). Items are moved one by one; when done, the window closes and the message Moved to the category: N appears. If you edited the text in the field, it is saved along with the move.
Good to know:
- AI only suggests: nothing is moved until you click Move here.
- Items from other categories are suggested. Not suggested: items from subcategories of the same category, archived categories and items, and a catalog shared with you. One pick checks up to 1,200 items — beyond that the window says "Only the first N items were checked."
- The move is not a single operation but a series: if it fails midway, the window shows Not everything was moved. The list has been refreshed — check it and try again. Items already moved stay in the new category and drop out of the list; clicking again moves the rest.
- Picking uses the AI balance. If it has run out, the window says "Your LLM balance has run out — top it up to continue."
- There is no Pick items button for Uncategorized or for categories shared with you. With view-only access to the menu there is no gear at all.
Menu item management#
Adding an item#
- Inside a category, click + Add item
- Fill in the fields:
| Field | Required | Description |
|---|---|---|
| Name | ✅ | Dish/drink name |
| Description | ❌ | Ingredients, preparation method, weight |
| Price | ✅ | Price in the venue's currency |
| Photo | ❌ | Dish photo (recommended) |
| Allergens | ❌ | Allergen labeling |
| Variants | ❌ | Sizes/portions with different prices |
| Add-ons | ❌ | Additional ingredients |
| Tax group | ❌ | Which rate the storefront uses for this item: "Standard", a group from your locations' tax tables, or your own — the "+ New tax group…" item asks for the name, the rate (or an exemption) and the locations and creates the group in the table (rates are set and edited in Commerce → Taxes) |
Dishes and prices by location#
One item card works at all your locations: the name, description and photo are shared, while presence on the menu and the price can differ per location. The location prices block appears in the card when the account has more than one location and you have the right to edit the menu.
Set a location price in the item card
- Open the item in Menu. The Price field is the base price; the location rows are below it.
- If a location is selected at the top (in the header of the left menu or in the catalog filter), its row comes first, labelled Selected location, and the others are collapsed under Other locations (N).
- If all locations are selected, expand the list with the arrow to the left of the Price field (tooltip Show prices by location).
- A tick next to a location means the item is on that location's menu. Tick it and the base price is filled into the location's field.
- Enter the price for that location. The card saves itself; there is no separate button.
- Open the location's menu as a guest and check the price.
Change location prices in one window
- In the catalog item list, click the item's price.
- If the price at least at one location differs from the base price, the location prices window opens. It lists only the locations whose menu includes the item; locations whose price differs from the base are highlighted. If there are no differences, the price is edited right in the row — that is the base price.
- Change the prices. Use base next to a location and Set all to base price at the top of the window fill in the current base price.
- Click Save all prices, or Cancel to leave without changes.
Return a location to the base price. A price of 0 in a location row means "at the base price": the location sells the item at the base price and follows it when the base price changes (the location prices window shows such a location with a price of 0). Ticking a location and Use base work differently: today's base price is written into the location field as that location's own price, and after the base price changes this location may keep the old one. So after changing the base price, open the location prices and check them.
When a location is selected at the top, you can remove the item from that location's menu or bring it back right in the list — with the In the menu of … tick in the item row; it saves immediately. This tick is shown only for items assigned to specific locations. An item sold at every location without assignment is removed from one location in the card.
To change prices of many items at once — for example +7% on all drinks at two locations — use a rule: Change prices in the catalog table. Which price applies on the website, for delivery and on aggregators is described in Which price applies in each sales channel.
Own storefront vs dine-in: online price, pickup and delivery prices, hide online, guest name and photo#
Prices, visibility and names on your website and in the dining room can differ without a second catalog. Open Integrations → "Per location" tab → pick the location → the "Own storefront: prices and visibility" block and expand "Storefront menu":
- "Online price" — the item's price on the website. Empty — the website uses the dine-in price. Example: a cocktail at 500 in the dining room and 550 on the website.
- "Hide online" — the item stays in the dining room and at the POS but disappears from the website. The checkbox in a category row hides the whole category.
- "Guest name" — what guests see on the website. Write it in the business language.
- The "+ More" button on an item opens the remaining fields:
- "Guest description" — the description on the website, in the business language;
- "Photo link for the storefront" — the item's own picture on the website. The "Upload or pick" button next to the
field opens the account gallery: upload a file from your computer or pick one you uploaded before — the link fills in by
itself. You can also paste an
https://…link by hand. A link to the photo of another item on your menu works as is: the website picks the card size and the large size for the full view by itself; - "Price by fulfilment" — "Pickup", "Delivery", "Pre-order". Example: 500 in the dining room, 480 for pickup, 620 with delivery. Empty — the online price;
- "Guest name and description in other languages" — one row per website language except the business language. Empty — the item translation from the menu.
Click "Save" — the storefront updates within a few seconds.
What counts as "website" and what as "dining room". The own storefront is your website and QR codes not bound to a table. The POS, the waiter screen, table QR codes (bound on the floor plan) and the self-service kiosk use the dine-in price. If the QR codes on your tables are not bound to tables, a guest at a table will see the online price — bind the codes to tables on the floor plan.
How the price by fulfilment works. On the item card the guest sees the online price (or the dine-in price if no online price is set) and, below it, the prices you set per method: "Pickup — 480 · Delivery — 620". When they choose "Pickup" or "Delivery" at checkout, the cart is repriced at that method's price and the total on screen changes right away. Pre-order is an order for a set time (pickup or delivery "at a time"): if the item has a pre-order price, it applies; otherwise the pickup or delivery price does. A "dine-in" order uses the online price. Items with add-ons and variants are repriced the same way: the method's price plus the chosen add-ons. Example: a pizza is 480 for pickup, size L +150, cheese +60 — 690; the guest switches to delivery (620) — the line becomes 830. If an add-on the guest chose is no longer on the menu, the line keeps its previous price.
The online price and the fulfilment prices are legitimate item prices: an order paid at any of them passes the price check, and reports keep the line at the price it was bought for. The price check does not reject an order when the line price lies between the lowest and the highest price of the item (dine-in, online, pickup, delivery, pre-order).
Item type determines whether the card is sold to guests. Not for sale includes Prep, Ingredient, Consumable and Packaging. These support inventory and recipes but are hidden from the guest menu and POS sales grid. A prepared dish for sale needs the appropriate sellable type.
Set Cooking time (min) in the dish card to give the kitchen a preparation-time reference. This is separate from the dish's availability schedule.
Which price applies in each sales channel#
There is no separate catalog per channel: an item has one card, and the differences are set on top of it.
| Where it is sold | Which price applies | Where to set it |
|---|---|---|
| POS, waiter screen, table QR code, kiosk | The location price: the location's own price or the base price | Item card — Dishes and prices by location |
| Your website and QR codes not bound to a table | Online price if set, otherwise the location price | Integrations → Per location → location → Storefront menu |
| Pickup, delivery, pre-order on your website | Price by fulfilment if set, otherwise the online price | Same place, the + More button on the item |
| Glovo, Wolt, Yandex Eda | Channel price if set, otherwise the menu price with the channel markup | The marketplace's card → Channel menu overrides table |
Remove a separate channel price. Clear the Online price field or the fulfilment price and click Save: an empty online price means the location price on the website, an empty fulfilment price means the online price. On an aggregator, an empty Channel price brings back the general markup. How to connect a marketplace and what state the connection is in — see the Glovo, Wolt and Yandex Eda articles.
The kiosk has no price of its own: the kiosk, the POS and table QR codes use the location price. A time-limited discount (happy hour) is set not here but in the menu schedule.
Dish photos#
- Format: JPEG, PNG, WebP, HEIC/HEIF (iPhone photos), AVIF, GIF, BMP, TIFF, SVG, ICO; file size up to 10 MB.
- Recommended size: 800×600px or larger.
- Optimization: uploaded photos are compressed and converted for the web automatically.
- AI enhancement: a separate button improves lighting and colour; versions are saved so you can restore an earlier image.
- AI generation: create an image from the dish name when you have no photo.
- Dish gallery: add images, videos and video links alongside the main photo. Guests browse them in the card's carousel. Gallery photos can also be AI-generated from the + menu.
Variants (sizes/portions)#
Let guests choose a size or portion:
- Small portion — 200g — ₽350
- Medium portion — 350g — ₽500
- Large portion — 500g — ₽700
Add-ons#
Additional ingredients or options:
- Extra cheese — +₽80
- Spicy sauce — +₽50
- Gluten-free — +₽100
Multilingual support#
How auto-translation works#
- You enter the name and description in the primary language
- The system automatically translates into all selected languages (up to 45)
- You can edit any translation manually
- Manual edits take priority over auto-translation
Translations as a file for a translator#
If a professional translator or agency translates your menu, hand them the texts as a file — no need to give them access to the admin panel.
- In Menu, click the table icon “Catalog as a table”, then the “Translations file” button.
- On the “Download” tab, tick the languages (your account languages by default), what to include — category names, item descriptions, archived items — and the format: Excel (XLSX) or CSV (UTF-8). Click “Download file”.
- The file has one row per text: the
type,id,fieldcolumns (technical — do not change them),categoryandsource(the original text, for context) and one column per language —en (English),de (German)… Existing translations are already filled in; the translator adds the missing ones and fixes the poor ones. - When the file comes back, open the “Upload” tab and choose it. Nothing is saved right away: the window shows how many translations will change and a “Now → Will be” table.
- Check it and click “Apply”. The translations appear in item cards, the QR menu and the online store.
Good to know:
- An empty cell erases nothing — if the translator skipped a text, the current translation stays.
- If the original text was edited after the download, the row in the preview is marked “source changed” — check that the translation still fits.
- Rows of deleted items and columns that do not look like a language (for example “Comment”) are skipped — the window tells you how many.
- A CSV saved by Excel with “;” as the separator is read too. Save CSV as UTF-8, otherwise letters turn into question marks.
- Uploading translations needs the right to edit the menu; anyone who can view the menu can download the file.
- Variants, add-ons and modifiers are not in the file yet — translate them in the item card.
Supported languages#
English, Russian, Georgian, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Turkish, Arabic, Chinese, Japanese, Korean, Hindi, Thai, Vietnamese, Indonesian, Malay, Filipino, Ukrainian, Hebrew, Persian, Swahili, Amharic, Nepali.
How is the guest's language determined?#
- The system checks the guest's browser language
- If that language is enabled in the menu — it's shown in that language
- If not — it's shown in the venue's primary language
- The guest can switch the language manually
Design and branding#
Brand identity#
- Logo — displayed in the menu header
- Cover — banner at the top of the menu
- Colors — the system adapts to your brand colors
Venue information#
The menu automatically displays:
- Venue name
- Address
- Opening hours (if provided)
- Contact details
Browse-only menu and temporary closure#
Keep the menu, turn ordering off#
If guests should only browse dishes and prices, open Locations → your location → WEB menu and enable Disable ordering. The menu remains visible, but adding to the cart and checkout are disabled.
The same settings are available under My website → Online ordering (/embed/order). They control the storefront opened by the widget on your website.
Close for renovation or a break#
- In the same WEB menu tab, enable Maintenance mode.
- Under What to close, choose an option:
| Option | What guests see |
|---|---|
| The whole storefront (splash screen) | A message page instead of the menu |
| Ordering only (catalog stays visible) | A browsable menu with ordering disabled |
- For the splash screen, fill in Splash heading, Message to guests and, optionally, Back on. Empty text fields use standard wording in the guest's language. You can enable Show phone, address and social links on the splash screen.
- Check the guest link. Preview as owner lets you look behind the splash screen, so it does not replace checking the guest view.
The location's Paused status is a separate way to announce a break: guests see We are temporarily not working. Use maintenance mode for your own closure message.
QR code#
Generation#
- Open QR codes, then Guests / menu.
- Create a code for a table, counter or entrance and choose the code and background colours, a central image and the dot style.
- Download SVG for printing at any size.
Where to place the QR code#
- On tables — stickers, table tents, inserts under glass
- At the entrance — near the host stand
- On business cards — for promotional purposes
- In Instagram/TikTok — link to your menu
- On delivery packaging — for repeat orders
NFC stands#
In addition to QR codes, Cenaly supports NFC — a guest can tap their phone on a stand for instant access to the menu without scanning.
Updating the menu#
- Price, description and photo changes are published after saving; the guest copy can take time to refresh because of caching.
- There is no need to reprint QR codes for ordinary menu changes.
- The item card saves automatically; there is no separate Save button.
- Photo versions let you restore an earlier image after an enhancement.
Content tips#
- Add photos — photos help guests choose
- Write descriptions — ingredients, weight, and preparation method help guests choose
- Specify allergens — help guests make an informed choice
- Update prices — update the menu without reprinting
- Use categories — a logical structure simplifies navigation
Stop list (out-of-stock items)#
When an item runs out, open Stop-list on the POS or KDS, find it and choose a duration. The selected location is stopped by default; a manager can explicitly stop all locations. A stop blocks purchase without deleting the card. Pause and archive serve longer-term catalog changes.
For Out right now, bulk actions, return times, local and global stops, see Schedules and Happy Hour.
With inventory enabled, stock can also affect availability. Check the actual stock balance when an item remains unavailable. Do not assume that a stop or its expiry has reached a delivery marketplace: live connections and automatic return updates have limitations described in the linked article.
Menu schedule (breakfast / lunch / dinner)#
Use different availability windows for breakfast, lunch and dinner.
Setup#
Set the schedule on a dish, category or custom menu:
- In Menu, press the clock icon next to the row.
- Enable availability limits and set weekdays and time windows: breakfast 07:00–11:00, lunch 11:00–16:00 or dinner 16:00–23:00.
- Use the overnight setting for a window such as 22:00–03:00.
The clock is grey without a schedule, green when available, red outside its window, and amber when there is only a happy-hour rule.
How it works#
- Outside the window, the item is unavailable to guests and dimmed on the POS.
- A dish's schedule takes precedence over its custom menu's schedule.
- A schedule for a whole custom menu is a quick way to manage a business lunch, brunch, bar or children's menu.
- Times use the location's time zone, not the guest's device.
For details and happy-hour prices, see Schedules and Happy Hour.
Combo sets#
A combo combines several dishes under one name and price, such as a burger, fries and a drink, a lunch set or a children's meal.
What the guest sees#
The guest sees one item with a name, description, photo and price. A fixed combo can be added without selecting its component dishes separately.
How it works in the kitchen#
KDS expands the combo into its component dishes and sends each to the appropriate station. The combo line's status is coordinated as the components become ready.
Combo inventory#
With Inventory enabled, ingredients for each component dish are deducted using its recipe.
Set up a combo#
- Open or create an item in Menu.
- Open its composition tab.
- In the combo section, add a dish.
- Choose the dish and its quantity.
- Repeat for each component.
- Set the overall combo price in Price.
- Close the card: changes save automatically without a separate Save button.
Combo slots — "build your own lunch"#
Besides a fixed-composition set there are combo slots: the guest picks one option from each slot. The classic business lunch — "Soup: borscht / cream soup", "Main: cutlet / fish", "Drink: tea / compote".
| What you configure | How it works |
|---|---|
| Slot | a name ("Drink", "Soup") with translations |
| Slot options | menu dishes the guest chooses from |
| Option surcharge | an optional add-on to the combo price (e.g. +2 for fresh juice) |
| Required | whether a choice in this slot is mandatory |
| Default option | pre-selected, so the guest can just add the set |
The final price = combo price + surcharges for the chosen options.
The guest's choice travels into the order line, so the kitchen sees the actual dishes and stock is written off for exactly those, not for an "average lunch".
Combo availability window#
If a set is only relevant at certain hours — a lunch set from 12:00 to 15:00 — give it an availability schedule. See Schedule and Happy Hour.
AI menu concierge#
Guests don't always know what they want, and scrolling 120 items takes a while. The AI concierge takes a request in plain words — "something light, no onions, under 30 GEL" — and answers with two or three specific dishes from your menu, with prices and descriptions.
The concierge works only from your catalogue: it does not invent dishes and does not suggest anything that is not on the menu. A suggested dish can be added to the cart straight from the answer.
Family cart#
When several people share a table, everyone can add dishes from their own phone while the order stays one.
How it works: one guest (the "host") shows the QR code of their order, the others scan it and join. Each joiner sees and edits their own part, the host sees the whole order with a note of who added what. The hierarchy is strictly two levels, and several guests can join one order.
The venue receives one shared order. Kitchen tickets can still be split by station.
Guest dietary profile#
In the menu filters the guest marks their dietary tags (vegetarian, halal, gluten-free…) and the allergens to exclude. The choice is saved on the device for this venue and survives a page reload and a return visit: a regular with a nut allergy doesn't have to tick it every time.
The profile lives only in the guest's browser and is not tied to their identity. More about the tags themselves — Allergens.
Upsell on the storefront and at checkout#
Three surfaces where the menu suggests adding more:
- "Add to your order" at checkout — a curated row of dishes that you define yourself (the heading and the item list are configurable);
- "Frequently bought together" — computed from your own orders, with no manual setup;
- "Goes well with" on a dish card — related items.
The same principle works at the till — an upsell prompter for the waiter, see POS.
Order history and “Repeat order”#
A guest sees their previous orders at this venue — the “My orders” item in the storefront menu. The history is kept in the guest's browser (the last ten orders per venue), so it works without any sign-up: a regular who takes the same lunch repeats it in two taps. A signed-in guest additionally sees the server-side history of their orders.
The “Repeat” button rebuilds the basket — same options, modifiers and picks inside a combo. Before anything is added, the contents are checked against the current menu:
- items that were withdrawn or put on the “86” stop list do not go into the basket — the guest sees a clear warning about which dishes are unavailable right now;
- prices are taken as they are today, not from the past order, so a dish that went up will not go through at the old price;
- everything else lands in the basket and the guest goes straight to checkout.
The history builds itself when an order is placed — there is nothing to switch on. A restaurant storefront gets it exactly like a shop storefront, with no separate customer account required.
NFC — contactless menu#
NFC (Near Field Communication) is an alternative to a QR code. The guest taps their phone on an NFC stand and instantly sees the menu.
NFC benefits#
- Faster than QR (no need to open the camera)
- Premium impression
NFC setup#
An NFC tag needs only the same link as the QR code; there is no separate NFC setting in the panel.
- Obtain NFC tags or stands.
- Copy the required code's link from QR codes.
- Write it to the tag with an NFC-writing application.
- Place the stands on tables.
Compatibility#
- The phone must support reading NFC tags; unlocking requirements depend on the device. Check your stands on the phones your guests use.
AI features for the menu#
AI dish photo generation#
No dish photo? AI will create a realistic image:
- In the item editor, click ✨ AI Generate photo
- AI uses the dish name and description for generation
- If images have already been generated for similar requests, the "Ready-made AI images" dialog opens first: pick one with "Use this" or click "Generate new"
- A new generation returns one image and puts it into the card right away — there is no grid of variants to choose from
- To set the style up front, open the "Generation settings" panel with the chevron next to the button: background, angle, lighting, mood and an extra description added to the prompt
Recommendations:
- Write a detailed description for better results
- Specify plating style: "on a white plate", "rustic", "fine dining"
- Generated photos can be replaced with real ones at any time
AI photo enhancement#
Uploaded images are optimized for the web and cropped to the required aspect ratio.
A separate enhancement action sends the image to AI for improvements to lighting, colour and presentation:
- Each enhancement is stored as a version.
- You can restore the previous version from history.
- Category photos can be enhanced as well as dish photos.
AI dish descriptions#
AI can generate an appealing description:
- Enter the dish name and main ingredients
- Click ✨ Generate description
- AI creates an appetizing description tailored to your venue's style
- Edit if necessary
AI translations#
Menu texts can be translated into the selected languages, with up to 45 supported:
- Translation takes context into account (culinary terminology)
- You can edit any translation manually
- New translations appear after processing and publication
AI paper-menu scanner#
In Menu, import a photo of a paper menu, an Excel, CSV or PDF file, or a link to your current website. AI extracts items, prices and categories and shows an import plan for review. Existing matches are reconciled on repeat imports. See Migrate to us.
AI card review#
The check button in the dish-card header asks AI to review the card and suggest improvements to descriptions, labels, nutrition or cross-selling. Apply suggestions individually.
Limitations#
- On the free plan there is a limit on the number of items. It is soft: you can always edit what exists, but creating items beyond the limit is blocked. A batch import does not refuse outright — it loads as many as fit and explains the remainder with a banner.
- AI features on the item card are billed to the AI balance — when it runs out you will see a banner rather than silence.
- A separate menu per channel is something we deliberately do not build. For an aggregator and your own website you can override prices and hide items, but you cannot assemble "a completely different menu". The kiosk has no prices of its own — it uses the location price (which price applies where).
- On the Russian brand there is no image resizing — photos are served as they are, so heavy files are worth shrinking before upload.
Troubleshooting#
What the guest sees#
| What the guest sees | Cause | What to do |
|---|---|---|
| Sorry, page not found | The location could not be loaded from the opened link | Compare it with the current link in the panel and retry; if the address is correct, check publishing and connectivity |
| No items found | The current list has no items, including after search or filtering | Clear search and filters; check the menu for this location and QR code |
| We are temporarily not working | The location is paused | Resume the location when you are ready to accept orders |
| Venue permanently closed | The location is archived | Check whether this is an old location's link; review the status of the operating location |
| Temporarily closed | Maintenance mode is enabled; this is its default heading | Turn maintenance mode off after the break; your own text may replace this heading |
If an old printed QR code opens the wrong page#
A guest code contains a stable code link, not the venue's name. Editing a code's name or settings does not create a new code. When a location address changes, the server updates redirects for its guest codes; after the update, the existing print should lead to the new address.
Scan the printed code and compare its link with QR codes → Guests / menu. Allow time for the redirect update. If it still leads to the old address, check the code's location assignment and contact support with both links. A separately printed direct storefront link does not acquire the code's redirect. If the old code was deleted and replaced with a new one, update the printed QR or NFC link.
An item exists in the editor but is missing or unavailable to buy#
| Cause | What to check and do |
|---|---|
| A type under Not for sale | Choose a sellable type for a dish you sell; keep stock ingredients internal |
| Item or category status | Check pause and archive; restore only what you actually sell |
| Stop list | Check both the global stop and this location's stop; remove the relevant one or wait for expiry |
| Schedule | Check the location's time and the item, category or selected menu window; the card may remain visible but unavailable |
| Item not included at this location | Check location assignment and the selected menu, including a QR code's own subset |
The guest sees an old menu. The storefront is served through a CDN: wait and reload the page with the cache cleared.
A new item cannot be created. The plan limit has been reached — editing remains available.
A translation did not appear. Languages are chosen in the storefront settings; after adding a language the menu is not translated instantly.
A photo uploads but looks heavy. On the Russian brand there is no resizing — shrink the image before uploading.
Frequently asked questions#
Must I close the whole storefront to stop accepting orders?#
No. Enable Disable ordering or select Ordering only (catalog stays visible) in maintenance mode.
Will “Back on” reopen ordering automatically?#
No. Turn maintenance mode off manually and check the separate ordering switch.
Related sections#
- Schedule and Happy Hour — time-based availability of dishes and menus, happy hour, seasonal menus.
- Kitchen (KDS) — how combo orders appear in the kitchen and split across stations.
- Inventory — writing off ingredients when dishes and combos are sold.
- Allergens — allergen and diet tags behind the guest dietary profile.
- Orders — calling a waiter, pre-order slots and paying at the table.
- POS — the waiter's upsell prompter and splitting the bill.
Check a new item, category and price#
- In the menu editor, select a category. For a nested section, create the category under its intended parent and check its position in the tree.
- Add an item, enter its name and price, and choose the appropriate item type. Use product variants for SKUs and the supported portion options and add-ons for dishes.
- The card saves itself. Under the Price field, check the location ticks — which locations' menus include the item — and each location's price: a shared item does not imply one price everywhere (see Dishes and prices by location).
- To change one location only, set that location's price. Website, pickup and delivery prices are set in your storefront settings (Integrations → Per location), see Which price applies in each sales channel.
- Open the location's menu as a guest, find the item in its category and check the price. If it is missing, check inclusion, category pause, the stop list and availability schedule.
After editing catalog prices, check existing open orders separately: a saved sale line is not a preview of the current menu.