Menu Items
The complete menu editor. Create dishes with photos, prices, variants, modifier groups, and GST codes. Use AI extraction to import an entire printed menu from a photo in seconds. Manage combo deals and control availability in real time.
Overview
The Menu Items page is the single source of truth for everything your restaurant sells. Every item you create here flows automatically into the Mobile App order forms, the customer-facing digital menu, printed receipts and invoices, and the Kitchen Display System. This is the first screen you configure when setting up Unavakam, and it's the screen you'll return to whenever your menu changes.
The page is divided into two tabs. The Items tab lists all your regular dishes β appetisers, mains, beverages, desserts, and anything else you sell individually. The Combos tab lets you bundle multiple items together into a single meal deal and sell them at a fixed combo price. Both tabs share the same search bar, category filter, and availability toggle system.
Every Field in the Item Form β Explained
When you click Add Item or edit an existing item, a form panel opens. Here is a detailed explanation of every field, why it matters, and how to fill it correctly.
Item Name
This is the display name shown on the order form, the customer digital menu, receipts, and the KDS screen. Use the name exactly as you want customers and staff to read it β e.g. "Butter Chicken", not "bttr chkn". Abbreviations confuse waitstaff and look unprofessional on printed bills. Keep names concise but clear. If you have regional variants, include that β e.g. "Mutton Biryani (Hyderabadi)".
Category
Assigns the item to a menu section β for example Starters, Main Course, Beverages, Desserts. Categories determine how items are grouped in the order form and in the customer digital menu. A well-organised category structure helps waitstaff find items quickly during a busy service. You must create categories in the Categories screen before you can assign them here. If you have not created categories yet, do that first.
Food Type
Select one of: Veg, Non-Veg, Vegan, or Egg. This field drives two important things. First, the green/red dot indicator on every item card in the order form β vegetarian customers rely on this at a glance. Second, in India the Food Safety and Standards Authority (FSSAI) mandates that menus display the Veg (green circle) or Non-Veg (brown circle) symbol on printed materials. Unavakam uses this field to print the correct symbol on receipts automatically.
Price (βΉ)
The base selling price in Indian Rupees. This is the price charged to the customer before any GST addition (if tax-exclusive mode is on) or the price including GST (if tax-inclusive mode is on). You set the tax mode in Settings. If you add variants to this item (e.g. Half / Full), this base price is no longer used β the variant price takes over. In that case, set the base price to 0 or to the price of your default variant to avoid confusion.
Description
A short paragraph or phrase describing the dish β visible to customers on the digital QR menu. Good descriptions sell the dish. Instead of "Chicken curry", write "Slow-cooked chicken in a rich tomato and cream gravy, flavoured with whole spices and finished with butter. Pairs perfectly with naan or rice." The description is also helpful on the order form when a customer asks a waiter "what's in this?" β the waiter can tap the item and read it instantly.
Item Photo
Upload a photo of the dish. This image appears on the customer-facing digital menu and on the order form in the Mobile App. A high-quality food photo dramatically increases customer appetite and order frequency. You can upload JPEG or PNG. Recommended dimensions are at least 600Γ400 pixels (landscape). The image is stored in AWS S3 and served via CDN, so it loads fast even on mobile connections. If you have a professional food photographer, invest in good photos β it's the single highest-ROI upgrade to your digital menu.
Preparation Time
An estimated kitchen preparation time in minutes β for example, 15 for a dish that takes about 15 minutes to prepare. This value is displayed on the customer-facing digital menu to set expectations. It does not automate any timers in the KDS; it is purely informational. For fast items like a pre-made dessert or a packaged drink, set it to 2 or 5. For slow-cooked items like Dum Biryani, set it accurately β customers who see "45 min" will not be surprised by the wait.
HSN Code
The Harmonised System of Nomenclature (HSN) code for the item β required for GST compliance. In India, restaurant food falls under various HSN codes depending on the nature of the item. The most common are 996331 for restaurant and food-service supplies and 996332 for outdoor catering services. Packaged foods may have different codes. Your CA or a GST consultant can confirm the correct code for your menu items. Once set, the HSN code appears on tax invoices as required by the GST Act. This field overrides the restaurant-wide default set in Settings.
GST Rate (%)
The GST percentage applied to this item when an order is billed. Common rates for restaurant items are 5% (for most restaurant food without ITC) and 12% / 18% (for certain luxury restaurant services or specific goods). If this field is left blank, the restaurant's default GST rate from Settings is used. Set a per-item override here only when a specific item has a different rate than the rest of your menu β for example, packaged drinking water sold separately may be 18% while all food items are 5%.
Availability Toggle
A toggle switch that controls whether this item is currently available for ordering. When turned OFF, the item is greyed out and hidden from the order form on the Mobile App and Admin Quick Orders β waitstaff cannot add it to any order. This is the correct way to handle a sold-out item. Do not delete an item just because you ran out today. Toggle it off, and toggle it back on the next morning when stock is replenished. Changes take effect within seconds across all connected devices.
Variants β Selling One Dish in Multiple Sizes or Portions
Variants are used when the same dish is available in different sizes, portions, or preparations β and each option has a different price. Instead of creating separate menu items for every size (which clutters your menu), you create one item and define multiple variants within it. When a waiter adds this item to an order, they are prompted to pick a variant before the item is added to the cart.
Real-world Example 1 β Chai (Tea)
Your restaurant serves Masala Chai in three sizes. Instead of three separate menu items, create one item called "Masala Chai" and add three variants:
| Variant Label | Price |
|---|---|
| Small (100 ml) | βΉ20 |
| Medium (150 ml) | βΉ30 |
| Large (250 ml) | βΉ45 |
When a waiter adds Masala Chai to a table's order, the app shows a bottom sheet with these three options. The waiter taps the one the customer wants, and that variant's price is added to the bill. On the receipt, it prints as "Masala Chai β Large" with βΉ45.
Real-world Example 2 β Biryani
Many Indian restaurants serve Biryani in half-plate and full-plate portions at very different prices:
| Variant Label | Price |
|---|---|
| Half Plate | βΉ180 |
| Full Plate | βΉ320 |
| Family Pack (1 kg) | βΉ650 |
If you have a separate Chicken Biryani and Mutton Biryani, each of those is a separate menu item β but each of them can have the same Half / Full / Family Pack variant structure. This keeps the menu lean and organised.
How to Add Variants
Open the item form β click "Add Variant"
Scroll down to the Variants section in the Add / Edit form. Click Add Variant. A row appears with two fields: a Label input and a Price input.
Enter each variant's label and price
Type the variant name (e.g. Half Plate) and its price (e.g. 180). Click Add Variant again to add the next row. Repeat for all options.
Remove the base price or leave it at 0
Since variants take over pricing, the base price field at the top becomes inactive. The app ignores it when variants are present.
Save the item
The item is now flagged as having variants. On the order form, tapping this item will always trigger a variant selection prompt before adding it to the cart.
Modifier Groups β Customisations and Add-Ons
While variants define which version of a dish a customer wants, modifier groups define how they want it customised. A modifier group is a set of options the waiter presents to the customer at the time of ordering β things like spice level, choice of bread, choice of sauce, or add-on toppings that may or may not cost extra. You can attach multiple modifier groups to a single item, and each group can have its own rules about how many options the customer must or can choose.
Modifiers vs Variants β When to Use Which
| Scenario | Use |
|---|---|
| Dish sold in different sizes or portions at different prices (Small/Large, Half/Full) | Variants |
| Customer picks the spice level β no price difference | Modifier Group |
| Customer chooses a bread type β no price difference | Modifier Group |
| Customer adds a topping or extra β charges apply | Modifier Group (with price add-on) |
| Customer must choose exactly one from a set (required choice) | Modifier Group with min=1, max=1 |
Modifier Group Settings
When you create a modifier group, you configure the following fields:
- Group Name β Shown as the heading of the selection prompt. Example: "Spice Level", "Choose Bread", "Extra Toppings".
- Required β If toggled ON, the waiter cannot add the item to the order without making a selection from this group. Use this for choices that determine how the kitchen prepares the dish (e.g. if you must know the spice level). If toggled OFF, the selection is optional.
- Min Selections β The minimum number of options the customer must pick. Set to 0 for optional groups, 1 for groups where at least one must be chosen.
- Max Selections β The maximum number of options the customer can pick. For single-choice groups (spice level), set this to 1. For multi-select groups (toppings), set it to however many make sense β or leave it unlimited.
- Option Name β Each option in the group (e.g. Mild, Medium, Hot).
- Option Price Add-On β An additional price charged when this option is selected. Leave at βΉ0 for no-cost customisations. Set to a positive value for paid add-ons.
Real-world Example 1 β Spice Level (No Extra Cost, Required)
You run a North Indian restaurant. For curries and grills, you always need to know the preferred spice level so the chef can adjust. Create a modifier group called "Spice Level" with Required = ON, Min = 1, Max = 1:
| Option | Add-On Price |
|---|---|
| Mild | βΉ0 |
| Medium | βΉ0 |
| Hot | βΉ0 |
| Extra Hot | βΉ0 |
Attach this group to all curries. When a waiter adds Butter Chicken to an order, the app immediately shows the Spice Level prompt. The waiter cannot proceed until one option is selected. The selected value (e.g. "Medium") is printed on the KDS ticket and the receipt.
Real-world Example 2 β Choose Your Bread (Required, Single Choice)
For main-course curries, some restaurants offer a choice of bread included in the price β Roti, Naan, or Paratha. Create a modifier group called "Choose Bread" with Required = ON, Min = 1, Max = 1:
| Option | Add-On Price |
|---|---|
| Roti | βΉ0 |
| Naan | βΉ0 |
| Paratha | βΉ0 |
| Laccha Paratha (premium) | βΉ20 |
The Laccha Paratha has a βΉ20 add-on price. If a customer chooses it, the item total increases by βΉ20 automatically and that amount is reflected on the bill.
Real-world Example 3 β Extra Toppings for a Pizza (Optional, Multi-Select)
For a pizza menu, create a group called "Extra Toppings" with Required = OFF, Min = 0, Max = 5:
| Option | Add-On Price |
|---|---|
| Extra Cheese | βΉ60 |
| JalapeΓ±os | βΉ30 |
| Baby Corn | βΉ30 |
| Black Olives | βΉ30 |
| Mushrooms | βΉ40 |
This group is optional β a customer can skip it entirely and get the base pizza. If they want toppings, they can select up to 5 choices. The add-on prices for all selected toppings are summed and added to the item price. On the receipt it shows: "Margherita Pizza βΉ250 + Extra Cheese βΉ60 + JalapeΓ±os βΉ30 = βΉ340".
Real-world Example 4 β Coffee Customisation (Multiple Groups)
A coffee shop might attach three separate modifier groups to a single coffee item:
- Milk Type (Required, Max 1): Full Fat βΉ0 | Skim βΉ0 | Oat Milk +βΉ40 | Soy Milk +βΉ40
- Sugar (Required, Max 1): No Sugar | Less Sugar | Normal | Extra Sweet β all βΉ0
- Add-Ons (Optional, Max 3): Extra Shot +βΉ30 | Whipped Cream +βΉ20 | Vanilla Syrup +βΉ20
When a waiter adds a cappuccino, the app walks through each modifier group in sequence. The choices print on the KDS so the barista makes it exactly right. This level of detail eliminates verbal miscommunication between the counter and the kitchen entirely.
How to Add Modifier Groups
Open the item form β scroll to Modifier Groups β click "Add Modifier Group"
A new modifier group block appears with a Group Name field, a Required toggle, and Min / Max selectors.
Name the group and set the rules
Enter the group name (e.g. "Spice Level"). Toggle Required ON or OFF. Set Min and Max. For a single required choice: Required = ON, Min = 1, Max = 1. For optional multi-select add-ons: Required = OFF, Min = 0, Max = your limit.
Add options inside the group
Click Add Option within the group block. Enter the option name and its add-on price (βΉ0 if it's free). Repeat for all options.
Add more groups if needed
Click Add Modifier Group again to attach additional groups to the same item (e.g. both Spice Level and Choose Bread on a curry).
Save
The item is saved with all modifier groups attached. On the order form, waitstaff will see the modifier selection prompts appear in sequence each time this item is added to an order.
AI Menu Scan β Import Your Entire Menu from a Photo
Setting up a new restaurant with 60, 80, or 100 menu items manually is time-consuming. The AI Menu Scan feature solves this by letting you photograph your existing printed menu card and having the AI automatically extract all the item names, prices, categories, and food types in one pass. What would take two hours of manual entry can be done in under five minutes.
The AI uses image recognition and natural language processing to read the text on your menu card β even if it is formatted in columns, uses different fonts, or mixes English with Hindi or regional languages. It identifies items, associated prices, and the section headings that suggest categories.
When to Use AI Scan
AI Scan is most useful during initial restaurant onboarding. If you already have a physical menu or a PDF menu, scan it once to bulk-import the items. You will still need to add photos and modifiers manually, but the basic item structure (names, prices, categories) is handled automatically. You can also use it when adding a new seasonal menu or a special occasion menu β photograph the printed insert and import it alongside your existing items.
How to Use AI Menu Scan
Click "AI Scan Menu" at the top of the Menu Items page
A dialog opens with an upload area. This is separate from the regular Add Item form.
Upload a clear photo of your menu
Take a well-lit, straight-on photo of your printed menu card or menu board. Make sure all text is in focus and not blurred. Upload as JPEG or PNG, maximum 10 MB. For multi-page menus, you can upload one page at a time and repeat the process. The better the photo quality, the more accurate the extraction.
Wait 10β30 seconds for the AI to process
A loading animation plays while the image is sent to the AI processing pipeline. The time depends on how many items and sections are in the menu. A 40-item menu typically completes in under 20 seconds.
Review the extracted items
The AI presents a review table showing every extracted item with its detected name, price, category, and food type. All items are pre-selected by default. Go through the list carefully β the AI is accurate but not perfect. Common issues: prices with decimal commas misread, items where the name and price are in unusual layout positions, or handwritten sections that the AI cannot read. Correct any errors inline by clicking on the cell.
Deselect any items you don't want to import
If the AI picked up section headers or non-food text as items (e.g. "Chef's Special Section" appearing as an item name), uncheck those rows. You can also deselect seasonal items or items you've discontinued.
Click "Import Selected"
All selected items are created in one batch operation. They appear immediately in the Menu Items list. From here, add photos, variants, and modifiers to each item as needed. The AI gives you the structure; you personalise the details.
Combos β Bundle Deals at a Fixed Price
Combos let you sell a group of menu items together as a single unit at one bundled price. This is the Unavakam equivalent of a meal deal β for example, a "Lunch Combo" that includes one dal, one sabzi, rice, two rotis, and a dessert for a fixed βΉ220 instead of buying each item separately for βΉ280. Combos appear alongside regular items in the order form, so waitstaff can add them with a single tap.
Why Combos Are Powerful
Combos serve two strategic purposes. From a business perspective, they increase average order value by encouraging customers to order more items than they would have individually β the perceived discount is the incentive. From an operational perspective, they simplify order-taking: instead of a waiter trying to upsell four separate items, they simply offer the combo. Combos also reduce decision fatigue for customers at lunch counters and quick-service setups.
Real-world Example β South Indian Meals Combo
A South Indian restaurant creates a "Full Meals Combo" priced at βΉ180:
| Included Item | Qty | Individual Price |
|---|---|---|
| Steamed Rice | 1 | βΉ40 |
| Sambar | 1 | βΉ50 |
| Rasam | 1 | βΉ40 |
| Vegetable Kootu | 1 | βΉ60 |
| Pappadam | 2 | βΉ10 Γ 2 = βΉ20 |
| Payasam | 1 | βΉ60 |
| Individual Total | βΉ270 | |
| Combo Price | βΉ180 | |
On the order form, the waiter sees "Full Meals Combo β βΉ180" as a single item. Adding it to the order adds one unit of each component to the kitchen queue. The KDS shows the combo name and lists all items the chef needs to prepare. The receipt shows the combo as a single line item at βΉ180, saving the customer βΉ90 compared to ordering individually.
How to Create a Combo
Click the "Combos" tab at the top of the Menu Items page
This switches the view to the Combos list. Click Add Combo.
Set the combo name, description, and price
Enter a name that communicates the value β e.g. "Lunch Combo", "Family Feast", "Kids Meal". Write a short description. Set the Combo Price β this is the fixed price charged regardless of the sum of individual item prices.
Add items to the combo
Click Add Item to Combo. Select a menu item from the dropdown and set the quantity. Repeat for every item in the bundle. The system shows the total individual price alongside your combo price so you can see the savings value you're offering.
Upload a combo photo (optional but recommended)
A good photo of the full spread β all items plated together β sells the combo better than a text description alone.
Toggle availability and save
Save the combo. It appears in the order form as a regular item under a "Combos" section or the category you assigned it to. Use the availability toggle to turn it on and off β for example, enable the Lunch Combo only during lunch hours.
Managing Your Existing Menu
Searching and Filtering
The search bar at the top of the menu items list filters items in real time as you type. This is essential in large menus with 80+ items. Type part of the item name and only matching items appear. You can also filter by category using the horizontal category chips below the search bar β click any category name to show only items in that section, or click All to reset the filter. Both filters work together, so you can search for "paneer" within the "Starters" category to quickly find Paneer Tikka without scrolling past unrelated items.
Bulk Availability Control
At the start of each service, a manager often needs to quickly enable or disable several items based on the day's prep. Rather than opening each item individually, you can filter by category and use the category-level toggle to mark all items in a section unavailable at once β for example, if the fish delivery didn't arrive, you can disable the entire "Seafood" category in one action.
Editing an Item
Click any item's name or the Edit (pencil) icon in the item row to open the full edit form. All fields are pre-populated. Make your changes β update the price, add a new photo, attach a new modifier group β and click Save. Changes are live instantly across all connected devices. If a waiter is currently viewing the order form while you save a price change, the new price applies to any new orders β items already in an open cart are not retroactively affected.
Deleting an Item
Click the Delete (trash) icon on an item row. A confirmation prompt appears. Be careful: deleting a menu item is permanent. If the item appears in any historical orders, those order records are preserved β the item name is stored on the order at the time it was placed, not linked dynamically to the menu. However, if you have combos that reference this item, those combos will be affected. It is safer to mark an item unavailable rather than deleting it unless you are certain you will never sell it again.
Plan Limits
A counter at the top of the page shows your current item usage β for example, "47 / 100 items". This limit is enforced per your subscription plan. Starter plans have a lower limit; Pro and Elite plans allow hundreds of items. If you reach the limit, the Add Item button is disabled until you upgrade or delete unused items. See Billing for plan details.