API
Методы
Аутентификация и авторизация
Получить маркер доступа
Проверка маркера доступа
Организации (2.6.1)
Получение списка организаций
Получение информации о заданной организации
Номенклатура (меню)
Получить дерево номенклатуры
Получить картинку (изображение продукта)
Заказы
Создание заказа
Информация о заказе
Акции (2.6.1)
Получение списка акций в заданной организации
Ответы и коды ошибок
Внутренние ошибки сервера
Данные
Простые типы
DateTime
Date
Time
TimeSpan
Составные типы
Group
Product
Modifer
Address
OrderRequest
Order
OrderItem
OrderItemModifier
Customer
OrderInfo
OrganizationInfo (2.6.1)
SpecialInfo (2.6.1)
ContactInfo (2.6.1)
API
Методы
Ответы и коды ошибок
Данные
Базовый адрес протокола https
|
https://api.iiko.net:9900
|
Методы
Последняя колонка указывает особые условия для поля:
* - обязательное поле
Аутентификация и авторизация
Базовый адрес сервиса: /api/0/auth
Все методы данного сервиса работают по протоколу https.
Получить маркер доступа
Проверка маркера доступа
Получить маркер доступа
Маркер доступа выдается на фиксированный интервал времени. По умолчанию это - 15 минут.
Логин и пароль на доступ к платформе и ее сервисам выдаются компанией iiko в ручном режиме. Впоследствии эта процедура будет автоматизирована.
/api/0/auth/access_token?user_id={user_id}&user_secret={user_secret}
Параметры
user_id
|
string
|
Идентификатор клиента
|
*
|
user_secret
|
string
|
Пароль клиента
|
*
|
Ответ
|
string
|
Маркер доступа, используемый для авторизации в службах iikoNet
|
Пример
https://iiko.net/api/0/auth/access_token?user_id=client&user_secret=secret
Проверка маркера доступа
Внимание: использовать только при разработке. Нельзя использовать в поставляемой версии, так как метод может быть удален в любой момент.
/api/0/auth/echo?msg={msg}&access_token={accessToken}
Параметры
msg
|
string
|
Сообщение
|
*
|
accessToken
|
string
|
Маркер доступа
|
*
|
Ответ
|
string
|
Сообщение, или “Wrong access token”, если маркер доступа не прошел проверку.
| Организации (2.6.1)
Все методы этого сервиса работают по протоколу https.
Интерфейс предназначен для получения списка организаций с названиями, описаниями, логотипами, контактной информацией, адресом. Предполагаемый сценарий использования - интеграция с внешними системами, отображающими организации с доп. информацией на картах, в списках и т.п.
Получение списка организаций
/api/0/organization/list?access_token={accessToken}&request_timeout={requestTimeout}
Метод HTTP
|
GET
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
requestTimeout
|
TimeSpan
|
Таймаут для выполнения запроса. Указывает на время обработки запроса на серверный стороне, не учитывая транспортные задержки.
|
|
Ответ
OrganizationInfo[]
|
Информация о организациях.
|
Пример
{
{ "organizationId":"1721531da-7ed5-4cf8-3ad1f-370031d2e6b1",
“name”:”ArteFAQ”, … },
{ "organizationId":"1721531da-7ed5-4cf8-3ad1f-370031d2e6b2",
“name”:”DeFAQto”, … }
}
Получение информации о заданной организации
Возвращает поля-описатели организации
/api/0/organization/organizationId?access_token={accessToken}&request_timeout={requestTimeout}
Метод HTTP
|
GET
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
organizationId
|
Guid
|
Идентификатор организации
|
*
|
requestTimeout
|
TimeSpan
|
Таймаут для выполнения запроса. Указывает на время обработки запроса на серверный стороне, не учитывая транспортные задержки.
|
|
Ответ
OrganizationInfo
|
Информация о организации
|
Пример
{
"organizationId":"1721531da-7ed5-4cf8-3ad1f-370031d2e6b1",
“name”:”ArteFAQ”,
“description”:”Greate place to socialize and meet with ladies”,
“location”:”Moscow-somewhere (ask google for geolocation and route)”
}
Номенклатура (меню)
Все методы этого сервиса работают по протоколу https.
Получить дерево номенклатуры
Получить картинку (изображение продукта)
Получить дерево номенклатуры
/api/0/nomenclature/organizationId?revision={revision}
Один запрос возвращает информацию как о группах, так и о продуктах. Ревизия одна на все дерево продуктов. Метод возвращает:
-
полное дерево продуктов, если в нем были изменения,
-
null, если переданная ревизия является актуальной.
Метод HTTP
|
GET
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
organizationId
|
Guid
|
Идентификатор организации
|
*
|
revision
|
long
|
Ревизия
|
|
Ответ
groups
|
Group[]
|
Группы
|
products
|
Product[]
|
Продукты
|
revision
|
long
|
Ревизия
|
Пример
{
"groups": [
{
"code": null,
"description": null,
"id": "9fa0dd9a-03f3-4d27-b74a-500000000002",
"name": "Закуски",
"order": 0,
"parentGroup": "9fa0dd9a-03f3-4d27-b74a-500000000001",
"imageId": null
},
{
"code": null,
"description": null,
"id": "9fa0dd9a-03f3-4d27-b74a-500000000001",
"name": "Основное меню",
"order": 0,
"parentGroup": null,
"imageId": null
}
],
"products": [
{
"code": null,
"description": null,
"id": "9fa0dd9a-03f3-4d27-b74a-000000000003",
"name": "Рыба в кляре",
"carbohydrateAmount": null,
"energyAmount": null,
"fatAmount": null,
"fiberAmount": null,
"groupdId": null,
"groupModifiers": [
],
"modifiers": [
],
"price": 0.00000,
"type": "dish",
"weight": null,
"imageId": null,
"isIncludedInMenu": true,
"order": 1,
"parentGroup": null
},
{
"code": null,
"description": null,
"id": "9fa0dd9a-03f3-4d27-b74a-000000000001",
"name": "bread",
"carbohydrateAmount": null,
"energyAmount": null,
"fatAmount": null,
"fiberAmount": null,
"groupModifiers": [
],
"modifiers": [
{
"maxAmount": 1,
"minAmount": 0,
"modifierId": "9fa0dd9a-03f3-4d27-b74a-000000000002"
}
],
"price": 10.00000,
"type": "good",
"weight": null,
"imageId": null,
"isIncludedInMenu": true,
"order": 0,
"parentGroup": "9fa0dd9a-03f3-4d27-b74a-500000000002"
},
{
"code": null,
"description": null,
"id": "9fa0dd9a-03f3-4d27-b74a-000000000002",
"name": "butter",
"carbohydrateAmount": null,
"energyAmount": null,
"fatAmount": null,
"fiberAmount": null,
"groupModifiers": [
],
"modifiers": [
],
"price": 0.00000,
"type": "modifier",
"weight": null,
"imageId": null,
"isIncludedInMenu": false,
"order": 0,
"parentGroup": null
}
],
"revision": 13985090
}
Получить картинку (изображение продукта)
/api/0/images/imageId.jpg
Возвращает картинку по ее идентификатору.
Метод HTTP
|
GET
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
imageId
|
Guid
|
Идентификатор картинки
|
*
|
Ответ
Картинка.
Заказы
Создание\редактирование заказа
Информация о заказе
Создание/Изменение заказа
/api/0/orders/add?access_token={accessToken}&request_timeout={requestTimeout}
При создании заказа предполагается, что идентификатор задается клиентом. Если идентификатор корректен, то заказ создается с ним. Если идентификатор не корректен, то возвращается ошибка.
Идентификатор пользователя позволяет выбрать уже зарегистрированного пользователя или создать нового. Если идентификатор не корректен, то возвращается ошибка.
Метод HTTP
|
POST
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
orderRequest
|
OrderRequest
|
Запрос на создание заказа
|
*
|
requestTimeout
|
TimeSpan
|
Таймаут для выполнения запроса. Указывает на время обработки запроса на серверный стороне, не учитывая транспортные задержки.
|
|
Ответ
orderInfo
|
OrderInfo
|
Информация о заказе
|
Пример
{
"restaurantId":"1721531da-7ed5-4cf8-3ad1f-370031d2e6b1",
"customer":{"id":"88529d26-efa5-48e2-af5e-96c245f62d26", "name":"Client", "phone":"Phone"},
"order":
{
"id":"76da34ed-7952-49e3-a2fa-4a0283d510b8",
"phone":"Phone",
"address":{"street":"Street-1", "home":"1"},
"date":"2011-09-20 18:30:00",
"items": [
{
"id":"040adebb-695a-4687-93bc-4ad30b370b83",
"name":"Пицца",
"amount":"1",
"modifiers":[
{
"id": "8a5b6dce-c5d1-4932-9c61-073b3dd57645",
"name":"Топпинг",
"amount":"3",
"groupId":"35e3d0c0-cb19-4bf1-b760-fe8c0061f4d1",
"groupName":"Топпинги для пиццы"
}
]
}
]
}
}
Информация о заказе
/api/0/orders/info?access_token={accessToken}&restaurant={restaurantId}&order={orderId}&
request_timeout={requestTimeout}
Получение информации о предварительно созданном заказе.
Метод HTTP
|
GET
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
restaurantId
|
string
|
Идентификатор ресторана
|
*
|
orderId
|
string
|
Идентификатор заказа
|
*
|
requestTimeout
|
TimeSpan
|
Таймаут для выполнения запроса. Указывает на время обработки запроса на серверный стороне, не учитывая транспортные задержки.
|
|
Ответ
orderInfo
|
OrderInfo
|
Информация о заказе
| Акции (2.6.1)
Все методы этого сервиса работают по протоколу https.
Получение списка акций в заданной организации
/api/0/organization/organizationId/specials?access_token={accessToken}&request_timeout={requestTimeout}
Метод HTTP
|
GET
|
Аутентификация
|
обязательная
|
Параметры
accessToken
|
string
|
Маркер доступа
|
*
|
organizationtId
|
Guid
|
Идентификатор организации
|
*
|
requestTimeout
|
TimeSpan
|
Таймаут для выполнения запроса. Указывает на время обработки запроса на серверной стороне, не учитывая транспортные задержки.
|
|
Ответ
orderInfo
|
SpecialInfo[]
|
Информация об электронных флаерах и суммовых скидках, действующих в данной организации
|
Пример
Ответы и коды ошибок
Для индикации результата запроса используется HTTPстатус. Частые статусы:
200 (OK)
|
Выполнено без ошибок
|
400 (Bad Request)
|
Ошибка в параметрах запроса
|
401 (Unauthorized)
|
Ошибка авторизации
|
403 (Forbidden)
|
Запрошенная информация недоступна с указанными данными авторизации
|
404 (Not Found)
|
Указанный URI или ресурс не существует
|
408 (Request Timeout)
|
Время ожидания для выполнения запроса истекло
|
500 (Internal Server Error)
|
Внутренняя ошибка сервера.
|
Дополнительные данные об ошибке могут указываться в параметре errorType.
Внутренние ошибки сервера
В качестве внутренних ошибок сервера с кодом 500 (Internal Server Error) в параметре errorType могут возвращаться следующие значения.
Что проверяем
|
Суть проблемы
|
Код ошибки iiko
|
Сообщение.
|
id ресторана
|
Ресторан должен быть зарегистрирован.
|
101
|
Неизвестный код ресторана ХХХХХХХХХХ.
|
Точка приготовления
|
У заказа уже назначена точка приготовления.
|
102
|
Заказ уже обрабатывается на точке.
|
Имя клиента
|
Задано пустое имя клиента или имя клиента состоит только из пробелов.
|
103
|
Задано пустое имя клиента.
|
Блюдо
|
Отсутствует в продаже
|
104
|
Блюдо ХХХХХХХХХХ запрещено к продаже.
|
Блюдо
|
Неизвестный GUID
|
105
|
Неизвестный код блюда ХХХХХХХХХ.
|
Блюдо
|
К блюду не применены обязательные модификаторы
|
106
|
К блюду ХХХХХХХХХХХ применены не все обязательные модификаторы.
|
Модификатор
|
Отсутствует в продаже
|
107
|
Модификатор ХХХХХХХХХХ запрещен к продаже.
|
Модификатор
|
Неизвестный GUID
|
108
|
Неизвестный код модификатора ХХХХХХХХХ
|
Модификатор
|
Не применим к указанному основному блюду
|
109
|
Модификатор ХХХХХХХХХХХ не может продаваться с блюдом YYYYYYYYYY.
|
Модификатор
|
Не соблюдаются min/max настройки для одиночного модификатора.
|
110
|
Количество модификатора XXXXXXXXXX не соответствует настройкам минимума/максимума (XX/YY).
|
Модификатор
|
Не соблюдаются min/max настройки группы для группового модификатора.
|
111
|
Количество группового модификатора ХХХХХХХХХХ не соответствует настройкам минимума/максимума для группы ZZZZZZZZZ (XX/YY).
|
Модификатор
|
Для группового модификатора не задана группа или задана несуществующая.
|
112
|
У группового модификатора ХХХХХХХХХХХХ некорректно задана группа.
|
Концепция
|
Указана несуществующая концепция
|
113
|
Концепция ХХХХХХХ не определена.
|
Состав заказа
|
Пустой заказ
|
203
|
Невозможно создать/изменить заказ без позиций.
|
Телефон клиента
|
Пустой номер телефона
|
206
|
Невозможно создать/изменить заказ, телефонный номер клиента пуст.
|
Данные Простые типы DateTime
Дата и время.
Строка в формате “YYYY-MM-DD hh:mm:ss”, где
YYYY - год;
MM - месяц (начиная с 1 - январь);
DD - день;
hh - час (от 00 до 23);
mm - минута (от 00 до 59);
ss - секунда (от 00 до 59).
Date
Дата.
Строка в формате “YYYY-MM-DD”, где
YYYY - год;
MM - месяц (начиная с 1 - январь);
DD - день.
Time
Время.
Строка в формате “hh:mm:ss”, где
hh - час (от 00 до 23);
mm - минута (от 00 до 59);
ss - секунда (от 00 до 59).
TimeSpan
Период времени.
Строка в формате “hh:mm:ss”, где
hh - часы;
mm - минуты;
ss - секунды.
Составные типы
Последняя колонка указывает особые условия для поля:
* - обязательное поле
Group
Группа
id
|
Guid
|
Уникальный идентификатор
|
|
name
|
string
|
Название
|
|
code
|
string
|
Артикул
|
|
description
|
string
|
Описание
|
|
order
|
int
|
Порядок отображения
|
|
parentGroup
|
Guid
|
Родительская группа
|
|
imageId
|
Guid
|
Идентификатор картинки
|
|
isIncludedInMenu
|
bool
|
Нужно ли группу отображать в дереве номенклатуры
|
| Product
Продукт
id
|
Guid
|
Уникальный идентификатор
|
|
name
|
string
|
Название
|
|
code
|
string
|
Артикул
|
|
description
|
string
|
Описание
|
|
order
|
int
|
Порядок отображения
|
|
parentGroup
|
Guid
|
Родительская группа
|
|
imageId
|
Guid
|
Идентификатор картинки
|
|
groupId
|
Guid
|
Идентификатор группы
|
|
price
|
decimal
|
Цена
|
|
carbohydrateAmount
|
decimal
|
Количество углеводов
|
|
energyAmount
|
decimal
|
Энергетическая ценность
|
|
fatAmount
|
decimal
|
Количество жиров
|
|
fiberAmount
|
decimal
|
Количество белков
|
|
weight
|
decimal
|
Вес одной единицы в кг
|
|
type
|
string
|
Тип:
-
dish - блюдо
-
good - товар
-
modifier - модификатор
|
|
isIncludedInMenu
|
bool
|
Нужно ли продукт отображать в дереве номенклатуры
|
|
modifiers
|
Modifer[]
|
Одиночные модификаторы
|
|
groupModifiers
|
Modifer[]
|
Групповые модификаторы
|
| Modifer
Модификатор
modifierId
|
Guid
|
Идентификатор модификатора. Идентификатор продукта для одиночного модификатора и идентификатор группы - для группового.
|
*
|
maxAmount
|
int
|
Максимальное количество модификатора
|
|
minAmount
|
int
|
Минимальное количество модификатора
|
|
Address
Адрес
street
|
string
|
Улица
|
*
|
home
|
string
|
Дом
|
*
|
housing
|
string
|
Корпус
|
|
apartment
|
string
|
Квартира
|
|
comment
|
string
|
Дополнительная информация
|
| OrderRequest
restaurantId
|
string
|
Идентификатор ресторана
|
*
|
customer
|
Customer
|
Заказчик
|
*
|
order
|
Order
|
Заказ
|
*
|
Order
Заказ
id
|
Guid
|
Идентификатор заказа
|
*
|
phone
|
string
|
Контактный телефон
|
|
address
|
Address
|
Адрес доставки заказа
|
|
date
|
DateTime
|
Дата выполнения заказа
|
|
conception
|
string
|
Концепция
|
|
items
|
OrderItem[]
|
Элементы заказа
|
|
comment
|
string
|
Комментарий к заказу
|
| OrderItem
Элемент заказа
id
|
Guid
|
Идентификатор продукта
|
*
|
name
|
string
|
Название продукта
|
*
|
amount
|
decimal
|
Количество
|
*
|
modifiers
|
OrderItemModifier[]
|
Модификаторы
|
| OrderItemModifier
Модификатор элемента заказа
id
|
Guid
|
Идентификатор продукта
|
*
|
name
|
string
|
Название продукта
|
*
|
amount
|
decimal
|
Количество
|
*
|
groupId
|
Guid
|
Идентификатор группы в случае группового модификатора
|
|
groupName
|
string
|
Имя группы в случае группового модификатора
|
| Customer
Заказчик
id
|
Guid
|
Идентификатор
|
*
|
name
|
string
|
Имя
|
|
phone
|
string
|
Телефонный номер
|
| OrderInfo
Описание заказа
orderId
|
Guid
|
Идентификатор заказа
|
*
|
customerId
|
Guid
|
Идентификатор заказчика
|
|
restaurantId
|
string
|
Идентификатор ресторана
|
|
sum
|
decimal
|
Сумма заказа
|
|
discount
|
decimal
|
Сумма скидки
|
|
number
|
string
|
Понятный номер заказа. Может использоваться для передачи клиенту. Уникальность не гарантирована (может быть уникальным в рамках одного обслуживающего сервера).
|
|
status
|
string
|
Статус заказа. Варианты значения для доставки:
-
Новая
-
Ждет отправки
-
В пути
-
Доставлена
-
Отменена
|
| OrganizationInfo (2.6.1)
Описание организации (Ресторан, AЗС, Гостиница, ...)
id
|
Guid
|
Идентификатор организации
|
*
|
name
|
string
|
Название организации(не юр. лицо)
|
*
|
description
|
string
|
Описание органиации данное владельцем
|
|
logo
|
string
|
Ссылка на изображение с логотипом организации.
|
|
contact
|
ContactInfo
|
Контактная информация в свободной форме.
|
|
homePage
|
string
|
Домашняя страница
|
|
SpecialInfo (2.6.1)
Описание акции
id
|
Guid
|
Идентификатор акции
|
*
|
organizationId
|
Guid
|
Идентификатор организации
|
*
|
name
|
string
|
Название акции
|
*
|
description
|
string
|
Подробности акции
|
*
|
url
|
string
|
Ссылка на акцию для того, чтобы положить ее в “кошелек”. Платформа автоматически добавляет в URL параметр partner_id=guid равный ИД партнера, запросившего информацию об акции.1
|
*
|
start
|
DateTime
|
Начало акции. Не задано - либо отсутствует, либо определяется другими механизмами.
|
|
end
|
DateTime
|
Окончание акции. Не задано - либо отсутствует, либо определяется другими механизмами.
|
|
imageUrl
|
string
|
Ссылка на картинку одного из блюд в акции
|
|
ContactInfo (2.6.1)
Контактная информация.
phone
|
string
|
Телефон
|
|
location
|
string
|
Адрес
|
|
email
|
string
|
Адрес электронной почты
|
|
Достарыңызбен бөлісу: |