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 Методы Ответы и коды ошибок Данные Версия API Базовый адрес протокола https 0 https://api.iiko.net:9900 Методы Последняя колонка указывает особые условия для поля: * - обязательное поле Аутентификация и авторизация Базовый адрес сервиса: /api/0/auth Все методы данного сервиса работают по протоколу https. Получить маркер доступа Проверка маркера доступа Получить маркер доступа Маркер доступа выдается на фиксированный интервал времени. По умолчанию это - 15 минут. Логин и пароль на доступ к платформе и ее сервисам выдаются компанией iiko в ручном режиме. Впоследствии эта процедура будет автоматизирована. /api/0/auth/access_token?user_id={user_id}&user_secret={user_secret} Метод HTTP GET Параметры 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={requestTime out} Метод 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} Один запрос возвращает информацию как о группах, так и о продуктах. Ревизия одна на все дерево продуктов. Метод возвращает: 1. полное дерево продуктов, если в нем были изменения, 2. 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={requ estTimeout} Метод 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) Описание акции Идентификатор акции * organizationId Guid Идентификатор организации * name string Название акции * description string Подробности акции * url string Ссылка на акцию для того, чтобы положить ее в “кошелек”. * Платформа автоматически добавляет в URL параметр partner_id=guid равный ИД партнера, запросившего информацию об акции.1 start DateTime Начало акции. Не задано - либо отсутствует, либо определяется другими механизмами. end DateTime Окончание акции. Не задано - либо отсутствует, либо определяется другими механизмами. imageUrl string id Guid Ссылка на картинку одного из блюд в акции ContactInfo (2.6.1) Контактная информация. phone string Телефон location string Адрес email string Адрес электронной почты При реализации акции - при оплате заказа, это значение сохраняется в заказ iikoNet. В текущей реализации - для справки - URL открывает страницу с пользовательским интерфейсом iikoNet для добавления акции в кошелек пользователя. 1