external:procart:02_procart_api:01_api

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
external:procart:02_procart_api:01_api [2024/05/24 07:12] – [Перечень методов API ProCart] Данил Володченкоexternal:procart:02_procart_api:01_api [2025/05/16 14:08] (текущий) Евгений Горносталь
Строка 7: Строка 7:
   * **/postorder** - метод для создания заказа в кассовой системе.   * **/postorder** - метод для создания заказа в кассовой системе.
   * **/getorders** - метод для получения информации о заказах.   * **/getorders** - метод для получения информации о заказах.
 +  * **/close** - метод для закрытия заказа.
   * **/internal/print_info** - служебный метод для получения длинных комментариев (используется в макетах печатных форм r_keeper).   * **/internal/print_info** - служебный метод для получения длинных комментариев (используется в макетах печатных форм r_keeper).
  
Строка 16: Строка 17:
  
 **Важно!** Все методы возвращают ответы в кодировке UTF-8 **Важно!** Все методы возвращают ответы в кодировке UTF-8
-===== Некоторые особенности использования методов API ===== + 
-Метод **/ping** не является обязательным и не приводит ни к каким действиям на стороне кассовой системы, но в то же время он очень полезен. С его помощью можно: +===== Особенности использования методов API ===== 
 + 
 +=== ping === 
 +Метод **/api/v3/ping** не является обязательным и не приводит ни к каким действиям на стороне кассовой системы, но в то же время он очень полезен. С его помощью можно: 
   * Проверить доступность ProCart   * Проверить доступность ProCart
   * Проверить связь между модулем ProCart и кассовым сервером   * Проверить связь между модулем ProCart и кассовым сервером
Строка 26: Строка 30:
 Рекомендуется выполнять запрос **/ping** при начале работы.  Рекомендуется выполнять запрос **/ping** при начале работы. 
  
-----+------------- 
 +=== getmenu ===
  
-Метод **/getmenu** позволяет получить информацию о блюдах и их остатках, доступных для продажи во внешней системе. При большом количестве блюд, ответ на данный запрос может занимать значительное время (500-2000 мс), поэтому рекомендуется производить кеширование ответов на стороне внешней системы. Модуль ProCart так же кеширует меню на своей стороне и проверяет обновления с периодичностью 10-60 секунд. Поэтому для внешней системы вызывать метод **/getmenu** чаще чем 1 раз в минуту не имеет особого смысла. +Метод **/*api/v3/getmenu** позволяет получить информацию о блюдах и их остатках, доступных для продажи во внешней системе. При большом количестве блюд, ответ на данный запрос может занимать значительное время (500-2000 мс), поэтому рекомендуется производить кеширование ответов на стороне внешней системы. Модуль ProCart так же кеширует меню на своей стороне и проверяет обновления с периодичностью 10-60 секунд. Поэтому для внешней системы вызывать метод **/getmenu** чаще чем 1 раз в минуту не имеет особого смысла. 
- +------------- 
----- +=== validate === 
- +Метод **/api/v3/validate** так же не является обязательным, но его использование крайне рекомендовано. Данный метод позволяет провалидировать содержимое корзины. Т.е. убедиться что такой заказ можно создать в кассовой системе в текущий момент времени. 
-Метод **/validate** так же не является обязательным, но его использование крайне рекомендовано. Данный метод позволяет провалидировать содержимое корзины. Т.е. убедиться что такой заказ можно создать в кассовой системе в текущий момент времени. +
 Данный метод так же нужен для корректного отображения "корзины" во внешней системе. Т.к. в зависимости от настроек r_keeper и дополнительных параметров заказа ("категория заказа", стол, скидка и т.п.) кассовая система может изменять стоимость блюд в заказе.  Данный метод так же нужен для корректного отображения "корзины" во внешней системе. Т.к. в зависимости от настроек r_keeper и дополнительных параметров заказа ("категория заказа", стол, скидка и т.п.) кассовая система может изменять стоимость блюд в заказе. 
 **Важно!** Вызов данного метода не приводит ни к каким событиям на кассе (заказ не создается). **Важно!** Вызов данного метода не приводит ни к каким событиям на кассе (заказ не создается).
  
----- +------------- 
- +=== postorder === 
-Метод **/postorder** создает заказ на кассе r_keeper. Если заказ создан успешно, то в ответе на запрос вернется GUID созданного в системе r_keeper заказа, используя который в дальнейшем можно отслеживать изменения состояния этого заказа используя метод **/getorders**+Метод **/api/v3/postorder** создает заказ на кассе r_keeper. Если заказ создан успешно, то в ответе на запрос вернется GUID созданного в системе r_keeper заказа, используя который в дальнейшем можно отслеживать изменения состояния этого заказа используя метод **/getorders**
 **Важно!** Если логика внешней системы подразумевает оплату заказа, то перед тем как вызвать метод **/postorder** необходимо провести оплату заказа (а сумму к оплате взять из ответа на запрос **/validate**). И только после успешной оплаты создавать заказ методом **/postorder**, не забыв при этом передать данные об оплате. **Важно!** Если логика внешней системы подразумевает оплату заказа, то перед тем как вызвать метод **/postorder** необходимо провести оплату заказа (а сумму к оплате взять из ответа на запрос **/validate**). И только после успешной оплаты создавать заказ методом **/postorder**, не забыв при этом передать данные об оплате.
 +-------------
 +=== getorders ===
 +Оба метода **/api/v3/getorders** получают информацию о заказах.
 +  * В методе **POST** нужно передать токен, а так же GUID или список GUID'ов заказов. В ответ придёт информация по всем открытым заказам.
 +  * В методе **GET** нужно передать только токен. В ответ придёт информация информация по всем открытым через ProCart заказам.
 +
 +-------------
 +=== close ===
 +
 +Метод **/api/v3/close** является необязательным методом. Может потребоваться для закрытия заказа, если в ProCart.yaml в группе "r_keeper_references" указана настройка - close_paid_order: false.
 +
 +
 +
  
 ===== Типовая схема запросов ===== ===== Типовая схема запросов =====
  • external/procart/02_procart_api/01_api.1716523921.txt.gz
  • Последнее изменение: 2024/05/24 07:12
  • Данил Володченко