| Name | Type | Description |
|---|---|---|
id | string | Unique identifier of the catalog |
name | string | Name of the catalog |
categories | Categories | Categories of the catalog |
products | Products | Products of the catalog |
skus | Skus | Skus of the catalog |
optionLists | Option Lists | Option Lists of the catalog |
options | Options | Options of the catalog |
discounts | Discounts | Discounts of the catalog |
deals | Deals | Bundle deals of the catalog |
Categories
| Name | Type | Description |
|---|---|---|
internalId | string | Unique internal identifier of the category, optimized for LLM readability |
name | string | Name of the category |
Products
Products represent menu items that customers can order. Each product can have various restrictions that control when and how they can be ordered.| Name | Type | Description |
|---|---|---|
internalId | string | Unique internal identifier of the product, optimized for LLM readability |
name | string | Name of the product |
categoryName | string | Name of the category this product is part of |
description | string (optional) | Description of this product |
isAvailable | boolean | Whether the product is currently available for ordering |
restriction | Restriction (optional) | Availability restrictions for this product |
Product Examples
Restriction
Product restrictions control when and how products can be ordered. All restriction fields are optional - if not specified, no restrictions apply.| Name | Type | Description |
|---|---|---|
dow | DaysOfWeek | Days of the week when the product is available |
startTime | string (optional) | Start time for availability (HH:MM format, 24-hour) |
endTime | string (optional) | End time for availability (HH:MM format, 24-hour) |
startDate | string (optional) | Start date for availability (ISO 8601 date string) |
endDate | string (optional) | End date for availability (ISO 8601 date string) |
availableForDelivery | boolean | Whether the product is available for delivery orders |
availableForPickup | boolean | Whether the product is available for pickup orders |
DaysOfWeek
Specifies which days of the week a product is available. If a day is set tofalse or omitted, the product is not available on that day.
| Name | Type | Description |
|---|---|---|
monday | boolean | Available on Monday |
tuesday | boolean | Available on Tuesday |
wednesday | boolean | Available on Wednesday |
thursday | boolean | Available on Thursday |
friday | boolean | Available on Friday |
saturday | boolean | Available on Saturday |
sunday | boolean | Available on Sunday |
Skus
SKUs (Stock Keeping Units) represent specific variants of products, such as different sizes or configurations. Atm we only accept one sku per product.| Name | Type | Description |
|---|---|---|
internalId | string | Unique internal identifier of the sku, optimized for LLM readability |
productInternalId | string | Internal Id of the product this sku is part of |
price | Price | Price of this sku |
optionListInternalIds | string[] | Internal Ids of the option lists that are associated to this sku |
SKU Examples
Option Lists
| Name | Type | Description |
|---|---|---|
internalId | string | Unique internal identifier of the option list, optimized for LLM readability |
name | string | Name of the option list |
minSelections | number (optional) | Minimum number of options that can be selected in this option list |
maxSelections | number (optional) | Maximum number of options that can be selected in this option list |
Options
| Name | Type | Description |
|---|---|---|
internalId | string | Unique internal identifier of the option, optimized for LLM readability |
name | string | Name of the option |
optionListInternalId | string | Internal id of the option list this option is part of |
optionListName | string | Name of the option list this option is part of |
price | Price | Price of this option |
Discounts
| Name | Type | Description |
|---|---|---|
id | string | Unique identifier of the discount |
name | string | Name of the discount |
description | string (optional) | Description of the discount |
imageId | string (optional) | Image identifier for the discount |
isActive | boolean | Whether the discount is currently active |
discountCondition | Discount Condition | Conditions that must be met for the discount to apply |
discountType | Discount Type | Type of discount |
discountData | Discount Data | Specific data for the discount based on its type |
Discount Condition
| Name | Type | Description |
|---|---|---|
startDate | Date (optional) | Start date for the discount validity period |
endDate | Date (optional) | End date for the discount validity period |
minOrderAmount | number (optional) | Minimum order amount required to apply the discount |
maxNumberOfCustomerOrders | number (optional) | Maximum number of times a customer can use this discount |
promotionCode | string (optional) | Promotion code required to apply the discount |
productIds | string[] (optional) | List of product IDs the discount applies to |
customerIds | string[] (optional) | List of customer IDs eligible for this discount |
Discount Type
The discount type can be one of the following values:"percentage"- Percentage-based discount"fixed"- Fixed amount discount"free_product"- Free product discount"bogo"- Buy One Get One discount"free_shipping"- Free shipping discount
Discount Data
The discount data structure varies based on the discount type:Percentage Discount
| Name | Type | Description |
|---|---|---|
percentage | number | Percentage value of the discount (0-100) |
maxDiscountAmount | number (optional) | Maximum discount amount that can be applied |
Fixed Discount
| Name | Type | Description |
|---|---|---|
amount | number | Fixed amount to discount |
Free Product Discount
| Name | Type | Description |
|---|---|---|
productId | string | ID of the product that will be free |
BOGO Discount
| Name | Type | Description |
|---|---|---|
productIds | string[] | List of product IDs eligible for BOGO discount |
Free Shipping Discount
This discount type has no additional data fields.Deals
Deals represent bundle offers with multiple products at special pricing. Customers can select specific SKUs for each deal line.| Name | Type | Description |
|---|---|---|
internalId | string | Unique internal identifier of the deal, optimized for LLM readability |
name | string | Name of the deal |
ref | string (optional) | Reference code for the deal |
description | string (optional) | Description of the deal |
categoryId | string | Category ID this deal belongs to |
price | Price | Price of the complete deal |
lines | Deal Lines | Lines that make up this deal |
Deal Lines
Each deal line represents a group of products that the customer can choose from within the deal.| Name | Type | Description |
|---|---|---|
id | string | Unique identifier of the deal line |
name | string (optional) | Name of the deal line (e.g., “Choose a Pizza”) |
skus | Deal Line SKUs | Available SKUs for this deal line |
Deal Line SKUs
These are the specific product variants available for selection in each deal line.| Name | Type | Description |
|---|---|---|
skuInternalId | string | Internal ID of the SKU that can be selected for this deal line |
price | Price (optional) | Premium for this item. If undefined the base deal price remains the same else we add this premium |
Example Deal Structure
Deal Validation Rules
- Each deal line must have exactly one SKU selected when ordering
- Selected SKUs must be available and part of the deal line’s allowed SKUs
- Deal pricing is applied to the entire bundle, not individual items
- Options can be selected for each SKU within the deal structure