Skip to main content

Menu Catalog

The Menu catalog provides tools for managing restaurant menus, item variants, modifiers, and customer orders.

Key resources

ResourcePurpose
client.menusCategories and menu items
client.menuItemVariantsSize / price variations
client.modifiersCustomization options (toppings, sides)
client.menuOrdersCustomer 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.

Menu catalog structureA category groups menu items. Each item is priced by variants. Modifiers customize items. An order captures items, each referencing a variant.groupspriced byCategorygroupingItemthe dishVariantsize · priceModifiersgroups · optionsOrdereach line → a 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.

Menu order flow and lifecycleFour steps: browse, customize, place order, confirm. Kitchen lifecycle: pending, confirmed, preparing, ready, completed. Delivery adds out_for_delivery.Browsethe menuCustomizemodifiersPlace orderitems & pricingConfirmto the kitchenORDER LIFECYCLEpendingconfirmedpreparingreadycompletedDelivery orders add an out_for_delivery step before completed.

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

EnumValues
MenuOrderTypedine_in, takeout, delivery
OrderStatuspending, confirmed, preparing, ready, out_for_delivery, completed, cancelled, returned
PaymentStatuspending, paid, partial, failed, refunded

SDK parity matrix

This reflects what the SDK example guides demonstrate for each language.

AreaOperationsTypeScriptPython
Categoriescreate, get, list, update, delete, batch
Itemscreate, get, list, update, delete, batch
Itemsget by category, popular items
Item variantscreate, get, get default, update, delete, batch
Modifiersgroups, options, bindings
Orderscreate, get, update status, cancel
Ordersget by customer
Orderslist, update, delete

Pages

note

Every menu item must have at least one variant, and every order item must reference a variantId.