Получить актуальное меню ресторана

Позиции, содержащие схематические или логические несоответствия (слишком длинная строка, цена равная 0.00) могут быть проигнорированы. Актуальная версия модели ответа - application/vnd.eats.menu.composition.v2+json

Request

GET

/menu/{restaurantId}/composition

Path parameters

Name

Description

restaurantId

Type: string

Идентификатор ресторана в системе партнера

Example: ``

Responses

200 OK

OK, возвращается актуальное на данный момент меню для указанного ресторана

Body

application/vnd.eats.menu.composition.v2+json
{
  "schedules": {
    "scheduleName": [
      {
        "from": "08:00",
        "till": "09:45",
        "weekdays": [
          "monday"
        ]
      }
    ]
  },
  "categories": [
    {
      "id": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6",
      "parentId": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6",
      "schedules": [
        "breakfasts"
      ],
      "name": "Завтраки",
      "sortOrder": 0,
      "images": [
        {
          "url": "https://example.com",
          "updatedAt": "1937-01-01T12:00:27.870000+00:20"
        }
      ]
    }
  ],
  "items": [
    {
      "id": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
      "categoryId": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
      "name": "Вареники с творогом и вишней",
      "description": "Мука, вода, яичный порошок, вишня замороженная, творог 5%",
      "price": 1000,
      "vat": 20,
      "shippingType": "delivery",
      "isCatchweight": false,
      "measure": 666,
      "weightQuantum": 0.1,
      "measureUnit": "г",
      "excise": "sugary_drink",
      "nutrients": {
        "calories": 12.5,
        "proteins": 15.3,
        "fats": 12.5,
        "carbohydrates": 15.3
      },
      "sortOrder": 0,
      "modifierGroups": [
        {
          "id": "9987c815-3069-46ad-9626-74799fb22210",
          "name": "Выбор приборов",
          "modifiers": [
            null
          ],
          "minSelectedModifiers": 0,
          "maxSelectedModifiers": 10,
          "sortOrder": 0
        }
      ],
      "images": [
        {
          "hash": "example",
          "url": "https://example.com"
        }
      ],
      "additional_descriptions": {
        "consisting_ingredients": [
          "мука"
        ],
        "badges": [
          {}
        ]
      },
      "adult_info": {
        "age_group": 18,
        "alcohol_percentage": "12.34"
      },
      "onlyForCombo": true
    }
  ],
  "combos": [
    {
      "id": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
      "categoryId": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
      "name": "Комбо с Воппер По-Итальянски",
      "description": "example",
      "image": null,
      "components": [
        {
          "id": "example",
          "name": "Горячее",
          "sortOrder": 0,
          "items": [
            null
          ]
        }
      ],
      "price": {
        "type": "fixed",
        "price": "example"
      }
    }
  ],
  "lastChange": "1937-01-01T12:00:27.870000+00:20"
}

Name

Description

categories

Type: Category[]

Категории меню

Example
[
  {
    "id": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6",
    "parentId": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6",
    "schedules": [
      "breakfasts"
    ],
    "name": "Завтраки",
    "sortOrder": 0,
    "images": [
      {
        "url": "https://example.com",
        "updatedAt": "1937-01-01T12:00:27.870000+00:20"
      }
    ]
  }
]

items

Type: MenuCompositionItem[]

Список блюд, доступных для заказа

