Организации 6



Дата14.06.2016
өлшемі283.5 Kb.
#135085
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

0




Базовый адрес протокола 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}


Метод 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={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}

Один запрос возвращает информацию как о группах, так и о продуктах. Ревизия одна на все дерево продуктов. Метод возвращает:


  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={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

Адрес электронной почты







1 При реализации акции - при оплате заказа, это значение сохраняется в заказ iikoNet.

В текущей реализации - для справки - URL открывает страницу с пользовательским интерфейсом iikoNet для добавления акции в кошелек пользователя.




Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет