external:procart:02_procart_api

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
external:procart:02_procart_api [2022/09/28 16:26] Алексей Коробовexternal:procart:02_procart_api [2025/03/28 08:55] (текущий) Евгений Горносталь
Строка 62: Строка 62:
 В запросе **/getmenu** будут возвращаться цены на блюда по типу цены "Доставки". В запросе **/getmenu** будут возвращаться цены на блюда по типу цены "Доставки".
 Гость наполнил корзину блюда, перешел в оформление заказа и указал "Самовывоз". Гость наполнил корзину блюда, перешел в оформление заказа и указал "Самовывоз".
-В запросе **/validate** необходимо указать верный код категории заказа (код Самовывоза) и тогда в ответе вернутся цены, по которым можно продать эти блюда на самовывоз.+В запросе **/validate** (а далее в **/postorder**) необходимо указать верный код категории заказа (код Самовывоза) и тогда в ответе вернутся цены, по которым можно продать эти блюда на самовывоз.
  
 **Пример №2:**  **Пример №2:** 
Строка 72: Строка 72:
 ===== Комментарии к заказу ===== ===== Комментарии к заказу =====
 В системе r_keeper у заказов есть свойство, которое можно использовать для хранения дополнительной текстовой информации (комментария к заказу), но к сожалению, длина этого поля крайне мала (30-100 символов) и зачастую вся необходимая доп. информация по заказу туда не помещается. В системе r_keeper у заказов есть свойство, которое можно использовать для хранения дополнительной текстовой информации (комментария к заказу), но к сожалению, длина этого поля крайне мала (30-100 символов) и зачастую вся необходимая доп. информация по заказу туда не помещается.
-В рамках ProCart эта проблема решена следующим образом: В запросе **/postorder** внешняя система может передать текстовый комментарий. +В рамках ProCart проблема длинных комментариев решена следующим образом: В запросе **/postorder** внешняя система может передать текстовый комментарий (поле "comment")
 Он будет сохранен в локальной базе ProCart и связан с реальным заказом в системе r_keeper. Он будет сохранен в локальной базе ProCart и связан с реальным заказом в системе r_keeper.