Example
[
  {
    "id": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
    "categoryId": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
    "name": "Вареники с творогом и вишней",
    "description": "Мука, вода, яичный порошок, вишня замороженная, творог 5%",
    "price": 1000,
    "vat": 20,
    "shippingType": "delivery",
    "isCatchweight": false,
    "measure": 666,
    "weightQuantum": 0.1,
    "measureUnit": "г",
    "excise": "sugary_drink",
    "nutrients": {
      "calories": 12.5,
      "proteins": 15.3,
      "fats": 12.5,
      "carbohydrates": 15.3
    },
    "sortOrder": 0,
    "modifierGroups": [
      {
        "id": "9987c815-3069-46ad-9626-74799fb22210",
        "name": "Выбор приборов",
        "modifiers": [
          {}
        ],
        "minSelectedModifiers": 0,
        "maxSelectedModifiers": 10,
        "sortOrder": 0
      }
    ],
    "images": [
      {
        "hash": "example",
        "url": "https://example.com"
      }
    ],
    "additional_descriptions": {
      "consisting_ingredients": [
        "мука"
      ],
      "badges": [
        {
          "category": "cooking_method",
          "value": "fried"
        }
      ]
    },
    "adult_info": {
      "age_group": 18,
      "alcohol_percentage": "12.34"
    },
    "onlyForCombo": true
  }
]

lastChange

Type: string<date-time>

Дата последнего изменения меню ресторана (на стороне партнера). Важно: дата в формате RFC3339 с дробной частью секунд (Y-m-d\TH:i:s.uP)! Если эта дата не менялась, Яндекс Еда может в автоматическом режиме принять решение о том, что обновлять меню не требуется. Если дата обновления в этом поле отличается от даты во время последнего обновления меню, то оно будет загружено заново

Example: 1937-01-01T12:00:27.870000+00:20

combos

Type: MenuCompositionCombo[]

Список комбо, доступных для заказа

Example
[
  {
    "id": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
    "categoryId": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
    "name": "Комбо с Воппер По-Итальянски",
    "description": "example",
    "image": {
      "hash": "example",
      "url": "https://example.com"
    },
    "components": [
      {
        "id": "example",
        "name": "Горячее",
        "sortOrder": 0,
        "items": [
          {}
        ]
      }
    ],
    "price": {
      "type": "fixed",
      "price": "example"
    }
  }
]

schedules

Type: Schedule

Описание возможных типов расписаний категорий меню

Example
{
  "scheduleName": [
    {
      "from": "08:00",
      "till": "09:45",
      "weekdays": [
        "monday"
      ]
    }
  ]
}

ScheduleName

Name

Description

from

Type: string

Время начала работы объявленного типа расписания, может принимать значения от 00:00 до 24:00

Example: 08:00

till

Type: string

Время окончания работы объявленного типа расписания, может принимать значения от 00:00 до 24:00

Example: 09:45

weekdays

Type: string[]

Дни недели работы объявленного типа расписания

Example
[
  "monday"
]
Example
{
  "from": "08:00",
  "till": "09:45",
  "weekdays": [
    "monday"
  ]
}

Schedule

Name

Description

scheduleName

Type: ScheduleName[]

Объявление необходимого типа расписания. Тип определяется названием ключа. Например, breakfasts. Далее этот ключ используется в массиве расписаний у категорий меню.

Example
[
  {
    "from": "08:00",
    "till": "09:45",
    "weekdays": [
      "monday"
    ]
  }
]
Example
{
  "scheduleName": [
    {
      "from": "08:00",
      "till": "09:45",
      "weekdays": [
        "monday"
      ]
    }
  ]
}

CategoryImages

Name

Description

updatedAt

Type: string<date-time>

Дата обновления изображения, в формате RFC3339 с дробной частью секунд (Y-m-d\TH:i:s.uP)

Example: 1937-01-01T12:00:27.870000+00:20

url

Type: string<uri>

Ссылка на изображение для скачивания

Example: https://example.com

Example
{
  "url": "https://example.com",
  "updatedAt": "1937-01-01T12:00:27.870000+00:20"
}

Category

Name

Description

id

Type: string

Внутренний идентификатор категории в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Max length: 64

Example: 5af86d5a-d92d-4e07-9271-aea0f7ef95a6

name

Type: string

Наименование категории (например "Завтраки")

Example: Завтраки

images

Type: CategoryImages[]

Изображение категории ресторана

Example
[
  {
    "url": "https://example.com",
    "updatedAt": "1937-01-01T12:00:27.870000+00:20"
  }
]

parentId

