Channel Menus - Model
Menu Parameters
| Parameters | Meaning | Type |
|---|---|---|
menu * | The name of the menu | string |
menuTranslations | translation of the menu name with language codes as keys (see guide here) | object of strings |
description | description of the menu | string |
descriptionTranslations | translation of the menu description with language codes as keys (see guide here) | object of strings |
menuImageURL | Header/Banner image url of the menu (more info on images here) | string |
menuId * | internal Deliverect menu id | string |
menuType * | Five different types of menus, with each representing the intended ordering type for which the menu is suitable; DELIVERY_AND_PICKUP = 0, DELIVERY = 1, PICKUP = 2, EAT_IN = 3, CURBSIDE = 4 | integer |
channelLinkId * | the id for the channelLink that this menu is published to | string |
nestedModifiers * | Indicates if nested modifiers are present in the menu (see section here for further reference) | boolean |
currency | currency of the menu | integer |
| productTags | Array of all tags that exist in the menu (see guide here) | array of integers |
| availabilities | The times during which the menu should be available. This will in most cases equate to the store's opening hours. | array of objects |
availabilities.dayOfWeek | An integer value that indicates the day of the week for this availability (starting at 1 for Monday). | integer |
availabilities.startTime | A 24-hour HH:MM format notation of the start time of availability expressed in the local time of the location. | string |
availabilities.endTime | A 24-hour HH:MM format notation of the end time of availability expressed in the local time of the location. | string |
| categories | The categories within a menu | array of objects |
categories._id | internal Deliverect id of the category | string |
categories.name | category name | string |
categories.nameTranslations | translations of the category name with language codes as keys (see guide here) | object of strings |
categories.description | description of the category | string |
categories.descriptionTranslations | translation of the category description with language codes as keys (see guide here) | object of strings |
categories.imageUrl | image url of the category (see more info on images here) | string |
categories.availabilities | category availabilities | array of objects |
categories.availabilities.dayOfWeek | An integer value that indicates the day of the week for this categories availability (starting at 1 for Monday). | integer |
categories.availabilities.startTime | A 24-hour HH:MM format notation of the start time of availability expressed in the local time of the location. | string |
categories.availabilities.endTime | A 24-hour HH:MM format notation of the end time of availability expressed in the local time of the location. | string |
categories.availabilities.category | Unique ID of the menu category | string |
categories.subProducts | products that exist under each category, see guide here for more context on correct sorting | string |
categories.menu | the unique ID of the menu this category belongs to | string |
categories.account | the unique ID of the account this category belongs to | string |
categories.posLocationId | LEGACY PARAMETER | — |
categories.products | LEGACY PARAMETER For correct sorting of products in categories, see subProducts | array of strings |
categories.posCategoryType | LEGACY PARAMETER | string |
categories.posCategoryId | LEGACY PARAMETER | array of strings |
categories.subCategories | List of child category IDs, present in retail catalogs | array of strings |
categories.sortedChannelProductIds | LEGACY PARAMETER For correct sorting of products in categories, see subProducts | array of strings |
categories.subProductSortOrder | LEGACY PARAMETER For correct sorting of products in categories, see subProducts | string |
categories.level | LEGACY PARAMETER | integer |
| products / modifiers / modifierGroups | Separate keys for "products", "modifiers", and "modifierGroups" exist; they share many attributes as listed below and, for documentation purposes, are referred to as items | array of objects |
items._id * | Identifier of a particular item and its location in the menu structure. | string |
items.plu * | Unique identifier of the item, to be used when creating orders | string |
items.gtin | GTIN (Global Trade Item Number) for product, which could be EAN code. NB: We are not validating these as yet | array of strings |
items.imageUrl | Image associated with the item (see more info on images here) | string |
items.name * | Item name | string |
items.price * | Price of the item with 2 decimal digits. e.g. 1 euro is stored as 100. | integer |
items.bottleDepositPrice | LEGACY PARAMETER See supplementalInfo. deposit) | integer |
items.nameTranslations | translation of an item name with language codes as keys (see guide here) | string |
items.productType * | PRODUCT = 1, MODIFIER = 2, MODIFIER GROUP = 3 | integer |
items.description | item description | string |
items.descriptionTranslations | translation of the item description with language codes as keys (see guide here) | string |
items.deliveryTax * | sales tax specific on order type of 'Delivery' for the item. Tax rates are always stored as an int with 3 decimal digits e.g. 5% would be sent as 5000 | integer |
items.takeawayTax * | sales tax specific on order type of 'Takeaway' for the item. Tax rates are always sent as an int with 3 decimal digits e.g. 5% would be sent as 5000 | integer |
items.eatInTax * | sales tax specific on order type of 'Eat-in' for the item. Tax rates are always sent as an int with 3 decimal digits e.g. 5% would be sent as 5000 | integer |
items.max * | maximum number of items under a group to be purchased | integer |
items.min * | minimum number of items under a group to be purchased | integer |
items.multiMax | maximum quantity of any single item which can be purchased within a group (modifier group). Also applicable to Products where it should control how many items can be added to a basket e.g. Paracetamol | integer |
items.defaultQuantity | this controls the behaviour of 'pre-selected' items, where a quantity >0 should be automatically selected (typically '1'); higher default quantities can also be set | integer |
items.multiply * | multiply is used in Modifier Group to show this product multiple times in the GUI, 1 means one entry (so no copies) | integer |
items.isCombo | This flag indicates if a product is a combo item/meal deal | boolean |
items.isVariant | Applicable to a product to indicate if it is a variant or not (see guide here) | boolean |
items.isVariantGroup | Applicable to a modifier group to indicate if it is a variant or not (see guide here) | boolean |
snoozed * | Indicates whether an item is snoozed at the point of a menu being published | boolean |
items.visible | LEGACY PARAMETER The value will always be set to "true" as disabled items won't appear in menu payload | boolean |
items.productTags | All tags which apply to this item, see complete list here | integer |
items.account | Unique customer account ID where the item is stored | string |
items.referenceId | the original PLU of the item, only for tracking sales e.g. for loyalty purposes. Not to be included in the payload for order creation. | string |
items.location | Unique customer location ID where the item is stored | string |
items.capacityUsages | LEGACY PARAMETER | string |
items.isUpsell | Indicates if the modifier group is an Upsell group | boolean |
items.subProducts | list of items belonging to the group | array |
items.beverageInfo | information specific to beverages | object |
items.beverageInfo.caffeine | expressed in mg | integer |
items.beverageInfo.alcohol | expressed in mg | integer |
items.calories | expressed in kcal / Cals | integer |
items.caloriesRangeHigh | if a range is supported, the minimum would be "calories" and maximum "caloriesRangeHigh" | integer |
items.nutritionalInfo | Expressed in grams e.g. fat, sugar, saturatedFat, carbohydrates, protein, salt etc (see this section of product guide here) | integer |
items.nutritionalInfo.servingSize | details of a serving size | nested object |
items.nutritionalInfo.servingSize.amount | the serving size amount | integer |
items.nutritionalInfo.servingSize.unitType | What the serving size unit type is; Weight (in grams) = 1,Volume (in milliliter) = 2Count (i.e., piece, slice, capsule, cookie, etc) = 3 | integer |
items.nutritionalInfo.servingSize.countUnitDescription | the serving size unit description | string |
items.nutritionalInfo.netQuantity | details on quantity | nested object |
items.nutritionalInfo.netQuantity.amount | the net quantity amount | integer |
items.nutritionalInfo.netQuantity.unitType | What the net quantity unit type is; Weight (in grams) = 1,Volume (in milliliter) = 2Count (i.e., piece, slice, capsule, cookie, etc) = 3 | integer |
items.nutritionalInfo.netQuantity.countUnitDescription | the net quantity unit description | — |
items.packaging | details on the packaging | object |
items.packaging.count | quantity of packaging | integer |
items.packaging.reusable | whether packaging is re-usable or not | boolean |
items.packaging.storageInstructions | instructions for storage | string |
items.supplementalInfo | additional information about an item, for more information see here | object |
items.supplementalInfo.legalName | legal name of the item | string |
items.supplementalInfo.instructionsForUse | any specific instructions for use | string |
items.supplementalInfo.ingredients | array of ingredients | nested array of strings |
items.supplementalInfo.additives | array of additives | nested array of strings |
items.supplementalInfo.prepackaged | specifies whether the item is prepackaged | boolean |
items.supplementalInfo.deposit | In certain regions a deposit is required for e.g. bottled drinks; this will be included in the price, yet the deposit should be clearly displayed to the consumer. Deposit expressed to 2 decimal digits. e.g. 1 euro is stored as 100 (see guide here) | integer |
items.supplementalInfo.fbo | Details of the food business operator | nested object of strings |
items.supplementalInfo.fbo.name | Food business operator name | string |
items.supplementalInfo.fbo.address | Food business operator address | string |
items.supplementalInfo.fbo.brand | Food business operator brand name | string |
items.supplementalInfo.fbo.countryOfOrigin | Food business operator country of origin | string |
items.parentId | LEGACY PARAMETER Use the subProducts parameter to understand item relationships) | string |
items.posCategoryIds | the POS ID of the category this product belongs to in the POS | array of strings |
items.posProductCategoryId | the ID of this product in the POS, internal to POS, not to be used when creating orders | string |
items.posProductId | the ID of this product in the POS, internal to POS, not to be used when creating orders | string |
items.subProductSortOrder | a list of product PLUs belonging to this product that preserves the order of these sub-Products | string |
items.metadata | a list of custom key/value pairings added to product data, e.g. "metadata": [{"key": "highlight", "value": "true"}] | array of objects |
items.displayLabels | List of labels for marketing purposes applied to products, e.g. {"displayLabels": ["new", "popular"]} | array of strings |
| snoozedProducts | PLUs of products and modifiers that are currently snoozed and should be unavailable on the menu | nested objects |
| snoozedProducts.{snoozeKey} | a unique reference for the snooze object in format "65********************1d" | object |
snoozedProducts.location | Deliverect location ID where the item is snoozed | string |
snoozedProducts.name | Item name | string |
snoozedProducts.plu | Item reference | string |
snoozedProducts.snoozeStart | Timestamp in UTC when snooze begins yyyy-MM-dd HH:mm:ss.SSSSSSZ | string |
snoozedProducts.snoozeEnd | Timestamp in UTC when snooze ends yyyy-MM-dd HH:mm:ss.SSSSSSZ | string |
| validations | LEGACY PARAMETER | array |
