RK7 API
Список ресторанов по корпорации (GET)
url = BaseUrl + 'rests?corpid=19999'
здесь,
corpid - идентификатор корпорации
Пример ответа:
{
"data": {
"rests": [
{
"id": 199999999,
"name": "Шоурум UCS",
"address": "Б. Почтовая 18/20 стр. 6",
"country": "Russia",
"city_name": "Moscow",
"status": "Active",
"min_check_amount": 300,
"delivery_period": {
"begin": "8:00",
"end": "22:00"
},
"delivery_price": 300,
"currencies": [
{
"id": "ASSIST",
"currency_code": "RUB",
"url": "https://payments.demo.paysecure.ru/",
"merchant_id": "115981"
}
]
}
]
},
"ver": "1.1.7.4",
"timestamp": "2017-03-29T15:23:10",
"status": "Ok"
}
здесь:
id - идентификатор ресторана
name - наименование ресторана
address - адрес ресторана
country - страна
city_name - город
status - статус ресторана. Значение берется с сервера лицензирования
min_check_amount - сумма минимального чека (устанавливается в админ части дилера)
delivery_period - время доставки с часа (begin) по час (end). (Устанавливается в админ части дилера)
delivery_price - стоимость доставки (устанавливается в админ части дилера)
currencies - система внешней оплаты ASSIST (все указывается в админ части дилера)
id - текстовый идентификатор внешнего платежного сервиса (ASSIST)
currency_code - код валюты в ASSIST
url - URL для перехода на страницу платежного сервиса
merchant_id - идентификатор предприятия («Номер магазина») в системе ASSIST
Список ресторанов по адресу доставки и корпорации (POST)
url = BaseUrl + 'rests'
В теле запроса JSON:
{
"address": "Russia, Moscow, Б. Почтовая 18/20 стр. 6",
"lat": "55.776877",
"lon": "37.696391",
"corpid": 19999,
"default_object": 199994335
}
здесь,
address - строка адреса доставки (обязательно)
lat и lon - широта и долгота адреса доставки (не обязательно)
corpid - идентификатор корпорации (обязательно)
default_object - объект по умолчанию, на случай если по указанному адресу нет зоны доставки (обязательно)
Если указаны lat и lon - определение ресторана, обслуживающего зону доставки по адресу определяется по ним. Строка адреса, если она указана, игнорируется.
Пример ответа (если зоны не пересекаются - в ответе должны вернуться параметры по одному ресторану):
{
"data": {
"rests": [
{
"id": 199994335,
"name": "Ресторан 313 крабов и креветка-",
"address": "Б. Почтовая 18/20 стр. 6 ",
"country": "Russia",
"city_name": "Moscow",
"status": "Active",
"min_check_amount": 300,
"delivery_period": {
"begin": "8:20",
"end": "22:00"
},
"delivery_price": 300,
"currencies": [
{
"id": "ASSIST",
"currency_code": "RUB",
"url": "https://payments.demo.paysecure.ru/",
"merchant_id": "115981"
}
]
}
]
},
"ver": "1.1.7.4",
"timestamp": "2017-03-29T15:41:08",
"status": "Ok"
}
Дерево меню (список категорий меню) по идентификатору объекта (GET)
Результаты выполнения данного запроса кэшируются на сервере webdelivery. Время обновления кэша- 15 минут.
url = BaseUrl + 'menutree?objectid=199994335&lang=ru'
здесь,
objectid - идентификатор объекта/ресторана (обязательно)
lang - язык наименований меню, ru или en (не обязательно). Если не задать вернется список локализованных ресурсов для всех языков. Если задать, то локализованные ресурсы вернуться для указанного языка
"locres": {
"name": "Первые блюда"
}
Пример ответа без указания lang (url = BaseUrl + 'menutree?objectid=199994335&lang=ru'):
{
"data": {
"selectors": [
{
"pid": 0,
"type": "SELECTORS",
"level": 0,
"items": [
{
"pid": 0,
"type": "SELECTORS",
"level": 1,
"items": [
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [
1000039,
1000040
],
"id": 1000258,
"guid": "{BC31E51B-5248-4230-9924-4B0A80900BFE}",
"code": 42,
"name": "Первые блюда",
"locres": {
"name": "Первые блюда"
}
},
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [
1000016,
1000018
],
"id": 1000255,
"guid": "{B0A1E19F-0C8E-4F9E-9F82-F715992A5014}",
"code": 41,
"name": "Вторые блюда",
"locres": {
"name": "Вторые блюда"
}
},
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [
1000042,
1000043,
1000072
],
"id": 1000267,
"guid": "{931CB22C-4E52-4125-BD2A-F4D94C5812DA}",
"code": 43,
"name": "Напитки",
"locres": {
"name": "Напитки"
}
},
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [],
"id": 1000401,
"guid": "{9E644F23-AC74-433F-A742-00C7C8771824}",
"code": 44,
"name": "Комбо",
"locres": {
"name": "Комбо"
}
}
],
"dishes": [],
"id": 1000248,
"guid": "{CDE469EC-7600-44EA-847E-161ABA71D835}",
"code": 40,
"name": "Интернет-меню",
"locres": {
"name": "Интернет-меню"
}
}
],
"dishes": [],
"id": 11048,
"guid": "{70DC9856-7791-42BC-8D89-57C8CE51EB31}",
"code": 11048,
"name": "Начальный выбор",
"altname": "Initial Choice",
"locres": {}
}
]
},
"ver": "1.1.7.4",
"timestamp": "2017-03-30T14:56:27",
"status": "Ok"
}
Пример ответа без указания lang (url = BaseUrl + 'menutree?objectid=199994335&lang=')
{
"data": {
"selectors": [
{
"pid": 0,
"type": "SELECTORS",
"level": 0,
"items": [
{
"pid": 0,
"type": "SELECTORS",
"level": 1,
"items": [
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [
1000039,
1000040
],
"active": 1,
"id": 1000258,
"guid": "{BC31E51B-5248-4230-9924-4B0A80900BFE}",
"code": 42,
"name": "Первые блюда",
"locres": {
"ru": {
"name": "Первые блюда"
},
"en": {
"name": "First meal"
}
}
},
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [
1000016,
1000018
],
"active": 1,
"id": 1000255,
"guid": "{B0A1E19F-0C8E-4F9E-9F82-F715992A5014}",
"code": 41,
"name": "Вторые блюда",
"locres": {
"ru": {
"name": "Вторые блюда"
},
"en": {
"name": "Second courses"
}
}
},
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [
1000042,
1000043,
1000072
],
"active": 1,
"id": 1000267,
"guid": "{931CB22C-4E52-4125-BD2A-F4D94C5812DA}",
"code": 43,
"name": "Напитки",
"locres": {
"ru": {
"name": "Напитки"
},
"en": {
"name": "Beverages"
}
}
},
{
"pid": 1000248,
"type": "SELECTORS",
"level": 2,
"items": [],
"dishes": [],
"active": 1,
"id": 1000401,
"guid": "{9E644F23-AC74-433F-A742-00C7C8771824}",
"code": 44,
"name": "Комбо",
"locres": {
"ru": {
"name": "Комбо"
},
"en": {
"name": "Combo"
}
}
}
],
"dishes": [],
"active": 1,
"id": 1000248,
"guid": "{CDE469EC-7600-44EA-847E-161ABA71D835}",
"code": 40,
"name": "Интернет-меню",
"locres": {
"ru": {
"name": "Интернет-меню"
},
"en": {
"name": "Internet-menu"
}
}
}
],
"dishes": [],
"active": 1,
"id": 11048,
"guid": "{70DC9856-7791-42BC-8D89-57C8CE51EB31}",
"code": 11048,
"name": "Начальный выбор",
"altname": "Initial Choice"
}
]
},
"ver": "1.1.7.4",
"timestamp": "2017-03-30T14:56:52",
"status": "Ok"
}
Поля id, guid, code, name, altname соответствуют параметрам кассового сервера «Идентификатор», «GUID», «Код», «Название», «Альт. название» соответственно.
Поле type для одинаковых структур данных позволяет различать их по типу и принимает значения «SELECTORS» или «MENUITEM». В текущей реализации используется только значение «SELECTORS».
Список блюд по идентификатору объекта (GET)
Результаты выполнения данного запроса кэшируются на сервере webdelivery. Время обновления кэша- 15 минут.
url = BaseUrl + 'dishes?objectid=199994335&lang=ru'
здесь,
objectid - идентификатор объекта/ресторана (обязательно)
lang - язык наименований меню (не обязательно). На запрос без lang вернутся все локализованные ресурсы блюд
Пример ответа (язык меню не указан):
{
"data": {
"dishes": [
{
"price": 5000,
"modischeme": 0,
"recomended": [],
"active": 1,
"id": 1000039,
"guid": "{9E3F46BF-D89D-49F8-A1AE-182479B3AF46}",
"code": 24,
"name": "Борщ",
"altname": "Borscht",
"images": [
"img24.png"
],
"locres": {
"ru": {
"name": "Борщ"
},
"en": {
"name": "Borscht"
}
}
},
{
"price": 9500,
"modischeme": 0,
"recomended": [],
"active": 1,
"id": 1000040,
"guid": "{634EA5E0-CF00-4316-A639-5BF1809D3D08}",
"code": 25,
"name": "Солянка",
"images": [
"img25.png",
"img25_1.png"
],
"locres": {
"ru": {
"name": "Солянка"
},
"en": {
"name": "Saltwort"
}
}
},
{
"price": 5000,
"modischeme": 1000384,
"recomended": [],
"active": 1,
"id": 1000016,
"guid": "{532EB43B-6661-4063-97BA-B5BBBDC1577F}",
"code": 4,
"name": "Пельмени",
"images": [
"img4.png",
"img4_1.png"
],
"locres": {
"ru": {
"name": "Пельмени сибирские",
"comment": "Пельмени сибирские",
"long_comment": "Домашние пельмени приготовленные вручную со свининой и говядиной, со сметаной"
},
"en": {
"name": "Pelmeni Sibirskie",
"comment": "Pelmeni Sibirskie",
"long_comment": "Russian home made pelmeni Sibirskie with pork and beef with sour cream"
}
}
},
{
"price": 3000,
"modischeme": 0,
"recomended": [],
"active": 1,
"id": 1000018,
"guid": "{465FCA56-5C19-4479-89A2-F715DE111ACC}",
"code": 6,
"name": "Спагетти",
"images": [
"img6.png",
"img6_1.png"
],
"locres": {
"ru": {
"name": "Спагетти \"Филата\"",
"comment": "Спагетти \"Филата\"",
"long_comment": "Спагетти, сливочное и растительное масло, твердый сыр Пармезан, сыр Дор Блю, сыр Ольтермани, чеснок"
},
"en": {
"name": "Spaghetti \"Filata\"",
"comment": "Spaghetti \"Filata\"",
"long_comment": "Spaghetti, butter and vegetable oil, hard Parmesan cheese, Dor Blue cheese, Oltermani cheese, garlic"
}
}
},
{
"price": 8000,
"modischeme": 1000331,
"recomended": [],
"active": 1,
"id": 1000042,
"guid": "{ABB96A2B-A704-475C-A6F1-795BF550197D}",
"code": 27,
"name": "Яблочный сок",
"images": [
"img27.png"
],
"locres": {
"ru": {
"name": "Яблочный сок"
},
"en": {
"name": "Apple juice"
}
}
},
{
"price": 10000,
"modischeme": 1000331,
"recomended": [],
"active": 1,
"id": 1000043,
"guid": "{4275F46E-AE20-461C-99BA-E95D6D1AE4AA}",
"code": 28,
"name": "Апельсиновый сок",
"images": [
"img28.png"
],
"locres": {
"ru": {
"name": "Апельсиновый сок"
},
"en": {
"name": "Orange juice"
}
}
},
{
"price": 10000,
"modischeme": 1000331,
"recomended": [],
"active": 1,
"id": 1000072,
"guid": "{1336C583-C799-47C2-9730-190228AE9DBE}",
"code": 17,
"name": "Грейпфрутовый сок",
"images": [
"img17.png",
"img17_1.png"
],
"locres": {
"ru": {
"name": "Грейпфрутовый сок"
},
"en": {
"name": "Grapefruit juice"
}
}
}
],
"modifiers": [
{
"pid": 0,
"group": [
{
"useDownLimit": 1,
"downLimit": 1,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 2003,
"name": "ЕГАИС EAN13",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 1,
"upLimit": 1,
"active": 1,
"id": 2001,
"name": "ЕГАИС EAN13"
},
{
"useDownLimit": 1,
"downLimit": 1,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 2004,
"name": "PDF417",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 1,
"upLimit": 1,
"active": 1,
"id": 2002,
"name": "PDF417"
}
],
"item": [],
"active": 1,
"id": 2007,
"code": 2007,
"name": null
},
{
"pid": 0,
"group": [],
"item": [],
"active": 1,
"id": 1000194,
"code": 1,
"name": null
},
{
"pid": 0,
"group": [
{
"useDownLimit": 0,
"downLimit": 0,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 1000324,
"name": "Корица",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 1000325,
"name": "Сахар",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 1000327,
"name": "Безе",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 1000329,
"name": "Молоко",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 0,
"upLimit": 0,
"active": 1,
"id": 1000323,
"name": "123"
}
],
"item": [],
"active": 1,
"id": 1000331,
"code": 2,
"name": null
},
{
"pid": 0,
"group": [
{
"useDownLimit": 0,
"downLimit": 0,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 1000392,
"name": "п",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 1,
"price": 500,
"active": 1,
"id": 1000393,
"name": "в",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 10,
"price": 6320,
"active": 1,
"id": 1000394,
"name": "ноор",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 0,
"upLimit": 0,
"active": 1,
"id": 1000391,
"name": "апапа"
}
],
"item": [],
"active": 1,
"id": 1000384,
"code": 3,
"name": null
},
{
"pid": 0,
"group": [],
"item": [],
"active": 1,
"id": 1000399,
"code": 4,
"name": null
}
],
"commonModifiers": [
{
"pid": 0,
"group": [
{
"useDownLimit": 0,
"downLimit": 0,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 7,
"price": 0,
"active": 1,
"id": 1000386,
"name": "Первый",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 3,
"price": -139,
"active": 0,
"id": 1000387,
"name": "Второй",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 2,
"price": 1263,
"active": 1,
"id": 1000388,
"name": "Третий",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 0,
"price": 0,
"active": 1,
"id": 1000389,
"name": "неограниченный",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 0,
"upLimit": 0,
"active": 1,
"id": 1000385,
"name": "Общий_"
},
{
"useDownLimit": 0,
"downLimit": 0,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 7,
"price": 1,
"active": 1,
"id": 1000397,
"name": "раз",
"images": [ "" ]
},
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 1000398,
"name": "два",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 0,
"upLimit": 0,
"active": 1,
"id": 1000396,
"name": "Новая"
}
],
"item": [],
"active": 1,
"id": 1000384,
"code": 3,
"name": null
}
]
},
"ver": "1.1.7.4",
"timestamp": "2017-03-30T11:21:17",
"status": "Ok"
}
здесь:
dishes - список блюд
modifiers - список модификаторов
commonModifiers - список общих модификаторов (описание аналогично modifiers)
dishes - список блюд:
{
"price": 5000,
"modischeme": 1000384,
"recomended": [],
"active": 1,
"id": 1000016,
"guid": "{532EB43B-6661-4063-97BA-B5BBBDC1577F}",
"code": 4,
"name": "Пельмени",
"images": [
"img4.png",
"img4_1.png"
],
"locres": {
"ru": {
"name": "Пельмени сибирские",
"comment": "Пельмени сибирские",
"long_comment": "Домашние пельмени приготовленные вручную со свининой и говядиной, со сметаной"
},
"en": {
"name": "Pelmeni Sibirskie",
"comment": "Pelmeni Sibirskie",
"long_comment": "Russian home made pelmeni Sibirskie with pork and beef with sour cream"
}
}
}
здесь:
price - цена в копейках
modischeme - идентификатор схемы модификаторов
recomended - список рекомендованных блюд
active - блюдо активно (1), не активно (0)
id - идентификатор блюда
guid - GUID блюда
code - код блюда (берется из настроек справочников RK7)
name - наименование блюда
images - список наименований файлов изображений
locres - локализованные ресурсы
здесь:
name - локализованное наименование блюда
comment - короткий комментарий
long_comment - длинный комментарий
item - зарезервировано, сейчас не используется
modifiers - схемы модификаторов:
{
"pid": 0
"active": 1,
"id": 2007,
"code": 2007,
"name": null,
"group": [
{
"useDownLimit": 1,
"downLimit": 1,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 2003,
"name": "ЕГАИС EAN13",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 1,
"upLimit": 1,
"active": 1,
"id": 2001,
"name": "ЕГАИС EAN13"
},
{
"useDownLimit": 1,
"downLimit": 1,
"defaultModifier": 0,
"modi": [
{
"dishid": 0,
"maxOneDish": 1,
"price": 0,
"active": 1,
"id": 2004,
"name": "PDF417",
"images": [ "" ]
}
],
"replaceDefModifier": 0,
"useUpLimit": 1,
"upLimit": 1,
"active": 1,
"id": 2002,
"name": "PDF417"
}
]
}
здесь:
pid - идентификатор корневого узла (parent id). Используется для формирования древовидной структуры заказа, ссылается на идентификатор узла, к которому принадлежит данное блюдо или модификатор.
active - активная (1) /не активная схема (0)
id - идентификатор схемы
code - код схемы (берется из настроек справочников RK7)
name - наименование схемы
group - список групп модификаторов
id - идентификатор
name - наименование
useDownLimit - признак применения ограничения снизу (по количеству)
downLimit - минимальное количество модификатора для блюда
defaultModifier - идентификатор модификатора по умолчанию (поле dishid у модификаторов)
replaceDefModifier - замена модификатора по умолчанию (1 - да, 0 - нет). Задает поведение для интерфейса пользователя: если replaceDefModifier = 1, то надо установленный модификатор по умолчанию заменить на выбранный пользователем; если replaceDefModifier = 0, то выбранный пользователем модификатор надо добавить к заказу, не заменяя им модификатор по умолчанию.
useUpLimit - признак применения ограничения сверху (по количеству)
upLimit - максимальное количество модификатора для блюда
active - активная/не активная группа модификаторов
modi - список модификаторов в группе
dishid - если модификатор является комбокомпонентом - идентификатор блюда, иначе 0,
maxOneDish - максимальное количество на одно блюдо
price - цена модификатора
active - активный/не активный модификатор
id - идентификатор модификатора
name - наименование модификатора
images - список наименований файлов изображений
Сохранение заказа для нового клиента (POST)
Нового клиента можно создать с помощью API CRM. Другой способ- это указать данные о клиенте непосредственно в запросе на сохранение заказа. Во этом случае сервис Интернет-заказов автоматически сначала создаст запись о новом клиенте в CRM, а потом сохранит заказ для этого клиента. Оба способа сохранения заказов приведены ниже.
url = BaseUrl + 'savedeliveryorder'
В теле запроса JSON:
заказ на самовывоз
{
"objectid": 199994335,
"delivery_time": "2017-03-29T23:52:00",
"comment": " Оплата онлайн. Оплата через ASSIST",
"order_type": 0,
"pay_type": 2,
"client": {
"phone": "79996661010",
"email": "e.korsunov@ucs.ru",
"ln": "тестов",
"fn": "тест"
},
"order": [
{
"id": "1000039",
"type": "d",
"qnt": 1000,
"items": [
{
"id": 1000388,
"type": "m",
"qnt": 3000,
"items": []
},
{
"id": "100143",
"type": "dc",
"crm": true
}
]
},
{
"id": "101706",
"type": "dc",
"crm": true
}
]
}
заказ на доставку
{
"objectid": 199994335,
"delivery_time": "2016-10-14T13:43:00",
"comment": "Примечание к заказу Сдача с 500",
"order_type": 1,
"pay_type": 0,
"client": {
"phone": "79131112233",
"email": "ivan_ivanov@mail.com",
"ln": "Иванов Иван Иванович"
},
"address": {
"country": "Россия",
"city": "Воронеж",
"street": "Лизюкова",
"house": "20",
"building": "",
"entry": "",
"floor": "",
"apartments": "",
"lat": "55.776877",
"lon": "37.696391"
},
"order": [
{
"id": 1000418,
"type": "d",
"qnt": 1000,
"items": [
{
"id": 1000162,
"type": "m",
"qnt": 1000,
"items": []
},
{
"id": "100143",
"type": "dc",
"crm": true
}
]
},
{
"id": "101706",
"type": "dc",
"crm": true
}
]
}
заказ на доставку с комбоблюдом и модификаторами
{
"version_app": "0.4.7",
"objectid": 199994545,
"delivery_time": "2018-05-08T13:08:00",
"comment": "Опл: налич ",
"order_type": 1,
"pay_type": 0,
"client": {
"phone": "71111111111",
"email": "qw@com.com",
"ln": "иванов",
"fn": "иван"
},
"address": {
"country": "Россия",
"city": "москва",
"street": "большая почтовая",
"house": "18",
"building": "20",
"lat": "55.776031",
"lon": "37.6926"
},
"order": [
{
"id": "100720",
"type": "c",
"qnt": 2000,
"items": [
{
"id": 101763,
"type": "cc",
"qnt": 1000,
"items": [
{
"id": 102705,
"type": "m",
"qnt": 1000,
"items": []
}
]
},
{
"id": 101757,
"type": "cc",
"qnt": 1000,
"items": []
},
{
"id": 101769,
"type": "cc",
"qnt": 1000,
"items": [
{
"id": 100173,
"type": "m",
"qnt": 1000,
"items": []
}
]
},
{
"id": 101771,
"type": "cc",
"qnt": 1000,
"items": []
},
{
"id": 101779,
"type": "cc",
"qnt": 1000,
"items": []
}
]
}
]
}
здесь,
objectid - идентификатор объекта (обязательно)
delivery_time - дата и время доставки, в формате 'YYYY-MM-DDTHH:mm:ss' (обязательно)
comment - комментарий к заказу (не обязательно)
order_type - тип заказа: 0 - заказ на самовывоз, 1 - заказ на доставку (обязательно)
pay_type - тип оплаты: 0 - наличные курьеру, 1 - банковской картой курьеру, на заказ будет установлена блокировка (обязательно).
client - данные клиента
phone - номер телефона (обязательно)
email - электронная почта (не обязательно)
ln - фамилия (обязательно)
fn - имя (не обязательно)
mn - отчество (не обязательно)
address - адрес доставки (обязательно если заказ на доставку)
country - страна
city - город
street - улица
house - дом
building - строение
entry - подъезд
floor - этаж
apartments - квартира
order - состав заказа (список)
id - идентификатор блюда
type - тип. 'd' - блюдо, 'c' - комбоблюдо, 'cc' - компонент комбоблюда, 'm' - модификатор, dc- скидка на заказ
qnt - количество в тысячах (если 1 штука, то значение будет 1000)
crm - если поле есть и равно true, то кассовому серверу необходимо будет получить значение скидки из CRM (параметр применим только для type=«dc»).
items - список составляющих (модификаторов)
id - идентификатор
type - тип. «m» - модификатор, «d» - блюдо (если основное блюдо - это комбоблюдо), dc- скидка на блюдо
qnt - количество
items - список модификаторов/комбокомпонентов
crm - если поле есть и равно true, то кассовому серверу необходимо будет получить значение скидки из CRM (параметр применим только для type=«dc»).
Ответ
{
"data": {
"visit_id": "412747060",
"visit_guid": "{F60F10FA-7F09-450C-84F6-CA03580442B9}",
"table_name": "Дост",
"order_sum": "8350",
"unpaid_sum": "8350",
"discount_sum": "-439",
"seq_number": "5",
"dishes": [
{
"modi": [
{
"id": 1000388,
"guid": "{864866E8-013E-44D4-B55A-2B8D164D2459}",
"code": 14,
"name": "Третий",
"price": 1263,
"quantity": 3000
}
],
"id": "1000039",
"guid": "{9E3F46BF-D89D-49F8-A1AE-182479B3AF46}",
"code": "24",
"name": "Борщ",
"price": "5000",
"amount": "8350",
"quantity": "1000",
// скидки на блюдо
"discounts": [
{
"id": "100143",
"name": "15Праздничная"
}
]
}
],
// скидки на заказ
"discounts": [
{
"id": "101706",
"name": "20%"
},
{
"id": "100154",
"name": "1Дешевое мороженое"
}
],
"Payments": [
{
"id": 1,
"code": 1,
"name": "Рубли",
"guid": "{16D72549-14D8-4F31-9E2A-0A833D4F5EED}",
"amount": 19000
},
{
"id": 2,
"code": 22,
"name": "Евро",
"guid": "{2A426EA7-CA4A-482C-B74C-45347F18759F}",
"amount": 543
},
{
"id": 3,
"code": 3,
"name": "Доллар США",
"guid": "{D2DB2A5B-CB57-4626-AFB3-0851DCCA4724}",
"amount": 600
}
]
},
"ver": "1.1.7.4",
"timestamp": "2017-03-30T15:27:42",
"status": "Ok"
}
здесь
visit_id - идентификатор визита
visit_guid - GUID визита
table_name - номер / наименование стола (не используется)
order_sum - сумма заказа
unpaid_sum - сумма к оплате
discount_sum - сумма скидки
seq_number - порядковый номер заказа
dishes - содержимое заказ
id - идентификатор блюда
guid - GUID блюда
code - код блюда
name - наименование блюда (основное наименование из RK7, не локализованное)
price - цена (в копейках)
amount - сумма (в копейках)
quantity - количество (в тысячах)
modi - модификаторы
discounts - скидки на блюдо
discounts - скидки на заказ
id - идентификатор скидки
name - наименование скидки (основное наименование из RK7, не локализованное)
Payments - сумма к оплате с учетом всех скидок
id- идентификатор валюты
code - код валюты
name - наименование валюты
guid - GUID валюты
amount - сумма к оплате в данной валюте
Результат данного запроса зависит от настройки "режим геокодирования" в панели администратора.
Сохранение заказа для существующего клиента (POST)
url = BaseUrl + 'savedeliveryorder?objectId=<номер объекта>'
В теле запроса JSON:
{
"version_app": "0.4.7",
"delivery_time": "2018-09-27T13:32:00",
"comment": "Опл: налич ",
"order_type": 0,
"pay_type": 0,
"pay_online_type": "",
"client": {
"id": "10000000009188",
"phone": "+79998887766"
},
"address": {
"id": "10000000003276"
},
"order": [
{
"id": "101757",
"type": "d",
"qnt": 4000,
"items": []
}
]
}
здесь,
delivery_time - дата и время доставки, в формате 'YYYY-MM-DDTHH:mm:ss' (обязательно)
comment - комментарий к заказу (не обязательно)
order_type - тип заказа: 0 - заказ на самовывоз, 1 - заказ на доставку (обязательно)
pay_type - тип оплаты: 0 - наличные курьеру, 1 - банковской картой курьеру, на заказ будет установлена блокировка (обязательно).
client - данные клиента
id - идентификатор клиента из CRM
phone- номер телефона, который будет прописан в заказе (например, если у клиента несколько номеров). Необязательный параметр
address - адрес доставки (обязательно если заказ на доставку)
id -идентификатор адреса доставки из CRM
order - состав заказа (список)
id - идентификатор блюда
type - тип. 'd' - блюдо, 'c' - комбоблюдо, 'cc' - компонент комбоблюда, 'm' - модификатор
qnt - количество в тысячах (если 1 штука, то значение будет 1000)
items - список составляющих (модификаторов)
id - идентификатор
type - тип. «m» - модификатор, «d» - блюдо (если основное блюдо - это комбоблюдо), «dc» - скидка на блюдо
qnt - количество
items - список модификаторов/комбокомпонентов
crm - флаг того, что эта скидка из CRM (применимо для type=«dc»)
discounts - скидка на заказ
id - идентификатор скидки
crm - флаг того, что эта скидка из CRM
Ответ
Ответ такой же, как в разделе «Сохранение заказа для нового клиента».
Примечание Результат данного запроса зависит от настройки "режим геокодирования" в панели администратора.
Расчет суммы к оплате с учётом скидок в разных валютах (POST)
url = BaseUrl + 'CalcOrder'
В теле запроса передается точно такое содержимое, что и в запросе SaveDeliveryOrder.
Ответ:
{
"data": {
"Payments": [
{
"id": 1,
"code": 1,
"name": "Рубли",
"guid": "{16D72549-14D8-4F31-9E2A-0A833D4F5EED}",
"amount": 19000
},
{
"id": 2,
"code": 22,
"name": "Евро",
"guid": "{2A426EA7-CA4A-482C-B74C-45347F18759F}",
"amount": 543
},
{
"id": 3,
"code": 3,
"name": "Доллар США",
"guid": "{D2DB2A5B-CB57-4626-AFB3-0851DCCA4724}",
"amount": 600
}
]
},
"ver": "1.1.15.15",
"timestamp": "2018-10-03T15:26:02",
"status": "Ok",
"requestId": "4925c8c968834372a0cbaa7be99e4106"
}
здесь
id- идентификатор валюты
code - код валюты
name - наименование валюты
guid - GUID валюты
amount - сумма к оплате в данной валюте
В списке валют возвращаются только те валюты, для которых задано расширенное свойство ForDelivery=1.
Результат данного запроса зависит от настройки "режим геокодирования" в панели администратора.
Проводка оплаты заказа (POST)
url = BaseUrl + 'payment'
В теле запроса:
{
"object_id": 199990001,
"visit_id": 411765152,
"payments": [
{
"currency_id": 1000379,
"extpay_id": "ASSIST",
"amount": 62718,
"promised": true
}
]
}
здесь:
object_id - код объекта
visit_id - идентификатор визита
payments
currency_id - идентификатор валюты в rk7
extpay_id - информация о внешней транзакции, сохраняется в RK7 в поле ExtTransactionInfo
amount - сумма оплаты в копейках (базовые единицы измерения)
promised - тип платежа (значение true- обещанный платеж; false- предоплата)
Результат данного запроса зависит от настройки "режим геокодирования" в панели администратора.
Получение данных по оформленному заказу с координатами курьера (GET)
url = BaseUrl + courier?objectId=<objectId>&visitId=<visitId>
здесь:
objectId - номер объекта (ресторана) в котором оформлен заказ
visitId - номер заказа
Ответ без координат курьера:
{
"data": {
"object_id": <objectId>,
"visit_id": <visitId>,
"courier_location": null,
"dlvStateID": 0,
"DlvStateName": "не подтвержден"
},
"ver": "1.1.14.12",
"timestamp": "2018-10-09T12:10:00",
"status": "Ok",
"requestId": "a6ecbf6a35a54ccd984bd9a05999868f"
}
здесь:
object_id - номер объекта (ресторана) в котором оформлен заказ
visit_id - номер заказа
courier_location - текущее местоположение курьера
dlvStateID - статус заказа. Может принимать значение:
0: неподтверждённый
1: новый подтверждённый заказ
2: в готовке
3: отправлен
4: доставлен
5: выполнен (архив)
6: заказ редактируется
7: готов (приготовлен на кухне, готов к отправке)
8: подтверждён (используется, если включено подтверждение заказов)
DlvStateName - наименование статуса заказа. Может принимать значение
«не подтвержден»,
«принят в работу»,
«готовится»,
«отправлен с экспедитором»,
«доставлен»,
«в архиве»,
«редактируется»,
«готов к отправке»,
«подтвержден исполняющим рестораном»
Ответ с координатами курьера:
{
"data": {
"object_id": <objectId>,
"visit_id": <visiId>,
"courier_location": {
"lon": <longitude>,
"lat": <latitude>,
},
"dlvStateID": 0,
"DlvStateName": "не подтвержден"
},
"ver": "1.1.14.12",
"timestamp": "2018-10-09T12:10:00",
"status": "Ok",
"requestId": "a6ecbf6a35a54ccd984bd9a05999868f"
}
Получение информации по заказу (GET)
url = BaseUrl + 'Order?objectId=<идентификатор объекта>&visitId=<номер заказа>'
Ответ:
{
"data": {
"visit_id": 449382195,
"visit_guid": "{13EC8EDF-F1B8-4C6D-830E-C94CC165F40E}",
"table_name": "D44",
"order_sum": 19000,
"unpaid_sum": 19000,
"prepay_sum": 0,
"promised_sum": 0,
"discount_sum": -1000,
"seq_number": "72",
"dishes": [
{
"modi": [],
"id": "101757",
"guid": "{6A57F1BB-2EAD-4432-A21C-D51B841E479B}",
"code": "31",
"name": "Голубцы",
"price": "5000",
"amount": "19000",
"quantity": "4000",
"discounts": [
{
"id": "100143",
"name": "15Праздничная"
}
]
}
],
"discounts": [
{
"id": "101706",
"name": "20%"
},
{
"id": "100154",
"name": "1Дешевое мороженое"
}
],
"travel_time": 60,
"DeliveryBlock": {
"DeliveryState": "4",
"StartTime": "2018-10-10T17:42:26",
"MinCookTime": "1899-12-30T00:30:00"
}
},
"ver": "1.1.15.16",
"timestamp": "2018-10-10T17:44:37",
"status": "Ok",
"requestId": "152c1c190de446e5b37ef9e6f073d393"
}
Формат запроса соответствует тому, что возвращает запрос SaveDeliveryOrder за исключением информации о суммах к оплате (секция Payments).
Получение списка валют (GET)
url = BaseUrl + 'Currency?objectId=<идентификатор объекта>'
Ответ:
{
"data": [
{
"curid": 1,
"name": "Рубли",
"promised": ""
},
{
"curid": 2,
"name": "Евро",
"promised": ""
},
{
"curid": 3,
"name": "Доллар США",
"promised": ""
},
{
"curid": 1000033,
"name": "Купон на бар",
"promised": ""
},
{
"curid": 1000221,
"name": "Бесплатно",
"promised": ""
}
],
"ver": "1.3.0.32",
"timestamp": "2019-12-27T16:32:22",
"status": "Ok",
"requestId": "d2dc73ea861d43de82abde031aa67477"
}
Здесь
curid - идентификатор валюты;
name - наименование валюты;
promised - значение расширенного свойства genPromised;
Список валют для интернет-заказов фильтруется с помощью расширенного свойства genForDelivery, установленного для каждой валюты. Если genForDelivery=1, то валюта попадет в результирующий список.
Данный запрос является кэшируемым. Время обновления кэша- 5 минут.