Type: string

Уникальный идентификатор родительской категории для древовидной структуры. nullable: true. Не может быть пустой строкой. Ссылается на существующие категории. При загрузке адаптируется к плоской структуре категорий Яндекс.Еды (товары из подкатегорий попадают в родительские категории первого уровня)

Max length: 64

Example: 5af86d5a-d92d-4e07-9271-aea0f7ef95a6

schedules

Type: string[]

Example
[
  "breakfasts"
]

sortOrder

Type: integer

Порядок сортировки от меньшего к большему. Если не указан, считаем за 100

Example
{
  "id": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6",
  "parentId": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6",
  "schedules": [
    "breakfasts"
  ],
  "name": "Завтраки",
  "sortOrder": 0,
  "images": [
    {
      "url": "https://example.com",
      "updatedAt": "1937-01-01T12:00:27.870000+00:20"
    }
  ]
}

Nutrients

Энергетическая ценность продукта на 100гр

Name

Description

calories

Type: number

Калории на 100гр

carbohydrates

Type: number

Углеводы на 100гр

fats

Type: number

Жиры на 100гр

proteins

Type: number

Белки на 100гр

Example
{
  "calories": 12.5,
  "proteins": 15.3,
  "fats": 12.5,
  "carbohydrates": 15.3
}

Modifiers

Name

Description

id

Type: string

Идентификатор модификатора на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4. Этот идентификатор передаётся в заказе вместе с выбранным количеством

Example: 916cfc99-acb4-4a96-9a42-b29159e88189

maxAmount

Type: integer

Максимальное количество указанного модификатора для блюда в заказе. Это число не должно превышать значение параметра maxSelectedModifiers в модели ModifierGroup для заказа целиком. Например, вы поддерживаете 5 модификаторов в группе целиком, но максимальное значение модификатора для отдельного блюда указано 10 – такой модификатор не пройдет валидацию. Не будут загружены: некорректный модификатор, группа, к которой он принадлежит, а также пункты меню, в которых используются некорректные данные

Min value: 0

Max value: 255

minAmount

Type: integer

Минимальное количество указанного модификатора для блюда в заказе. Должно быть меньше maxAmount.

Min value: 0

Max value: 255

name

Type: string

Название модификатора

Example: Европейские приборы

price

Type: number

Цена модификатора

excise

Type: string

Признак акцизного товара. Вместо ключа excise можно передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в поле name модификатора.

Enum: sugary_drink, other

originalPrice

Type: number

Отдельное поле для передачи исходых цен опций/модификаторов. Пользователю не показывается. Используется для расчета суммы при частичных возвратах.

vat

Type: integer

НДС, включенный в стоимость, в процентах. Если не указан, считается за 0

Example
{
  "id": "916cfc99-acb4-4a96-9a42-b29159e88189",
  "name": "Европейские приборы",
  "price": 150,
  "originalPrice": 150,
  "vat": 20,
  "excise": "sugary_drink",
  "minAmount": 0,
  "maxAmount": 10
}

ModifierGroups

Name

Description

id

Type: string

Идентификатор группы модификаторов на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Example: 9987c815-3069-46ad-9626-74799fb22210

maxSelectedModifiers

Type: integer

Максимальное количество модификаторов, которые возможно выбрать для данной группы. Не должно быть меньше общего числа возможных "modifiers" (с учетом их maxAmount) и не должно быть меньше minSelectedModifiers

Min value: 0

Max value: 255

minSelectedModifiers

Type: integer

Минимальное количество модификаторов, которые необходимо выбрать для данной группы. Не должно быть больше общего числа необходимых "modifiers" (с учетом их minAmount) и не должно быть больше maxSelectedModifiers

Min value: 0

Max value: 255

name

Type: string

Наименование группы модификаторов

Example: Выбор приборов

modifiers

Type: Modifiers[]

Опции, включаемые в группу

