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

Starting an ordering session gives you a cartId 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.
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.