API для партнёров
14.07.2026 16:05

Модификаторы и налоги

Модификаторы блюд (опции, добавки) и налоговые ставки — как они привязаны к продуктам и отражаются в заказах.

Эта страница покрывает две группы эндпоинтов:

  • Модификаторы продуктов (ProductModifiers) — опции и добавки к блюдам (например, степень прожарки, размер порции, дополнительные ингредиенты).
  • Налоги продуктов (ProductTaxes) — справочник налоговых ставок, которые привязываются к продуктам.

Все запросы — под Bearer-токеном (см. Аутентификация). restaurantId — числовой path-параметр. Общие соглашения и ошибки — в разделах Соглашения и Ошибки. Каталог продуктов и групп описан в Меню: Каталог.

Базовый путь: /api/core/admin/restaurants/{restaurantId}.


Модификаторы продуктов

Модификатор (VendorProductModifier) — группа вариантов выбора для блюда. Каждый вариант (VendorAdditionValue) может нести собственную цену и налог. Модификатор задаёт правила выбора (одиночный/множественный, минимум/максимум) и может быть привязан к конкретным продуктам или целым группам продуктов.

МетодПутьНазначение
GET/modifiersСписок модификаторов
POST/modifiersСоздать модификатор
PUT/modifiers/{modifierId}Изменить модификатор
DELETE/modifiers/{modifierId}Удалить модификатор

Поля VendorProductModifier

ПолеТипОписание
idstring?Идентификатор модификатора
namestring?Внутреннее название
displayNamestring?Отображаемое название для гостя
valuesarray<VendorAdditionValue>Варианты выбора (см. ниже)
multiselectbooleanРазрешён множественный выбор
minSelectedAmountintegerМинимальное число выбранных вариантов
maxSelectedAmountinteger?Максимальное число выбранных вариантов
productGroupIdsarray<string>Привязка к группам продуктов
productIdsarray<string>Привязка к конкретным продуктам
visibleboolean?Видимость модификатора

Поля VendorAdditionValue (вариант выбора)

ПолеТипОписание
idstring?Идентификатор варианта
namestring?Название варианта
pricenumber?Доплата за вариант
taxesnumber?Налог на вариант
descriptionstring?Описание
plustring?Артикул (PLU) варианта
defaultboolean?Выбран по умолчанию

Цены вариантов. price каждого варианта — от нуля, не больше двух знаков после запятой и не больше 21474836.47; пустой price допустим. Создание или изменение с вариантом вне этих правил отклоняется с 400 и кодом invalid_price, в сообщении назван вариант:

{ "message": "The price of option 'Extra sauce' must not be below zero: -5.", "code": "invalid_price" }

Список

GET /modifiers

Возвращает массив VendorProductModifier.

Terminal window
curl -G https://api.hostmeapp.com/api/core/admin/restaurants/123/modifiers \
-H "Authorization: Bearer $TOKEN"

Создать модификатор

POST /modifiers

Тело — VendorProductModifier. Ответ — созданный модификатор.

Terminal window
curl -X POST https://api.hostmeapp.com/api/core/admin/restaurants/123/modifiers \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "doneness",
"displayName": "Степень прожарки",
"multiselect": false,
"minSelectedAmount": 1,
"maxSelectedAmount": 1,
"values": [
{ "name": "Medium", "price": 0, "default": true },
{ "name": "Well done", "price": 0 }
],
"productIds": ["PRODUCT_ID"],
"visible": true
}'

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

PUT /modifiers/{modifierId}

ПараметрГдеТип
restaurantId *pathinteger
modifierId *pathstring

Тело — VendorProductModifier. Ответ — обновлённый модификатор.

Удалить модификатор

DELETE /modifiers/{modifierId}

ПараметрГдеТип
restaurantId *pathinteger
modifierId *pathstring
Terminal window
curl -X DELETE https://api.hostmeapp.com/api/core/admin/restaurants/123/modifiers/MODIFIER_ID \
-H "Authorization: Bearer $TOKEN"

Модификаторы конкретного меню. Помимо глобального справочника модификаторов есть эндпоинты для модификаторов в рамках одного меню: GET и PUT /menu/{menuId}/modifiers (объект VendorMenuModifier — те же поля, что у VendorProductModifier, но без productGroupIds/productIds). См. Меню: Каталог.


Налоги продуктов

Налог (VendorTax) — это ставка, которую можно применить к продуктам. Налог может быть включён в цену (vatInclusive) или начисляться сверху, может быть глобально включён/выключен и привязан к набору продуктов.

МетодПутьНазначение
GET/taxesСписок налогов
POST/taxesСоздать налог
PUT/taxes/{taxId}Изменить налог
DELETE/taxes/{taxId}Удалить налог

Поля VendorTax

ПолеТипОписание
idstring?Идентификатор налога
namestring?Название налога
vatInclusivebooleanНалог включён в цену (true) или начисляется сверху (false)
percentagenumber?Ставка налога, проценты
enabledboolean?Налог активен
productIdsarray<string>Продукты, к которым применяется налог

Список

GET /taxes

Возвращает массив VendorTax.

Terminal window
curl -G https://api.hostmeapp.com/api/core/admin/restaurants/123/taxes \
-H "Authorization: Bearer $TOKEN"

Создать налог

POST /taxes

Тело — VendorTax. Ответ — созданный налог.

Terminal window
curl -X POST https://api.hostmeapp.com/api/core/admin/restaurants/123/taxes \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "НДС 20%",
"vatInclusive": true,
"percentage": 20,
"enabled": true,
"productIds": ["PRODUCT_ID"]
}'

Изменить налог

PUT /taxes/{taxId}

ПараметрГдеТип
restaurantId *pathinteger
taxId *pathstring

Тело — VendorTax. Ответ — обновлённый налог.

Удалить налог

DELETE /taxes/{taxId}

ПараметрГдеТип
restaurantId *pathinteger
taxId *pathstring
Terminal window
curl -X DELETE https://api.hostmeapp.com/api/core/admin/restaurants/123/taxes/TAX_ID \
-H "Authorization: Bearer $TOKEN"

Связь с продуктом. У продукта есть массив taxIds (см. Меню: Каталог) — в нём перечислены ID применённых к нему налогов. Привязку можно задавать с обеих сторон: через productIds у налога и через taxIds у продукта.