Example
[
  {
    "id": "916cfc99-acb4-4a96-9a42-b29159e88189",
    "name": "Европейские приборы",
    "price": 150,
    "originalPrice": 150,
    "vat": 20,
    "excise": "sugary_drink",
    "minAmount": 0,
    "maxAmount": 10
  }
]

sortOrder

Type: integer

Порядок сортировки от меньшего к большему. Если не указан, считаем за 100.

Example
{
  "id": "9987c815-3069-46ad-9626-74799fb22210",
  "name": "Выбор приборов",
  "modifiers": [
    {
      "id": "916cfc99-acb4-4a96-9a42-b29159e88189",
      "name": "Европейские приборы",
      "price": 150,
      "originalPrice": 150,
      "vat": 20,
      "excise": "sugary_drink",
      "minAmount": 0,
      "maxAmount": 10
    }
  ],
  "minSelectedModifiers": 0,
  "maxSelectedModifiers": 10,
  "sortOrder": 0
}

ItemsImages

Name

Description

hash

Type: string

SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку

Example: example

url

Type: string<uri>

Ссылка на изображение для скачивания

Example: https://example.com

Example
{
  "hash": "example",
  "url": "https://example.com"
}

MenuCompositionItemAdditionalDescriptionsBadge

Тэги блюда разделены на категории и значения. В каждой категории можно выбрать всего один вариант. При обработке из каждой категории будет браться первое валидное значение. Дублирующие, неизвестные категории или несоответствие значения категории будут пропущены.
Доступные категории и их значения:

  • food_specifics - Особенности питания
    • halal - халяль
    • meat_free - без мяса
  • food_spiciness - острота
    • spicy - острое
  • cooking_method - способ готовки
    • fried - жареное
    • baked - запечённое
    • grilled - на гриле
    • not_cooked - нужно готовить
  • food_portion - размер
    • portion_for_several_people - на компанию
    • big_portion - мегапорция
    • combo - комбо

Name

Description

category

Type: string

Enum: food_specifics, food_spiciness, cooking_method, food_portion

value

Type: string

Enum: halal, meat_free, spicy, fried, baked, grilled, not_cooked, portion_for_several_people, big_portion, combo

Example
{
  "category": "cooking_method",
  "value": "fried"
}

MenuCompositionItemAdditionalDescriptions

Дополнительные поля для описания блюда

Name

Description

badges

Type: MenuCompositionItemAdditionalDescriptionsBadge[]

Example
[
  {
    "category": "cooking_method",
    "value": "fried"
  }
]

consisting_ingredients

Type: string[]

Перечень ингредиентов, из которых состоит блюдо. Это исходные компоненты блюда, а не его составные части. Желательно указать все ингредиенты, которые могут вызвать аллергию или сильно влияют на вкус. Так пользователи сразу увидят важные подробности о блюде.
Например: мука, яйца, вода, мясо.

Max items: 100

Example
[
  "мука"
]
Example
{
  "consisting_ingredients": [
    "мука"
  ],
  "badges": [
    {
      "category": "cooking_method",
      "value": "fried"
    }
  ]
}

AgeGroup

Возрастное ограничение на товар

Type: integer

Enum: 18, 21

AlcoholPercentage

Процент содержания алкоголя в блюде. Число указывается только через точку.

Type: string

Pattern: ^[0-9]+(\.[0-9]{1,2})?$

Example: 12.34

AdultInfo

Информация о adult-свойствах товара

Name

Description

age_group

Type: AgeGroup

Возрастное ограничение на товар

Enum: 18, 21

Example: 18

alcohol_percentage

Type: AlcoholPercentage

Процент содержания алкоголя в блюде. Число указывается только через точку.

Pattern: ^[0-9]+(\.[0-9]{1,2})?$

Example: 12.34

Example
{
  "age_group": 18,
  "alcohol_percentage": "12.34"
}

MenuCompositionItem

Name

Description

categoryId

Type: string

Идентификатор категории в системе партнера

Max length: 64

Example: fa494dc1-2578-4adb-a8fa-e270de8c3d28

