Otter · Schema

ModifierGroup

Items are sold on the menu. Modifiers to items are items themselves and their relationship is defined by ModifierGroup.

RestaurantOrder ManagementDeliveryOnline OrderingMenu ManagementAnalytics

Properties

Name Type Description
id string The identifier that exists in the third party system. During a menu publish event, uuidV4 ids will be generated for new entities that do not yet exist in the internal menu.
name string Name of ModifierGroup.
minimumSelections integer Minimum number of selections customers can make in this ModifierGroup. 0 means no min limits.
maximumSelections integer Maximum number of selections customers can make in this ModifierGroup. 0 means no max limits.
maxPerModifierSelectionQuantity integer Maximum number of selections customers can make for each modifier item in this ModifierGroup. 0 means there is no limit to how many times they can select a single modifier item. If not specified, a va
defaultModifierSelectionData object
itemIds array Identifiers of each Item within this ModifierGroup.
description string The description for this modifier group.
type string Experimental: The type of this modifier group, for informative purposes. It can be one of the following values: `DEFAULT`, `UPSELL`, `INGREDIENT_REMOVAL`, `INGREDIENT_ADD`, `PREPARE_INSTRUCTIONS`, `SI
exposedThirdPartyInfos array Additional information about the menu that should be exposed to third party
View JSON Schema on GitHub

JSON Schema

public-api-modifier-group-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ModifierGroup",
  "description": "Items are sold on the menu. Modifiers to items are items themselves and their relationship is defined by ModifierGroup.",
  "$id": "https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/json-schema/public-api-modifier-group-schema.json",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The identifier that exists in the third party system. During a menu publish event, uuidV4 ids will be generated for new entities that do not yet exist in the internal menu.",
      "example": "da0e4e94-5670-4175-897a-3b7dde45bed5"
    },
    "name": {
      "type": "string",
      "description": "Name of ModifierGroup.",
      "example": "Choose your type of bagel"
    },
    "minimumSelections": {
      "minimum": 0,
      "type": "integer",
      "description": "Minimum number of selections customers can make in this ModifierGroup. 0 means no min limits.",
      "format": "int32",
      "example": 0
    },
    "maximumSelections": {
      "minimum": 0,
      "type": "integer",
      "description": "Maximum number of selections customers can make in this ModifierGroup. 0 means no max limits.",
      "format": "int32",
      "example": 0
    },
    "maxPerModifierSelectionQuantity": {
      "minimum": 0,
      "default": 1,
      "type": "integer",
      "description": "Maximum number of selections customers can make for each modifier item in this ModifierGroup. 0 means there is no limit to how many times they can select a single modifier item. If not specified, a value of 1 will be used as the default value.",
      "format": "int32",
      "example": 0
    },
    "defaultModifierSelectionData": {
      "$ref": "https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/json-schema/public-api-default-modifier-selection-data-schema.json"
    },
    "itemIds": {
      "type": "array",
      "default": [],
      "description": "Identifiers of each Item within this ModifierGroup.",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "type": "string",
      "description": "The description for this modifier group.",
      "example": "Choose any of these delicious types of bagels"
    },
    "type": {
      "type": "string",
      "description": "Experimental: The type of this modifier group, for informative purposes. It can be one of the following values: `DEFAULT`, `UPSELL`, `INGREDIENT_REMOVAL`, `INGREDIENT_ADD`, `PREPARE_INSTRUCTIONS`, `SIZE_MODIFICATION`, `PACKAGING_INSTRUCTION` and `CONDIMENT`.",
      "example": "DEFAULT"
    },
    "exposedThirdPartyInfos": {
      "type": "array",
      "default": [],
      "description": "Additional information about the menu that should be exposed to third party",
      "items": {
        "$ref": "https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/json-schema/public-api-exposed-third-party-info-schema.json"
      }
    }
  },
  "required": [
    "id",
    "name"
  ]
}