Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
external:доставка:api:install [2021/04/19 16:57] – Алексей Коробов | external:доставка:api:install [2021/09/12 11:21] (текущий) – [Настройка меню] Александр Ильин |
---|
====== Дополнительные настройки RK7 ====== | ====== Дополнительные настройки RK7 ====== |
| |
Для полноценной работы API доставки необходимо выполнить несколько дополнительных настроек. | Для полноценной работы API доставки необходимо выполнить несколько дополнительных настроек. API работает с версиями RK7 7.6.4+ На версии RK7 7.6.2 - работать не будет. |
API работает с версиями RK7 7.6.4+ | |
На версии RK7 7.6.2 - работать не будет. | |
| |
===== Настройка меню ===== | ===== Настройка меню ===== |
Для возможности получения меню внешней системой необходимо определить для доставки список блюд, видимых через API. | Для возможности получения меню внешней системой необходимо определить для доставки список блюд, видимых через API. |
| |
- В менеджерской RK7 перейдите в справочник Меню -> Классификации блюд | - В менеджерской RK7 перейдите в справочник Меню → Классификации блюд |
- Создайте новую классификацию "Использовать для интернет-заказов" | - Создайте новую классификацию "Использовать для интернет-заказов" |
- Для новой классификации создайте категории такие, какие группы блюд будут на сайте, запомните **Идентификатор** классификации с этими категориями | - Для новой классификации создайте категории такие, какие группы блюд будут на сайте, запомните **Идентификатор** классификации с этими категориями |
- Назначьте всем блюдам, которые будут доступны для продажи через внешнюю систему, категорию в рамках этой классификации. Пример: категории "супы", "первые блюда", "десерты". Группы блюд на сайте будут называться именно так вне зависимости от того, в какой группе блюдо расположено в меню r-keeper. | - Назначьте всем блюдам, которые будут доступны для продажи через внешнюю систему, категорию в рамках этой классификации. Пример: категории "супы", "первые блюда", "десерты". Группы блюд на сайте будут называться именно так вне зависимости от того, в какой группе блюдо расположено в меню r-keeper. |
| |
**Важно!**\\ | **Важно!** |
API доставки не поддерживает комбо-блюда, а также блюда с дробным количеством (весовые)\\ | API доставки **не поддерживает** комбо-блюда, а также блюда с дробным количеством (весовые). |
Для предотвращения программных ошибок и проблем с сохранением заказов воздержитесь от использования таких блюд для внешних заказов. | Для предотвращения программных ошибок и проблем с сохранением заказов воздержитесь от использования таких блюд для внешних заказов. |
| |
Для автоматического добавления блюд из интернет заказа необходимо добавить скрипт в форму редактирования заказа доставки. | Для автоматического добавления блюд из интернет заказа необходимо добавить скрипт в форму редактирования заказа доставки. |
| |
- Перейдите в справочник Настройки -> Графический интерфейс -> Формы | - Перейдите в справочник Настройки → Графический интерфейс → Формы |
- В группе Заказ -> Редактирование заказа откройте для редактирования форму, использующуюся в схеме форм доставки. | - В группе Заказ → Редактирование заказа откройте для редактирования форму, использующуюся в схеме форм доставки. |
- Для объекта DesignForm перейдите на вкладку "События" и двойным кликом добавьте обработчик осбытия "OnShow" | - Для объекта DesignForm перейдите на вкладку "События" и двойным кликом добавьте обработчик осбытия "OnShow" |
- В открывшимся редакторе укажите следующий скрипт, заменив значение переменной iport на IP адрес и порт установленного модуля мини-доставки в формате "IP.IP.IP.IP:PORT" **Не используйте 127.0.0.1!!!** | - В открывшимся редакторе укажите следующий скрипт, заменив значение переменной iport на IP адрес и порт установленного модуля мини-доставки в формате "IP.IP.IP.IP:PORT" **Не используйте 127.0.0.1!!!** |
- **ВНИМАНИЕ** Убедитесь, что на всех кассовых станциях добавлен XML порт по инструкции для [[external:доставка:03_hb|HoverButton]] | - **ВНИМАНИЕ** Убедитесь, что на всех кассовых станциях добавлен XML порт по инструкции для [[:external:доставка:03_hb|HoverButton]] |
<code> | <code> |
| |
procedure DesignFormOnShowScript(Sender: TObject); | procedure DesignFormOnShowScript(Sender: TObject); |
var | var |
if httpget('http://'+iport+'/api/int/orderitems?guid='+RKCheck.CurrentOrder.guidstring, res) <> 0 then | if httpget('http://'+iport+'/api/int/orderitems?guid='+RKCheck.CurrentOrder.guidstring, res) <> 0 then |
begin | begin |
GUI.ShowMessage('Minidlv/orderitems. '+iport+' Не доступен.'); | GUI.ShowMessage('Minidlv/orderitems. '+iport+' Не доступен.'); |
end; | end; |
end; | end; |
| |
</code> | </code> |
| |
**При настройке использования схемы форм с данной формой не задавайте категорию заказа.** | **При настройке использования схемы форм с данной формой не задавайте категорию заказа.** "Старый серый" интерфейс кассы рк7 использовать нельзя. |
"Старый серый" интерфейс кассы рк7 использовать нельзя. | |
| |
---- | ---- |
| |
===== Настройка использования предоплат ===== | ===== Настройка использования предоплат ===== |
| |
Чтобы иметь возможность получать с сайта (через API) заказы с уже произведённой оплатой - в rk7 должно быть включено использование предоплат. Оплата заказа через API добавляется в заказ как "Предоплата". Так сделано для того, чтобы заказ не закрывался сам сразу же, а оставался "висеть" в списке заказов до тех пор, пока персонал ресторана не закроет его вручную. | Чтобы иметь возможность получать с сайта (через API) заказы с уже произведённой оплатой - в rk7 должно быть включено использование предоплат. Оплата заказа через API добавляется в заказ как "Предоплата". Так сделано для того, чтобы заказ не закрывался сам сразу же, а оставался "висеть" в списке заказов до тех пор, пока персонал ресторана не закроет его вручную. |
| |
Для корректной работы такого механизма следует настроить параметр: | Для корректной работы такого механизма следует настроить параметр: Настройки → Параметры → Использование опций → Печатные документы → Учет предоплат → Не учитывать |
Настройки -> Параметры -> Использование опций -> Печатные документы -> Учет предоплат -> Не учитывать | |
| |
{{:external:minidlv2:pred.png?|}} | {{ :external:minidlv2:pred.png }} |
| |
Нужно выбрать именно значение **"Не учитывать"**, это не то же самое что "без предоплат". | Нужно выбрать именно значение **"Не учитывать"**, это не то же самое что "без предоплат". Если в ресторане предоплаты используются по настоящему - сделайте исключение параметра и привяжите его категории заказа доставки. |
Если в ресторане предоплаты используются по настоящему - сделайте исключение параметра и привяжите его категории заказа доставки. | |
| |
**Валюта и причина внесения денег** для приема предоплат указывается в DeliveryHatch.ini - **rkPayCode** и **rkPayReasonCode** соответственно. | **Валюта и причина внесения денег** для приема предоплат указывается в DeliveryHatch.ini - **rkPayCode** и **rkPayReasonCode** соответственно. |
| |
В стандартном случае, когда платёжным шлюзом является "Робокасса" и подключена услуга "Робочеки" - валюту "Олата на сайте" есть смысл делать нефискальной, т. к. фискальный чек гостю отправляет "Робокасса" от своего имени и повторно печатать его нет необходимости. | В стандартном случае, когда платёжным шлюзом является "Робокасса" и подключена услуга "Робочеки" - валюту "Олата на сайте" есть смысл делать нефискальной, т. к. фискальный чек гостю отправляет "Робокасса" от своего имени и повторно печатать его нет необходимости. Пример настроек валюты и причины внесения: |
Пример настроек валюты и причины внесения: | |
{{:external:доставка:api:pasted:20201125-131549.png}} | |
| |
{{:external:доставка:api:pasted:20201125-131611.png}} | {{ :external:доставка:api:pasted:20201125-131549.png }} |
| |
| {{ :external:доставка:api:pasted:20210812-132229.png }} |
| |
---- | ---- |
===== Модуль доставки ===== | ===== Модуль доставки ===== |
| |
В файл DeliveryHatch.ini в секцию [RK] добавьте новый параметр: **rkMenuCateg** \\ | В файл DeliveryHatch.ini в секцию [RK] добавьте новый параметр: **rkMenuCateg** \\ Этот параметр определяет классификацию блюд, с которой будет работать API доставки. \\ Значением данного параметра необходимо указать **идентификатор** классификации "Использовать для интернет-заказов" |
Этот параметр определяет классификацию блюд, с которой будет работать API доставки.\\ | |
Значением данного параметра необходимо указать **идентификатор** классификации "Использовать для интернет-заказов" | |
| |
**С версии 3.0.5.1053** в секцию [RK] можно добавить параметр **rkHitCateg** \\ | **С версии 3.0.5.1053** в секцию [RK] можно добавить параметр **rkHitCateg** \\ Параметр определяет категорию меню для пометки блюд как "Популярное" во внешних системах \\ Значением данного параметра необходимо указать **идентификатор** категории "Да" классификации "Популярно для доставки" |
Параметр определяет категорию меню для пометки блюд как "Популярное" во внешних системах\\ | |
Значением данного параметра необходимо указать **идентификатор** категории "Да" классификации "Популярно для доставки" | |
| |
**C версии 3.1.8.1521** в доставку добавлена поддержка модификаторов блюд. | **C версии 3.1.8.1521** в доставку добавлена поддержка модификаторов блюд. |
| |
**С версии 3.1.8.1616 ** добавлен механизм фильтрации служебных модификаторов по весу. | **С версии 3.1.8.1616 ** добавлен механизм фильтрации служебных модификаторов по весу. Теперь через API доступны только модификаторы, вес которых больше нуля. Отключить фильтрацию по весу можно в DeliveryHatch.ini в сексии RK с помощью параметра rkFilterModiWeights. Установить значение - 0. |
Теперь через API доступны только модификаторы, вес которых больше нуля. | |
Отключить фильтрацию по весу можно в DeliveryHatch.ini в сексии RK с помощью параметра rkFilterModiWeights. Установить значение - 0. | |
| |
В том же файле добавьте новую секцию "[APITOKEN]", в которой перечислите все токены, с которыми смогут работать внешние системы.\\ | В том же файле добавьте новую секцию "[APITOKEN]", в которой перечислите все токены, с которыми смогут работать внешние системы. \\ **Токен для каждой внешней системы нужно придумать самостоятельно!!!** \\ Сделать это можно при помощи генераторов паролей |
**Токен для каждой внешней системы нужно придумать самостоятельно!!!** \\ | |
Сделать это можно при помощи генераторов паролей | |
| |
* [[https://www.guidgen.com/|Раз]] | * [[https://www.guidgen.com/|Раз]] |
| |
---- | ---- |
| |
| |
===== Доступ к API через интернет ===== | ===== Доступ к API через интернет ===== |
| |
Последним этапом необходимо открыть сетевой порт для внешнего IP заведения, ведущий в порт доставки. | Последним этапом необходимо открыть сетевой порт для внешнего IP заведения, ведущий в порт доставки. Как это сделать - зависит от конкретного оборудования в заведении. |
Как это сделать - зависит от конкретного оборудования в заведении. | |
| |
Важно помнить, что доставка ограничивает доступ к стандартному WEB интерфейсу для запросов, адресованых не на один из IP адресов, принадлежащих компьютеру, где установлена доставка. \\ | Важно помнить, что доставка ограничивает доступ к стандартному WEB интерфейсу для запросов, адресованых не на один из IP адресов, принадлежащих компьютеру, где установлена доставка. \\ То есть невозможно получить доступ к стандартному графическому интерфейсу не из локальной сети. |
То есть невозможно получить доступ к стандартному графическому интерфейсу не из локальной сети. | |
| |
---- | ---- |
| |
===== Как проверить корректность настройки API? ===== | ===== Как проверить корректность настройки API? ===== |
| |
Для этого есть сервис тестирования: [[https://dev.carbis.ru/test|https://dev.carbis.ru/test]] | Для этого есть сервис тестирования: [[https://dev.carbis.ru/test|https://dev.carbis.ru/test]] |
| |
Необходимо ввести параметры подключения к вашему экземпляру, если при работе с API планируется использование оплат, то включить соответствующий параметр, и после этого запустить проверку. | Необходимо ввести параметры подключения к вашему экземпляру, если при работе с API планируется использование оплат, то включить соответствующий параметр, и после этого запустить проверку. {{ :external:minidlv2:2020-09-11_19-08-04_2_.png?400 }}При корректно выполненной настройке, в модуле мини-Доставка появится новый внешний заказ и оплата (если был выставлен соответствующий признак). Если на каком то этапе тестирования возникнут ошибки, то в будут указаны возможные причины их возникновения и рекомендации по их устранению. {{ :external:minidlv2:2020-09-11_19-08-46.png?400 }}PS Сервис находится в режиме beta-тестирования. В случае получения ошибки вида "Access Violation XXX" просто запустите тест еще раз. |
{{ :external:minidlv2:2020-09-11_19-08-04_2_.png?400 |}} | |
При корректно выполненной настройке, в модуле мини-Доставка появится новый внешний заказ и оплата (если был выставлен соответствующий признак). Если на каком то этапе тестирования возникнут ошибки, то в будут указаны возможные причины их возникновения и рекомендации по их устранению. | |
{{ :external:minidlv2:2020-09-11_19-08-46.png?400 |}} | |
PS Сервис находится в режиме beta-тестирования. В случае получения ошибки вида "Access Violation XXX" просто запустите тест еще раз. | |
| |