id

Type: string

Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Max length: 64

Example: e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9

measure

Type: integer

Характеристика измерений блюда - например вес или объем

measureUnit

Type: string

Единица измерения. Допустимые значения - граммы и миллилитры

Enum: г, мл, g, ml

name

Type: string

Наименование блюда в ресторане (например "Пирожки с вишней")

Example: Вареники с творогом и вишней

price

Type: number

Цена продукта. Блюда с нулевой ценой пропускаются и не попадают в меню

additional_descriptions

Type: MenuCompositionItemAdditionalDescriptions

Дополнительные поля для описания блюда

Example
{
  "consisting_ingredients": [
    "мука"
  ],
  "badges": [
    {
      "category": "cooking_method",
      "value": "fried"
    }
  ]
}

adult_info

Type: AdultInfo

Информация о adult-свойствах товара

Example
{
  "age_group": 18,
  "alcohol_percentage": "12.34"
}

description

Type: string

Полное описание блюда

Example: Мука, вода, яичный порошок, вишня замороженная, творог 5%

excise

Type: string

Признак акцизного товара. Также можно вместо ключа excise передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в name товара.

Enum: sugary_drink, other

images

Type: ItemsImages[]

Изображение блюда

Example
[
  {
    "hash": "example",
    "url": "https://example.com"
  }
]

isCatchweight

Type: boolean

Флаг того, что позиция весовая

Default: false

modifierGroups

Type: ModifierGroups[]

Группы модификаторов для блюда. Обязательность модификаторов определяется параметром minSelectedModifiers в группе модификаторов.

Example
[
  {
    "id": "9987c815-3069-46ad-9626-74799fb22210",
    "name": "Выбор приборов",
    "modifiers": [
      {
        "id": "916cfc99-acb4-4a96-9a42-b29159e88189",
        "name": "Европейские приборы",
        "price": 150,
        "originalPrice": 150,
        "vat": 20,
        "excise": "sugary_drink",
        "minAmount": 0,
        "maxAmount": 10
      }
    ],
    "minSelectedModifiers": 0,
    "maxSelectedModifiers": 10,
    "sortOrder": 0
  }
]

nutrients

Type: Nutrients

Параметры КБЖУ

Энергетическая ценность продукта на 100гр

Example
{
  "calories": 12.5,
  "proteins": 15.3,
  "fats": 12.5,
  "carbohydrates": 15.3
}

onlyForCombo

Type: boolean

Блюдо только для комбо

shippingType

Type: string

Тип доставки доступный для блюда - доставка или самовывоз. Если не указан, то блюдо доступно как для доставки, так и для самовывоза

Enum: delivery, pickup

sortOrder

Type: integer

Порядок сортировки от меньшего к большему. Если не указан, считаем за 100

vat

Type: number

НДС, включенный в стоимость, в процентах, если не указан, считается за 0

weightQuantum

Type: number

Наименьшее количество продукта (квант) доступное для заказа. Поле является обязательным, если значение isCatchweight равно true, иначе значение поля не используется

Example
{
  "id": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
  "categoryId": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
  "name": "Вареники с творогом и вишней",
  "description": "Мука, вода, яичный порошок, вишня замороженная, творог 5%",
  "price": 1000,
  "vat": 20,
  "shippingType": "delivery",
  "isCatchweight": false,
  "measure": 666,
  "weightQuantum": 0.1,
  "measureUnit": "г",
  "excise": "sugary_drink",
  "nutrients": {
    "calories": 12.5,
    "proteins": 15.3,
    "fats": 12.5,
    "carbohydrates": 15.3
  },
  "sortOrder": 0,
  "modifierGroups": [
    {
      "id": "9987c815-3069-46ad-9626-74799fb22210",
      "name": "Выбор приборов",
      "modifiers": [
        {
          "id": "916cfc99-acb4-4a96-9a42-b29159e88189",
          "name": "Европейские приборы",
          "price": 150,
          "originalPrice": 150,
          "vat": 20,
          "excise": "sugary_drink",
          "minAmount": 0,
          "maxAmount": 10
        }
      ],
      "minSelectedModifiers": 0,
      "maxSelectedModifiers": 10,
      "sortOrder": 0
    }
  ],
  "images": [
    {
      "hash": "example",
      "url": "https://example.com"
    }
  ],
  "additional_descriptions": {
    "consisting_ingredients": [
      "мука"
    ],
    "badges": [
      {
        "category": "cooking_method",
        "value": "fried"
      }
    ]
  },
  "adult_info": {
    "age_group": 18,
    "alcohol_percentage": "12.34"
  },
  "onlyForCombo": true
}

