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.