Menu Catalog
The Menu catalog provides tools for managing restaurant menus, item variants, modifiers, and customer orders.
Key resources
| Resource | Purpose |
|---|---|
client.menus | Categories and menu items |
client.menuItemVariants | Size / price variations |
client.modifiers | Customization options (toppings, sides) |
client.menuOrders | Customer orders |
How it fits together
A category groups menu items; each item is priced by one or more variants. Modifiers let customers customize an item, and an order captures the chosen items — each line referencing a specific variant.
- A category groups menu items for display.
- A menu item is a dish; it requires at least one variant for pricing.
- A variant is a size/price variation of an item.
- Modifiers let customers customize items (toppings, sides, preferences) via groups, options, and item bindings.
- An order captures items (each referencing a
variantId), pricing, and fulfillment.
How an order works
A customer browses the menu, customizes with modifiers, and places an order — which then moves through the kitchen lifecycle.
Why it matters
- For the menu — model items once with variants and modifiers; the same data renders your web menu and grounds the AI agent that answers questions and takes orders.
- For ordering — orders capture exact variants, applied modifiers, and item names at order time, so totals stay accurate even if the menu changes later.
- For the kitchen — a clear status lifecycle (with a delivery branch) keeps front-of-house, kitchen, and the customer in sync.
Status models
| Enum | Values |
|---|---|
| MenuOrderType | dine_in, takeout, delivery |
| OrderStatus | pending, confirmed, preparing, ready, out_for_delivery, completed, cancelled, returned |
| PaymentStatus | pending, paid, partial, failed, refunded |
SDK parity matrix
This reflects what the SDK example guides demonstrate for each language.
| Area | Operations | TypeScript | Python |
|---|---|---|---|
| Categories | create, get, list, update, delete, batch | ✓ | ✓ |
| Items | create, get, list, update, delete, batch | ✓ | ✓ |
| Items | get by category, popular items | — | ✓ |
| Item variants | create, get, get default, update, delete, batch | ✓ | — |
| Modifiers | groups, options, bindings | ✓ | — |
| Orders | create, get, update status, cancel | ✓ | ✓ |
| Orders | get by customer | — | ✓ |
| Orders | list, update, delete | ✓ | — |
Pages
- Categories & items — menus, items, and variants
- Modifiers — groups, options, and item bindings
- Orders — create and manage food-service orders
- Quickstart — an end-to-end restaurant flow
note
Every menu item must have at least one variant, and every order item must reference a variantId.