CEJG dish code — dish recipes only, e.g. CEJG-SA-01. Renders as a chip on the card.
Shows under the item name on admin/public/export. Leave empty and collapse to hide.
One primary category only. Master is derived automatically from this selection — except HL In House Ingredient items, which have no category.
Derived from the category. Pick HL In House Ingredient here and leave Category empty for in-house items.
Shown as a chip on the home page, category pages, and this item's page.
Pick the kind and the form re-organizes itself — dish items get Recipe/Garnish/Accompaniments, supplied items get Product Info / Pack & Storage / Vendor.
Pick any combination of Veg / Non Veg / Egg / Eggless, and add your own beyond that.
Best: 1200×675px (16:9 landscape) · ≈200KB
Up to 3 optional extra photos. Best: 1200×675px (16:9) · ≈200KB
Any size works — photos are auto center-cropped and compressed on upload (files over 15MB are rejected). Removing an existing photo deletes its file on Save.
Tick the declared allergens. Renders as chips on the card (public + export).
Drag the ⋮⋮ handle to reorder.
After steps — separate from ingredients. Leave qty blank if unknown; do not invent.
The options above are the real dips/sides from the menu workbook — nothing else added.
Custom row: Dip/Side radio · qty · unit · name. Name field suggests real items as you type.
Embedded sub-recipes (e.g. in-house sauces) rendered inside this item's card, after Garnish. Drag the ⋮⋮ handle to reorder blocks.
Dish recipes only — e.g. FULL PLATE AND DIP BOWL. Renders as a note on the card.
Same row style as dishes, no Prep — bought items don't prep.
Only when the item needs prep (e.g. a mix assembled in-house). Empty = no steps, nothing shown on card.
Direct supply final items only — sold as-is, so takeaway packaging applies. Ingredient supplies never show this.
Per unit as ordered — e.g. ₹1200 / kg
Price on the menu — dishes and direct final items. Ingredient-level costing (cost_price) comes in the recipe-breakdown phase.
Suggestions appear below when we spot a possible match — confirm or reject; nothing is forced.
No linked items yet.
No items currently use this ingredient.
Review items needing owner attention.
Migration data that needs owner review. Use resolve controls to move confirmed data into the right field. Unresolved rows stay preserved.