API для партнёров

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

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

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

  • Модификаторы продуктов (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?Выбран по умолчанию

Список

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 у продукта.