Введение

В статье описан White Server API v2

Обратите внимание

Интеграция платная. Для ее использования требуется купить лицензию.

Авторизация

Для авторизации используется токен. Для того, чтобы получить токен необходимо:

  1. Отправить запрос на интеграцию по адресу integrations@rkeeper.ru. В запросе укажите, что вы являетесь агрегатором, реквизиты, краткое описание сервиса и есть ли тестовый стенд.
  2. Получить ключ авторизации для White Server API.
Передавать токен необходимо в заголовке AggregatorAuthentication.

Общее описание

Мы используем JSON-RPC. Запросы осуществляются с помощью HTTP методом POST.

Название вызываемого метода передается в теле запроса. Сервер возвращает ответ с http статус 200 Ok.

POST https://{{serverName}}/wsserverlp/api/v2/aggregators/Create
{
   "taskType": "название метода"
}

Где serverNamews.ucs.ru 

Все json запросы должны быть в кодировке UTF-8.

Существует несколько типов запросов:

Тип запросаКак работает?Пример команды
CинхронныйHTTP Response непосредственно возвращает результат команды
АсинхронныйHTTP Response возвращает taskGuid (идентификатор команды)
Сценарий:
1) Агрегатор отправляет команду на Whiteserver, в ответе приходит taskGuid.
2) Whitesever пересылает запрос в ресторан.
3) После выполнения результат приходит на WhiteServer.
4) Агрегатор может получить результат с WhiteServer двумя способами a) Запросить командой GetTaskResponse (указав taskGuid) b) Подключиться к очереди команд Whiteserver по long polling и ожидать поступление ответов по командам (ответ содержит taskGuid)
GetStopList, GetOrderState

Ответ на асинхронный запрос можно получить 2 способами:

  1. методом GetTaskResponse - получаете ответ по taskGuid

  2. через запрос к очереди сообщений

Описание методов

Описание общих параметров запросов к Whiteserver

Параметр

Тип

Обязательный

Описание

Значение

async
-Асинхронный вызов метода. Допустимо использовать один из: синхронный, либо асинхронный
objectIdintдаКод ресторана в системе лицензированияПрисутствует во всех методах, кроме GetAgentList
sync
-Синхронный вызов метода (допустимо использовать один из: синхронный, либо асинхронный)
systemNamestringнетУказание конкретной подключенной системы для которой выполняется запросПрисутствует во всех методах, кроме GetAgentList
timeoutint-Время ожидания ответа от агента в секундахпо умолчанию 120 секунд,
максимальное 180 секунд

Меню, стоп-лист

Запрос

Описание

GetMenuПолучить меню
UpdateMenuЗапрос обновления меню вне расписания
GetStopListПолучить стоп лист из ресторана
GetMenuByParamsЗапрос получения меню от агента
PushDishSettingsЗапрос на редактирование параметров блюда
PushMenuSelectorsЗапрос на сохранение селекторов меню (новых категорий и распределенных блюд по ним)
SetAlcoholCodesУстановка кодов алкоголя (AlcoholCodes) для блюд
SetGlobalTradeItemNumbersУстановка GTIN для блюд

Заказ

ЗапросОписание
GetOrderПолучить заказ
GetOrderStateПолучить статус заказа
CancelOrderОтменить заказ
CreateOrderСоздать заказ
PayOrderОплата заказа
CompleteOrderЗавершить заказ
AddPrepayOrderДобавляет предоплату в указанном заказе
RemovePrepayOrderУдаляет предоплаты в указанном заказе
GetOrderList

Запрос списка заказов с кассового сервера.

Запрос доступен, только если есть разрешение в настройках ресторана в WsAdmin

PatchOrder

Изменение полей заказа без изменения состава заказа

PrintBill

Печать пречека

UndoBill

Отмена пречека

UpdateOrder

Обновить состав заказа в ресторане по идентификатору заказа и objectId

ValidateOrder

Валидация и расчет стоимости заказа в ресторане

Рестораны

ЗапросОписание
GetAgentInfo

Получение информации по агенту, установленному в ресторане

GetRestaurantAgents

Получить список агентов имеющих роли на ресторане

GetRestaurantConfigЗапрос метаданных для настройки ресторана
GetRestaurantInfoПолучить информацию по ресторану
GetRestaurantSystemsПолучить список подключенных на ресторане систем
GetTableListВозвращает список столов в ресторане
GetVoidReasonsВозвращает список доступных причин отмены заказа
GetEmployeesЗапрос получения списка сотрудников
SetEmployeeЗапрос на обновление данных о сотруднике или на добавление данных о новом сотруднике
RemoveEmployeeЗапрос на удаление данных о сотруднике

Интеграция с Store House

ЗапросОписание
ShDocDashingReportСоздание расходной накладной
ShDelDocDashingReport

Удаление расходной накладной

ShDocReceivingReportСоздание приходной накладной
ShDelDocReceivingReportУдалении приходной накладной
ShGetCorrsПолучение списка корреспондентов
ShGetGoodGroupsПолучение списка товаров и групп товаров
ShGetGoodsПолучение списка товаров
ShGetMUnitsПолучение единиц измерения
ShGetStoresПолучение списка складов
ShRepBillOfBalance

Запрос отчета «Ведомость остатков»

ShAlcListPrepare

Получение cписка технологических карт по алкоголю

ShAlcMenuPrepare

Получение технологических карт по алкоголю для меню

ShExecuteProcedure

Выполнить процедуру Store House из списка разрешенных

ShGetReceivingReports

Получение списка приходных накладных за период

Reporting (Только для агрегатора "RkReports")

Запрос

Описание

CreateOrUpdateSqlProcСоздает или обновляет указанную процедуру в базе
IsSqlProcExistПроверяет создана ли указанная процедура в базе
RunSqlProcВыполняет указанную процедуру на базе и возвращает результат выполнения.

Другое

ЗапросОписание
GetTaskResponse

Получение ответа по задаче

ExecuteRk7QueryВыполнение произвольной команды RK7 XML Interface
GetAgentListПолучить список агентов установленных в ресторанах с информацией об их активности
GetConfigForReportingВозвращает набор текущих параметров с сервера справочников
RunPluginCommandОтправка команды плагину Агента
ServiceGetMultiAgentInfoПолучить параметры мультиагента
ServicePushAgentSettingsОтправить агенту новые настройки (доступ к методу ограничен)
ServiceServerBenchmarkBenchmark для серверного окружения

Запрос к очереди сообщений

Очередь сообщений

События

События сообщают внешнему сервису об изменениях, производимых на внутренних сервисах ресторана (касса, склад).

Получение событий

Получать события можно подключившись к очереди сообщений

Пример ответа с событиями

{
  "eventResponse": {
  ----------agent event response json---------
  },
  "responseCommon": {
    "taskType": "Event",
    "objectId": int
  },
  "error": {
      ----------error response json---------
  }
}

Коды ошибок

Коды ошибок