How menus work
Every Crave location has one or more menus. Each menu contains categories, and each category links to products. The active menu depends on the current time and the location’s schedule.Fetch location data
The location response includes basic metadata. Menu and product data comes from the ordering session and API endpoints.Start a session to get the menu
Starting an ordering session gives you acartId and loads the menu for the current time. The menus, categories, and products are returned as part of the location’s data model.
Display categories
Categories are used to group products (e.g., “Appetizers”, “Mains”, “Drinks”). Render them as tabs or a sidebar.Display products
Each product includes a name, description, price, images, and modifier groups.Filter and search
Crave menus are returned as structured data. You can implement client-side filtering:Get order times
Fetch the available time slots for ASAP or scheduled orders.Product types
The SDK exports these types for working with menu data:| Type | Description |
|---|---|
Menu | Top-level menu with id, name, isActive, and categories |
Category | Grouping with id, name, and productIds |
Product | Full product with price, images, modifiers, and nutrition |
Modifier | Modifier group with selection rules and items |
ModifierItem | Individual modifier option with price and max quantity |