Skip to main content
This guide covers how to load a restaurant’s menu data and display it in your storefront — including multiple menus, category filtering, and product details.

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

Menus are anonymous published resources. Start an ordering session only when the customer begins a cart; the response includes the cart capability used for later cart operations.
marketplaceId is optional source attribution, such as "web"; it is not the location identifier. The route already provides the location scope.

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.
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:

Next steps

Manage Cart

Add products to the cart with modifier selections.

Checkout Flow

Collect customer details and process payments.