-В печатных формах системы r_keeper (сервис-чек, пречек, чек) можно добавить небольшой скрипт, который при помощи служебного метода **/print_info** будет получать комментарий по конкретному заказу из БД ProCart и выводить его на печать.+В печатных формах системы r_keeper (сервис-чек, пречек, чек) можно добавить небольшой скрипт, который при помощи служебного метода **/internal/print_info** будет получать комментарий по конкретному заказу из БД ProCart и выводить его на печать.
  
 +Так же в запросе **/postorder** есть поле "short_external_info", куда можно передать краткую информацию о заказе (идентификатор заказа во внешней системе, тел или ФИО гостя и т.п.)
 +Этот комментарий (30 символов) будет виден персоналу на экране кассы r_keeper (в списке заказов) и может помочь быстрее сориентироваться и найти нужный заказ.
 +
 +===== Комментарии к блюду в заказе (открытый модификатор) =====
 +**С версии 1.5.0.30**
 +В рамках ProCart к блюду может быть прикреплен комментарий. Для этого в запросе **/postorder**, для элемента меню, можно передать комментарий в поле "item_comment". Данный комментарий будет виден персоналу на экране кассы, как модификатор для блюда.
 +Данный комментарий, имеет ограничение на длину от 1 до 255 символов.
 +**Важно!** [[https://wiki.carbis.ru/external/procart/01_setup/01_rkeeper_settings#настройка_общего_текстового_модификатора_для_комментариев_к_блюду_опционально|Требуется дополнительная настройка в r_keeper]]
 ===== Заказы с оплатой ===== ===== Заказы с оплатой =====
 Через систему **ProCart** можно создать в **r_keeper** заказ в котором есть только блюда (нет оплат) и далее этот заказ будет рассчитан сотрудником на кассе как обычно. Через систему **ProCart** можно создать в **r_keeper** заказ в котором есть только блюда (нет оплат) и далее этот заказ будет рассчитан сотрудником на кассе как обычно.
Строка 90: Строка 98:
 Такой сценарий можно применять для случая когда гость тратит в оплату заказа какие-то купоны или бонусы. Тогда сумма всех этих скидок передается одной строкой и применяется на кассе r_keeper в виде суммовой скидки. Такой сценарий можно применять для случая когда гость тратит в оплату заказа какие-то купоны или бонусы. Тогда сумма всех этих скидок передается одной строкой и применяется на кассе r_keeper в виде суммовой скидки.
  
-Также поддержана работа с автоматическими скидками кассы r_keeper. Если в ресторане используются какие-то автоматические скидки по определенным правилам, и заказ сделанный внешней системой удовлетворяет этим условиям, запросу **/validate** и **/postorder** вернут содержимое заказа с учетом автоматических скидок. +Также поддержана работа с автоматическими скидками кассы r_keeper. Если в ресторане используются какие-то автоматические скидки по определенным правилам, и заказ сделанный внешней системой удовлетворяет этим условиям, то запросы **/validate** и **/postorder** вернут содержимое заказа с учетом автоматических скидок.  
 + 
 +===== Наценка суммовая ===== 
 +Модуль **ProCart** поддерживает работу с наценками, от версии ProCart 1.9.1.64. 
 +Для суммовой наценки поддержана работа с произвольной (суммовыми) наценкой. В данном сценарии сумма наценки и правила ее применения находятся на стороне внешней системы, в запросах **/validate** и **/postorder** передается итоговая сумма наценки, рассчитанная внешней системой.  
 + 
 +Пример того, как в запросе в поле "discount" можно передать одновременно Скидку словарную (Ref), Скидку суммовую(Sum) и Наценку суммовую(MARKUPSUM): 
 +<code> 
 +"discounts":
 +     { 
 +        'type': 'REF', 
 +        'code': 10, 
 +        }, 
 +    { 
 +          "type":"SUM", 
 +          "sum": 120, 
 +          "code": 1137 
 +      }, 
 +    { 
 +          "type":"MARKUPSUM", 
 +          "sum": 40, 
 +          "code": 1143 
 +      } 
 +  ] 
 +</code> 
 + 
  
 ===== Поддержка стоп-листов и ограниченных блюд ===== ===== Поддержка стоп-листов и ограниченных блюд =====
Строка 100: Строка 134:
 ===== Оповещения о заказах ===== ===== Оповещения о заказах =====
 При работе с модулем ProCart персонал заведения может получать уведомления о новых заказах через механики внешних систем (push уведомления в приложении, письма на почту, СМС сообщения и т. п.) При работе с модулем ProCart персонал заведения может получать уведомления о новых заказах через механики внешних систем (push уведомления в приложении, письма на почту, СМС сообщения и т. п.)
-Когда заказ создан в кассовой системе, автоматически происходит сервис печать (по настройкам r_keeper)Этот механизм можно дополнительно задействовать для уведомления персонала, если в используемую схему печати добавить еще одно правило, согласно которому, все заказы полученные из внешней системы будут печататься по отдельному макету сервис-печати на выделенный принтер. +Когда заказ создан в кассовой системе, автоматически происходит сервис печать (по настройкам r_keeper)Этот механизм можно дополнительно задействовать для уведомления персонала, если в используемую схему печати добавить еще одно правило, согласно которому, все заказы полученные из внешней системы будут печататься по отдельному макету сервис-печати на выделенный принтер.  
 + 
 +===== Описание блюда ===== 
 +Описание блюда передаётся при запросе меню. Логика этого поля имеет постоянное свойство и дополнительно не настраивается. В приоритете в ProCart поле "description"(описание блюда) заполняется значение из поля "Комментарий" из карточки блюда в r_keeper, если это поле пустое, то заполняется из поля "Рецепт". Если на стороне r_keeper оба поля не заполнены, то и в  ProCart в поле "description" будет пустым. 
 +<hidden> 
 +Пример поля на стороне Procart: 
 +{{ :external:procart:2025-03-28_12-33-07_2_.png |}} 
 +Пример передаваемых полей на стороне r_keeper (приоритет у поля "Комментарий"
 +{{ :external:procart:2025-03-28_12-35-43_2_.png |}} 
 +</hidden>
  
  
  • external/procart/02_procart_api.1664371589.txt.gz
  • Последнее изменение: 2022/09/28 16:26
  • Алексей Коробов