external:procart:02_procart_api:01_api

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
external:procart:02_procart_api:01_api [2025/05/16 14:06] Евгений Горностальexternal:procart:02_procart_api:01_api [2025/11/28 10:24] (текущий) Евгений Горносталь
Строка 12: Строка 12:
 Документация к API - [[http://95.64.142.2:1112/swagger#|ссылка]] Документация к API - [[http://95.64.142.2:1112/swagger#|ссылка]]
 Токен API: 28bb0d65-d1a3-447d-a3eb-e4961b0ffd35 Токен API: 28bb0d65-d1a3-447d-a3eb-e4961b0ffd35
 +Если ProCart уже установлен локально, то по умолчанию документация доступна через [[http://127.0.0.1:11111/swagger|http://127.0.0.1:11111/swagger]]. Токен нужно взять из файла настроек в корневой папке.
 +
  
 Все запросы отправляются в "ip:port/api/v3" Все запросы отправляются в "ip:port/api/v3"
Строка 30: Строка 32:
 Рекомендуется выполнять запрос **/ping** при начале работы.  Рекомендуется выполнять запрос **/ping** при начале работы. 
  
 +-------------
 === getmenu === === getmenu ===
  
 Метод **/*api/v3/getmenu** позволяет получить информацию о блюдах и их остатках, доступных для продажи во внешней системе. При большом количестве блюд, ответ на данный запрос может занимать значительное время (500-2000 мс), поэтому рекомендуется производить кеширование ответов на стороне внешней системы. Модуль ProCart так же кеширует меню на своей стороне и проверяет обновления с периодичностью 10-60 секунд. Поэтому для внешней системы вызывать метод **/getmenu** чаще чем 1 раз в минуту не имеет особого смысла. Метод **/*api/v3/getmenu** позволяет получить информацию о блюдах и их остатках, доступных для продажи во внешней системе. При большом количестве блюд, ответ на данный запрос может занимать значительное время (500-2000 мс), поэтому рекомендуется производить кеширование ответов на стороне внешней системы. Модуль ProCart так же кеширует меню на своей стороне и проверяет обновления с периодичностью 10-60 секунд. Поэтому для внешней системы вызывать метод **/getmenu** чаще чем 1 раз в минуту не имеет особого смысла.
 +-------------
 === validate === === validate ===
 Метод **/api/v3/validate** так же не является обязательным, но его использование крайне рекомендовано. Данный метод позволяет провалидировать содержимое корзины. Т.е. убедиться что такой заказ можно создать в кассовой системе в текущий момент времени.  Метод **/api/v3/validate** так же не является обязательным, но его использование крайне рекомендовано. Данный метод позволяет провалидировать содержимое корзины. Т.е. убедиться что такой заказ можно создать в кассовой системе в текущий момент времени. 
Строка 40: Строка 42:
 **Важно!** Вызов данного метода не приводит ни к каким событиям на кассе (заказ не создается). **Важно!** Вызов данного метода не приводит ни к каким событиям на кассе (заказ не создается).
  
 +-------------
 === postorder === === postorder ===
 Метод **/api/v3/postorder** создает заказ на кассе r_keeper. Если заказ создан успешно, то в ответе на запрос вернется GUID созданного в системе r_keeper заказа, используя который в дальнейшем можно отслеживать изменения состояния этого заказа используя метод **/getorders** Метод **/api/v3/postorder** создает заказ на кассе r_keeper. Если заказ создан успешно, то в ответе на запрос вернется GUID созданного в системе r_keeper заказа, используя который в дальнейшем можно отслеживать изменения состояния этого заказа используя метод **/getorders**
 **Важно!** Если логика внешней системы подразумевает оплату заказа, то перед тем как вызвать метод **/postorder** необходимо провести оплату заказа (а сумму к оплате взять из ответа на запрос **/validate**). И только после успешной оплаты создавать заказ методом **/postorder**, не забыв при этом передать данные об оплате. **Важно!** Если логика внешней системы подразумевает оплату заказа, то перед тем как вызвать метод **/postorder** необходимо провести оплату заказа (а сумму к оплате взять из ответа на запрос **/validate**). И только после успешной оплаты создавать заказ методом **/postorder**, не забыв при этом передать данные об оплате.
 +-------------
 === getorders === === getorders ===
 Оба метода **/api/v3/getorders** получают информацию о заказах. Оба метода **/api/v3/getorders** получают информацию о заказах.
-    * В методе **POST** нужно передать токен, а так же GUID или список GUID'ов заказов. В ответ придёт информация по всем открытым заказам. +  * В методе **POST** нужно передать токен, а так же GUID или список GUID'ов заказов. В ответ придёт информация по всем открытым заказам. 
-    * В методе **GET** нужно передать только токен. В ответ придёт информация информация по всем открытым через ProCart заказам.+  * В методе **GET** нужно передать только токен. В ответ придёт информация информация по всем открытым через ProCart заказам.
  
 +-------------
 === close === === close ===
  
 Метод **/api/v3/close** является необязательным методом. Может потребоваться для закрытия заказа, если в ProCart.yaml в группе "r_keeper_references" указана настройка - close_paid_order: false. Метод **/api/v3/close** является необязательным методом. Может потребоваться для закрытия заказа, если в ProCart.yaml в группе "r_keeper_references" указана настройка - close_paid_order: false.
 +
  
  
Строка 66: Строка 70:
 ---- ----
 **Важно!**  **Важно!** 
-При создании заказа, через **callback_url** возможно указать адрес, куда будет отправляться состояние заказа при изменении его статуса.+При создании заказа, через параметр **callback_url** возможно указать адрес, куда будет отправляться состояние заказа при изменении его статуса.
  
 Заказ может иметь статус: Заказ может иметь статус:
-  * deferred - заказа создан в кассовой системе как черновик +  * "0"=open - заказ создан в кассовой системе и с ним ведётся работа 
-  * open - заказ создан в кассовой системе и с ним ведётся работа +  * "1"=close - закрыт выполнен рассчёт по заказу и выбит чек 
-  * bill - в заказе выбит пречек +  * "2"=bill - в заказе выбит пречек или чек намерения 
-  * close - закрыт выполнен рассчёт по заказу и выбит чек +  * "3"=deleted - заказ удалён в кассовой системе 
-  * deleted - заказ удалён в кассовой системе+  * "4"=deferred - заказа создан в кассовой системе как черновик 
 +  * "5"=new - новый заказ 
  
  
  
  
  • external/procart/02_procart_api/01_api.1747393573.txt.gz
  • Последнее изменение: 2025/05/16 14:06
  • Евгений Горносталь