Создание заказа с блюдом на вес
Введение
В r_k Delivery есть возможность создать заказ с весовыми блюдами.
Чтобы создавать заказ на доставку с весовым блюдом:
- Создайте блюдо в менеджерской станции
- В административной панели r_k Delivery добавьте блюдо в представление меню
- Создайте заказ с весовым блюдом.
В этой статье будет рассмотрен пример создания и продажи весового блюда торт.
Предварительные настройки
Создайте блюдо в менеджерской станции.
- Создайте весовое блюдо, например Торт Медовик
- Задайте цену и активируйте блюдо
- В разделе Порции укажите:
- Добавление в заказ — Склеивать
- Тип единицы измерения — Килограмм
- Выключите настройку 1 Изменение веса. Если она будет включена, вес всех весовых товаров придется подтверждать на кассовой станции
- Включите настройку Не паковать
- Вес порции — вес порции торта в заведении из примера — 250 грамм. В поле укажите 0,25, так как выбран тип единицы измерения — килограммы
- Режим цены — Порционное за стд. Порцию. В этом случае заданная цена будет применятся именно к порции, то есть 250 грамм торта будут стоить 350 рублей
- Сохраните изменения.
Таким же образом создайте весовое блюдо, например Конфеты на вес. Только в настройках блюда в поле Режим цены выберите Порционное за вес.
Затем добавьте блюдо в представление меню в административной панели r_k Delivery.
- Перейдите в административную панель r_k Delivery
- Перейдите в меню Меню > Представление меню ресторана
- Выберите группу и добавьте туда весовое блюдо
- Нажмите на кнопку Опубликовать меню для заведений.
Готово, весовое блюдо добавлено в представление. Теперь его можно продать.
Создание заказа
Запрос
Для создания заказа используйте запрос:
POST https://delivery.ucs.ru/orders/api/v1/orders
Content-Type укажите application/json.
Пример тела запроса
{
"comment": "приготовьте с любовью ",
"restaurantId": "a7db6017-3f7b-444d-a1d4-9c277b28ffd0",
"persons": "1",
"dishList": [
{
"id": "8198255e-1c7a-702a-a512-05b1803561e5",
"name": "Конфеты - вес",
"price": "500",
"imageUrls":[
],
"measure": {
"value": 0.100,
"unit": "кг",
"priceMode": "PerUnitOfWeight",
"qntDecDigits": 3,
"changeQntOnce": false,
"joinMode": "almOnePortion"
},
"quantity": 0.75,
},
],
"expeditionType": "delivery",
"expectedAt":"2022-12-23T18:03:42.504+03:00",
"paymentTypeId": "card",
"changeFrom": "5000",
"guest": {
"email": "eewd@dgf.ru",
"phone": "79991234567",
"firstName": "Олег"
},
"address": {
"postcode": "109443",
"cityId": "73439fb3-c0c4-42ca-a269-64f031a6a33b",
"street": "Юных Ленинцев",
"comment": " дом находится справа от школы",
"lat": "55.700897",
"lon": "37.773808",
"cityName": "Москва",
"entrance": "1",
"houseNumber": "85",
"apartmentNumber": "6",
"subway": "Кузьминки",
"fullAddress": "109443, г Москва, ул Юных Ленинцев, д 85 к 2, кв 6"
}
}
В зависимости от способа доставки: delivery — доставка курьером или pickup — самовывоз обязательность полей изменяется.
Чтобы система передавала заказы сразу, указывайте в запросе параметр Как можно скорее. В этом случае не указывайте параметр expectedAt, так как он становится не обязательным. Заказы Как можно скорее передаются на кассу с минимальной задержкой.
Параметр | Тип параметра | Описание |
---|---|---|
comment | string | Комментарий к заказу |
restaurantId | string | ID ресторана из Delivery в формате GUID |
persons | int | Количество персон |
dishList | array | Состав заказа |
-id | string | ID блюда из представления меню Delivery, которое используется для синхронизации с кассой, в формате GUID. |
-name | string | Наименование блюда |
-price | double разделителем всегда будет точка - "." | Цена блюда |
-measure | Параметры веса. Поддержана обратная совместимость: если передавать null или не передавать параметры из measure, то система сама подставит данные из меню. В случае передачи пустых строк или значений отличных от значений в меню, то при создании заказа возникнет исключение. | |
--value | double | Размер порции |
--unit | string | Единица измерения: кг, литр, шт. Значение не словарное |
--priceMode | string | Параметр расчета стоимости, установленный в r_keeper. Допустимые значения:
|
--qntDecDigits | double | Количество цифр в весе после запятой, настраивается в r_keeper |
--changeQntOnce | string | Можно ли изменить вес, настройка блюда из r_keeper |
--joinMode | string | Параметр добавления в заказ, настраивается в r_keeper. Допустимые значения:
|
-quantity | double разделителем всегда будет точка - "." | Вес добавляемой порции |
-ingredients | array | Ингредиенты |
--id | string | ID ингредиента из представления меню Delivery, которое используется для синхронизации с кассой, в формате GUID |
--name | string | Наименование ингредиента |
--price | double разделителем всегда будет точка - "." | Цена ингредиента |
--quantity | double разделителем всегда будет точка - "." | Количество ингредиента |
--ingredients | array | Модификаторы |
---id | string | ID модификатора из представления меню Delivery, которое используется для синхронизации с кассой, в формате GUID. |
---name | string | Наименование модификатора |
---price | double разделителем всегда будет точка - "." | Цена модификатора |
---quantity | double разделителем всегда будет точка - "." | Количество модификатора |
expeditionType | string | ID способа получения заказа:
|
soonest | boolean | Время передачи заказа Как можно скорее |
expectedAt | DateTime | Время к которому ожидается заказ |
paymentTypeId | string | ID способа оплаты:
|
changeFrom | double разделителем всегда будет точка - "." | Сдача с какой суммы |
guest | Гость | |
string | Электронная почта гостя | |
-phone | string | Номер телефона |
-firstName | string | Имя |
-lastName | string | Фамилия |
address | Адрес доставки | |
-postcode | string | Почтовый индекс |
-street | string | Улица |
-comment | string | Комментарий к адресу |
-lat | double разделителем всегда будет точка - "." | Широта |
-lon | double разделителем всегда будет точка - "." | Долгота |
-cityId | string | ID города |
-cityName | string | Наименование города |
-floor | int | Этаж |
-houseNumber | string | Номер дома |
-apartmentNumber | string | Номер квартиры |
-entrance | string | Вход |
-subway | string | Метро |
-fullAddress | string | Полный адрес |
Пример ответа
{
"result": {
"orderId": "233132",
"restaurant": {
"phone": "79123456789, 79987654321",
"address": "Багратионовский проезд 3"
},
}
}
Пример передачи такого запроса в интерфейс заведения:
Редактирование заказа
Добавить вес блюду можно только при добавлении его в заказ. Если ввести вес в существующее блюдо в заказе, оно не разобьется на порции.
Запрос
PATCH https://delivery.ucs.ru/orders/api/v1/orders/{orderId}
где {orderId} — номер заказа.
Content-Type укажите application/json.
Пример тела запроса
{
"dishList": [
{
"id": "8198255e-1c7a-702a-a512-05b1803561e5",
"name": "Конфеты - вес",
"price": "500",
"imageUrls":[
],
"measure": {
"value": 0.100,
"unit": "кг",
"priceMode": "PerUnitOfWeight",
"qntDecDigits": 3,
"changeQntOnce": false,
"joinMode": "almOnePortion"
},
"quantity": 0.55,
},
],
}
для изменения веса блюда измените параметр quantity.
Пример ответа
{
"result": {
"item1": {
"orderId": "233132",
"restaurant": null,
"onlinePayUrl": null
},
"item2": {}
}
}
Пример передачи такого запроса в интерфейс заведения — вес блюда и цена заказа были изменены: