Документация к API - ссылка
Токен API: 28bb0d65-d1a3-447d-a3eb-e4961b0ffd35
Все запросы отправляются в «ip:port/api/v3»
Например 127.0.0.1:11111/api/v3/ping
Важно! Все методы возвращают ответы в кодировке UTF-8
Метод /ping не является обязательным и не приводит ни к каким действиям на стороне кассовой системы, но в то же время он очень полезен. С его помощью можно:
Рекомендуется выполнять запрос /ping при начале работы.
Метод /getmenu позволяет получить информацию о блюдах и их остатках, доступных для продажи во внешней системе. При большом количестве блюд, ответ на данный запрос может занимать значительное время (500-2000 мс), поэтому рекомендуется производить кеширование ответов на стороне внешней системы. Модуль ProCart так же кеширует меню на своей стороне и проверяет обновления с периодичностью 10-60 секунд. Поэтому для внешней системы вызывать метод /getmenu чаще чем 1 раз в минуту не имеет особого смысла.
Метод /validate так же не является обязательным, но его использование крайне рекомендовано. Данный метод позволяет провалидировать содержимое корзины. Т.е. убедиться что такой заказ можно создать в кассовой системе в текущий момент времени.
Данный метод так же нужен для корректного отображения «корзины» во внешней системе. Т.к. в зависимости от настроек r_keeper и дополнительных параметров заказа («категория заказа», стол, скидка и т.п.) кассовая система может изменять стоимость блюд в заказе.
Важно! Вызов данного метода не приводит ни к каким событиям на кассе (заказ не создается).
Метод /postorder создает заказ на кассе r_keeper. Если заказ создан успешно, то в ответе на запрос вернется GUID созданного в системе r_keeper заказа, используя который в дальнейшем можно отслеживать изменения состояния этого заказа используя метод /getorders
Важно! Если логика внешней системы подразумевает оплату заказа, то перед тем как вызвать метод /postorder необходимо провести оплату заказа (а сумму к оплате взять из ответа на запрос /validate). И только после успешной оплаты создавать заказ методом /postorder, не забыв при этом передать данные об оплате.
В итоге, для того что бы создать заказ на кассе, внешняя система должны последовательно выполнить запросы:
Важно!
При создании заказа, через callback_url возможно указать адрес, куда будет отправляться состояние заказа при изменении его статуса.
Заказ может иметь статус: