Menus and groups (what customers see)
Items & menus → Menus: open a menu, then create or edit its groups.
What Is It?
Foody separates what you sell from how you show it — the same idea Square uses, so the catalogue works for any business.
- Items — your global catalogue of dishes/products (created once).
- Categories — internal labels for you (reporting, kitchen routing). Customers never see categories.
- Menus (cartes) — a customer-facing menu, e.g. "Breakfast", "Lunch", "Dinner".
- Groups — the visual sections inside a menu, e.g. "Salads", "Drinks". This is what customers see.
The rule that trips everyone up: an item must be placed in a group to appear to customers. Being in a category is not enough — categories are internal only.
The structure
Item (global catalogue — "Caesar Salad")
└─ belongs to one Category (internal: "Salads") ← customers don't see this
Menu / carte ("Lunch")
└─ Group ("Salads") ← customers DO see this
└─ contains Items (the same item can sit in several groups/menus)
A group like "Lunch specials" can pull items from several categories. The same item can appear in several groups and menus.
Check menu tabs on the website
Two menus, such as BASSARI and HALAVI, remain separate menus. On an order page offering several visible menus, tabs select one menu at a time. Category menu pills represent groups within that menu, such as Sandwiches, rather than internal library categories. Enable each menu’s Web channel, select them in the order page settings, then check both navigation levels in preview and after publishing. Group navigation styling lives in Item list. See website menu and group navigation.
Prepare, save and publish a carte
Open Items & menus → Menus and select the carte. For a rotating carte, choose its series in the header. Add lets you choose items for a group or create a group; Add menu group is also available below the list. A group’s chevron collapses or expands its table without changing the carte. Its “…” menu contains Edit group and Choose items. The “…” menu beside the carte title contains Carte settings and Preview. Group, channel and hours edits stay local. Once edits or a saved draft exist, the bottom bar offers Save draft and Publish. Save stores a private draft; Preview opens a private list that cannot take orders. Publish asks for confirmation and applies the carte and prepared stocks together. Saving alone never changes the live website or POS. Edit POS layout opens the separate tile editor; unsaved changes are guarded before navigating there.
Choose items with photos and filters
Inside a carte group, click Add items or … → Choose items. Add or remove items shows each product photo, or an icon when no image can be displayed, and the variant count when there is more than one. The trailing checkboxes add or remove group membership in the draft only; they never delete library records. The count includes selected items hidden by filters. Search combines with Filters → Category: select one or more internal categories, then Apply. The target group is separate from the category; from Add → Add items, choose it in Menu group. Menu and Stock filters also combine; Stock offers All stock, Low stock alert and Out of stock using the calculated availability for the selected series. Point of sale is limited to the active restaurant. Clear removes choices in the open filter; Apply confirms them. Closing that filter or pressing Escape discards unapplied choices. Clear all filters restores the full list without changing checked items or the search. If nothing matches, adjust the search or clear filters. A category loading failure offers Retry; it is not an empty category. Done closes the picker and keeps local edits; then Save draft and explicitly Publish. Create a new item opens the shared item editor and first protects unsaved carte changes.
Where it sells: online vs POS
Each menu and group has channel switches:
- Web enabled — shows in the online / QR ordering app for guests.
- POS enabled — shows on the staff POS.
So you can run, say, a "Dinner" menu that's web-only, or hide a group from guests but keep it on the POS. Turn a group off for one channel and it simply doesn't appear there.
When it sells: availability hours
A menu (and each group) can follow your opening hours or use custom hours — e.g. a "Breakfast" group that only shows 07:00–11:00. Outside its hours, customers don't see it.
How this connects to availability
Channels and hours determine whether a group can be shown. Item availability can then make it orderable, sold out or hidden, depending on its rule and manual status. A sold-out item may remain visible with a badge; membership in a group does not guarantee it is orderable. Availability.
Check the publication
Create and save the shared library items first. Add them to the carte draft, check the selected series, web/POS channels, hours and group hiding, then preview and publish. The current series stays unchanged while preparing a future series. A future series without a publication is not served once carte publication is activated. Product names, prices, recipes and active status remain shared library edits; availability switches marked immediate apply immediately and are journaled.
Leave safely and resolve a conflict
If you leave or change series with unsaved edits, choose Save draft and leave, Discard, or Continue editing. Discard in this dialog drops unsaved edits only; a previously saved draft remains. Discard draft on the carte removes the saved draft after confirmation and keeps the published carte live. If saving or publishing fails, stay in the editor and review the error. Your edits remain available. A stale revision, changed stock setting, invalid quantity or allowance below existing commitments prevents publication. Reload saved draft explicitly to recover the latest server version; it discards unsaved local edits.
Prepare stock for a new series
With menu editing permission, open the rotating carte, select a series and open the “…” menu beside the title → Prepare stocks for this series. Enter INITIAL allowances including quantities already ordered: available = initial minus committed. Use shared units, compatible base measures (g/ml), counts per size, or no predefined limit. Copy previous initial quantities copies allowances, never previous remaining quantities or an old sold-out override. Quantities are shared by the same restaurant item across cartes for that series. Save draft keeps preparation private; Publish applies it atomically without restoring reservations made while editing. The first activation imports current available stock and existing scheduled orders, preserving current remaining quantities. Later series never inherit the old global counter. No predefined limit may still be constrained by a recipe, rule or manual status.
Use the table and item actions
With menu editing permission, select one or more items in a group. The selection bar lets you move them to another group or remove them from this group. A row’s “…” menu also offers Move up, Move down and Remove from group. Dragging reorders rows and groups. These actions edit the draft without deleting shared library items. An item name opens its shared item editor; Select under Modifiers also opens the shared editor; use its Personalizations section to change them. Returning from the editor brings you back to the carte. Leaving unsaved changes offers save, discard or continue editing. Columns show the location, configured channels, modifiers and price; an Availability column reuses the Articles page badges, with remaining stock below each badge. Configured channels do not guarantee ordering: hours, active status and availability still apply. On mobile, secondary columns are hidden while name, stock, price and the “…” menu remain accessible.
Change availability and read history
With menu editing permission, open a saved product → Stock & availability → Edit stock and availability. The Availability badge in Items or a Carte opens the same editor for current stock. Opening it changes nothing. Choose Available without limit, Unavailable, Manually defined quantity or Quantity calculated from recipe. Manual quantity is the remaining stock entered in units, g/ml or per size; existing commitments remain reserved. Recipe calculation uses available ingredients and preparations and stops applying the manual counter. Old counters and frozen reservations remain intact for existing orders. Without recipe ingredients, no quantity limit can be calculated: a message asks you to complete the recipe. If ready-stock sale is active, disable it in the preparation settings and save the product before choosing recipe calculation. Apply directly saves every setting in this dialog: availability, source, tracking mode, unit, quantities and profile. This works with or without series, without product Save. Unsaved names, prices and preparation settings stay independent and are not saved. A profile-only change does not rewrite stock or reservations, including exhausted stock and inactive products. Stock and profile changes submitted together commit in one transaction: failure rolls back both and retains inputs. Dialog controls are locked while saving. Cancel or Escape before applying discards choices; after confirmation, leaving the product does not undo the applied settings. If saving succeeds but refreshing fails, Retry only reloads data without repeating the adjustment. Edit reusable profiles in Settings → Stock → Availability. Within a carte draft, applied stock replaces only this item’s stock preparation; other drafts stay private. Stock loads freshly on opening. On conflict, reload, review quantities and explicitly apply again.
View the stock history journal
Open Items & menus → Stock history. This page contains only the movement journal, visible as soon as it opens: it does not list current stock or offer corrections. Choose an Item or All Items, a Series date or All series, and a Movement or All movements. Past series dates are accepted. Filters combine and remain applied when using Show more. The journal shows the date and series, item, movement, before/after quantities and actor; a link opens the associated order when present. An empty result means no movements were recorded for those filters. Initial imports are labeled as imports; changes before tracking was activated cannot be reconstructed. If the item filter fails, Retry reloads that filter while the journal remains available. On a product, the Stock history button opens a dedicated dialog containing only that item’s movements, across all series. On a carte, the row History shortcut or its “…” menu also opens that dialog. To prepare or adjust initial series quantities, open the carte, choose the series, then Prepare stocks for this series, save the draft and publish after reviewing it. Availability actions marked immediate remain separate and journaled. A pre-production cancellation credits the original pool; a produced item remains consumed. If the journal fails to load, Retry reloads movements without changing filters; this error is not presented as an empty history.
Change availability from Items
With menu editing permission, open a saved product → Stock & availability → Edit stock and availability. The Availability badge in Items or a Carte opens the same editor for current stock. Opening it changes nothing. Choose Available without limit, Unavailable, Manually defined quantity or Quantity calculated from recipe. Manual quantity is the remaining stock entered in units, g/ml or per size; existing commitments remain reserved. Recipe calculation uses available ingredients and preparations and stops applying the manual counter. Old counters and frozen reservations remain intact for existing orders. Without recipe ingredients, no quantity limit can be calculated: a message asks you to complete the recipe. If ready-stock sale is active, disable it in the preparation settings and save the product before choosing recipe calculation. Apply directly saves every setting in this dialog: availability, source, tracking mode, unit, quantities and profile. This works with or without series, without product Save. Unsaved names, prices and preparation settings stay independent and are not saved. A profile-only change does not rewrite stock or reservations, including exhausted stock and inactive products. Stock and profile changes submitted together commit in one transaction: failure rolls back both and retains inputs. Dialog controls are locked while saving. Cancel or Escape before applying discards choices; after confirmation, leaving the product does not undo the applied settings. If saving succeeds but refreshing fails, Retry only reloads data without repeating the adjustment. Edit reusable profiles in Settings → Stock → Availability. Within a carte draft, applied stock replaces only this item’s stock preparation; other drafts stay private. Stock loads freshly on opening. On conflict, reload, review quantities and explicitly apply again.
Check conditional item choices
An item configured with repeated positions requires one separate choice per position according to the selected format. For example, a two-character Number Cake accepts 11, AB or A7. The format price replaces the base price; modifiers add only their configured surcharges. Reducing the position count removes newly hidden choices. Positions remain distinct in the cart, orders and kitchen ticket; review them before confirming. These customizations do not change delivery, availability, recipe, discount or cancellation rules. Configuration requires compatible versions and menu editing permission. See Variants and sizes for setup and recovery after a rejected selection.
Browse the library on mobile
On a handheld terminal, open Library. The filter button selects Items, Combos or Discounts. Under Items, choose a category in the selector above the list, search for a product and tap its row to open the existing editor. Price and availability remain visible, with a separate switch for authorized users. This internal list does not change published menu groups, ingredients, portions or variant rules configured in Admin.
Choose units and shared or per-size stock
With menu editing permission, open a series-tracked product → Stock & availability → Edit stock and availability, or the Availability badge in Items or a Carte. Select Manually defined quantity. Choose the tracking mode, including for a series that already has committed orders: Shared unit count deducts one per item; Shared measure pools a budget across sizes; Count per size keeps an independent counter for each variant. Compatible numeric sizes offer g/kg or ml/l under Input unit. For example, 2,000 g in shared measure is shared between the 250 g and 500 g sizes. In count per size, entering 1,000 g for each allows 4 portions of 250 g and 2 portions of 500 g, with no sharing between counters. Check the displayed equivalents: each per-size budget must equal a whole number of portions. A blank size remains unlimited; enter 0 to exhaust it, with at least one other positive size. Use Unavailable to exhaust the whole item. Changing g to kg or ml to l preserves the quantity; changing tracking mode clears the fields to avoid converting portions into grams. When the mode changes, existing reservations are recalculated from each ordered size and added to the remaining quantity you enter: 2 portions of 250 g and 1 of 500 g equal 1,000 g committed; entering 2,000 g available produces an initial allowance of 3,000 g. Produced quantities remain consumed. Released reservations stay released; a later restoration uses the new mode. Prices, ordered quantities and other series remain unchanged. Conversion and its history save together. If a historic size or reservation cannot be reliably reconstructed, conversion is refused without changes; check sizes and stock history. An order being edited may cause a conflict: reload and retry. Opening, choosing or cancelling writes nothing. Apply immediately saves remaining stock for the displayed series, preserves committed orders and journals the change, without waiting for product Save or carte Publish. After a conflict your values remain visible; use Reload stock to review current quantities before applying again.
View and scroll the stock editor
From a product, Items or a Carte, the availability editor opens in a large centered dialog. Its position does not depend on where the opening button sits on the page. On desktop, per-size quantities use two columns; narrow screens keep one column. Scroll the content to reach the last sizes or recovery messages: the title, close control, Cancel and Apply stay visible. The dialog fits the available screen height, including mobile landscape. Choices remain a draft until Apply; Cancel or Escape closes without saving and returns focus to the opening button.
Choose the stock source and profile
With menu editing permission, open a saved product → Stock & availability → Edit stock and availability. The Availability badge in Items or a Carte opens the same editor for current stock. Opening it changes nothing. Choose Available without limit, Unavailable, Manually defined quantity or Quantity calculated from recipe. Manual quantity is the remaining stock entered in units, g/ml or per size; existing commitments remain reserved. Recipe calculation uses available ingredients and preparations and stops applying the manual counter. Old counters and frozen reservations remain intact for existing orders. Without recipe ingredients, no quantity limit can be calculated: a message asks you to complete the recipe. If ready-stock sale is active, disable it in the preparation settings and save the product before choosing recipe calculation. Advanced stock settings start collapsed. Open them to choose the Stock profile. Use the default setting inherits the category profile, then the restaurant profile; a named profile such as Standard is an explicit choice. The profile controls stock tracking, the low-stock threshold, displaying the remaining count and hiding the product or marking it sold out when empty. A summary describes the selected profile. If the profile does not track stock, a visible message says sales are not limited by stock. Available without limit and Unavailable keep priority. The profile belongs to the product across all series; quantities and the stock source apply to the displayed series, or the product stock outside series. Apply directly saves every setting in this dialog: availability, source, tracking mode, unit, quantities and profile. This works with or without series, without product Save. Unsaved names, prices and preparation settings stay independent and are not saved. A profile-only change does not rewrite stock or reservations, including exhausted stock and inactive products. Stock and profile changes submitted together commit in one transaction: failure rolls back both and retains inputs. Dialog controls are locked while saving. Cancel or Escape before applying discards choices; after confirmation, leaving the product does not undo the applied settings. If saving succeeds but refreshing fails, Retry only reloads data without repeating the adjustment. Edit reusable profiles in Settings → Stock → Availability.
Create and assign a group from the item editor
In the item editor, Menus → Add to menus selects groups or creates one under an existing carte. New groups are selected automatically. Saving the item updates private drafts; publish each carte afterwards. For series selection, cancellation and error recovery, follow Create a group from the item editor.