ItemId

Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Type: string

Example: e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9

ComboComponentItem

Позиция в меню, которую можно выбрать как компонент комбо

Name

Description

itemId

Type: ItemId

Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Example: e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9

isDefault

Type: boolean

Является ли данный продукт выбором по умолчанию
Если не указано ни одного продукта в списке с такой опцией,
то дефолтным будет первый продукт в списке

sortOrder

Type: integer

Порядок сортировки товара внутри компоненты комбо

Min value: 0

Example
{
  "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
  "sortOrder": 0,
  "isDefault": true
}

ComboComponent

Компонент комбо

Name

Description

id

Type: string

Идентификатор компонента

Example: example

items

Type: ComboComponentItem[]

Список позиций, которые можно выбрать как компонент комбо

Example
[
  {
    "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
    "sortOrder": 0,
    "isDefault": true
  }
]

name

Type: string

Название компонента

Example: Горячее

sortOrder

Type: integer

Порядок сортировки компоненты комбо

Min value: 0

Example
{
  "id": "example",
  "name": "Горячее",
  "sortOrder": 0,
  "items": [
    {
      "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
      "sortOrder": 0,
      "isDefault": true
    }
  ]
}

Price

Type: string

Pattern: ^-?[0-9]+(\.[0-9]{1,2})?$

Example: example

ComboFixedPrice

Фиксированная цена на комбо.
Цена на блюда в заказе будет распределена пропорционально их цене в меню.
Например, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,
то в заказе цены блюд будут 833.33 и 1666.67 соответственно

Name

Description

price

Type: Price

Pattern: ^-?[0-9]+(\.[0-9]{1,2})?$

Example: example

type

Type: string

Const: fixed

Example: example

Example
{
  "type": "fixed",
  "price": "example"
}

ComboItemPrice

Цена для блюда в комбо

Name

Description

itemId

Type: ItemId

Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Example: e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9

price

Type: Price

Pattern: ^-?[0-9]+(\.[0-9]{1,2})?$

Example: example

Example
{
  "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
  "price": "example"
}

ComboItemFixedPrice

На каждую позицию в комбо предоставляется отдельная цена

Name

Description

prices

Type: ComboItemPrice[]

Example
[
  {
    "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
    "price": "example"
  }
]

type

Type: string

Const: item_fixed

Example: example

Example
{
  "type": "item_fixed",
  "prices": [
    {
      "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
      "price": "example"
    }
  ]
}

DiscountPercent

Размер скидки в процентах

Type: integer

Min value: 0

Max value: 100

ComboSingleDiscountPrice

На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо

Name

Description

discount

Type: DiscountPercent

Размер скидки в процентах

Min value: 0

Max value: 100

Example: 0

type

Type: string

Const: single_discount

Example: example

Example
{
  "type": "single_discount",
  "discount": 0
}

ComboItemDiscount

Скидка для блюда в комбо

Name

Description

discount

Type: DiscountPercent

Размер скидки в процентах

Min value: 0

Max value: 100

Example: 0

itemId

Type: ItemId

Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4

Example: e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9

Example
{
  "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
  "discount": 0
}

ComboItemDiscountsPrice

На каждую позицию в комбо предоставляется отдельная процентная скидка

Name

Description

discounts

Type: ComboItemDiscount[]

Example
[
  {
    "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
    "discount": 0
  }
]

type

Type: string

Const: item_discounts

Example: example

Example
{
  "type": "item_discounts",
  "discounts": [
    {
      "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
      "discount": 0
    }
  ]
}

ComboPrice

One of 4 types
  • Type: ComboFixedPrice

    Фиксированная цена на комбо.
    Цена на блюда в заказе будет распределена пропорционально их цене в меню.
    Например, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,
    то в заказе цены блюд будут 833.33 и 1666.67 соответственно

    Example
    {
      "type": "fixed",
      "price": "example"
    }
    
  • Type: ComboItemFixedPrice

    На каждую позицию в комбо предоставляется отдельная цена

    Example
    {
      "type": "item_fixed",
      "prices": [
        {
          "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
          "price": "example"
        }
      ]
    }
    
  • Type: ComboSingleDiscountPrice

    На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо

    Example
    {
      "type": "single_discount",
      "discount": 0
    }
    
  • Type: ComboItemDiscountsPrice

    На каждую позицию в комбо предоставляется отдельная процентная скидка

    Example
    {
      "type": "item_discounts",
      "discounts": [
        {
          "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
          "discount": 0
        }
      ]
    }
    
Example
{
  "type": "fixed",
  "price": "example"
}

MenuCompositionCombo

Name

Description

categoryId

Type: string

Идентификатор категории в системе партнера

Example: fa494dc1-2578-4adb-a8fa-e270de8c3d28

components

Type: ComboComponent[]

Example
[
  {
    "id": "example",
    "name": "Горячее",
    "sortOrder": 0,
    "items": [
      {
        "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
        "sortOrder": 0,
        "isDefault": true
      }
    ]
  }
]

id

Type: string

Идентификатор комбо

Example: fa494dc1-2578-4adb-a8fa-e270de8c3d28

name

Type: string

Название комбо

Example: Комбо с Воппер По-Итальянски

price

Type: ComboPrice

Example
{
  "type": "fixed",
  "price": "example"
}

description

Type: string

Описание комбо

Example: example

image

Type: ItemsImages

Example
{
  "hash": "example",
  "url": "https://example.com"
}
Example
{
  "id": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
  "categoryId": "fa494dc1-2578-4adb-a8fa-e270de8c3d28",
  "name": "Комбо с Воппер По-Итальянски",
  "description": "example",
  "image": {
    "hash": "example",
    "url": "https://example.com"
  },
  "components": [
    {
      "id": "example",
      "name": "Горячее",
      "sortOrder": 0,
      "items": [
        {
          "itemId": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9",
          "sortOrder": 0,
          "isDefault": true
        }
      ]
    }
  ],
  "price": {
    "type": "fixed",
    "price": "example"
  }
}

400 Bad Request

Bad request. Ошибка в параметрах. В теле ответа ожидается массив с объектом из списка ошибок

Body

application/json
[
  {
    "code": 100,
    "description": "Description of error"
  }
]

Type: ErrorItem[]

ErrorItem

Name

Description

code

Type: integer

Согласованный с Яндекс.Еда числовой код ошибки

description

Type: string

Сообщение об ошибке

Example: Description of error

Example
{
  "code": 100,
  "description": "Description of error"
}

401 Unauthorized

Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай

Body

application/json
{
  "reason": "Access token has been expired. You should request a new one"
}

Name

Description

reason

Type: string

Причина, по которой не прошла авторизация

Example: Access token has been expired. You should request a new one

404 Not Found

Не найден ресторан. В теле ответа ожидается массив с объектом из списка ошибок

Body

application/json
[
  {
    "code": 100,
    "description": "Description of error"
  }
]

Type: ErrorItem[]

500 Internal Server Error

Внутренние ошибки сервера. В теле ответа ожидается массив с объектом из списка ошибок

Body

application/json
[
  {
    "code": 100,
    "description": "Description of error"
  }
]

Type: ErrorItem[]