Интеграция iiko и Абонемент / Shelter
Описание интеграции iiko и Абонемент / Shelter.
Структурная схема связки выглядит следующим образом:
Для работы Connecter - установите сервер блокировок Абонемента (службу) и запустите.
В connecter.ini указываете хост и порт сервера блокировок именно Абонемента (1111 - это дефолтный порт лок-сервера Шелтера), у Абонемента, как правило, он другой (1116 или 1119) - проверьте, чтобы порт был открыт (Брандмауэр).
Также в connecter.ini в секции [lock.server] укажите
Project = 2
Module = 12
version=2.3
На ключе защиты Shelter ОБЯЗАТЕЛЬНО должен быть проект 2 модуль 12.
Структура взаимодействия модулей и программ.
iiko при оплате на специальным платежом обращается к Connecter, который обращается к ShelterConnect.dll, которая работает с базой данных Абонемент/Shelter.
Используемые версии ПО:
- Версия ПО Абонемент: 1.134
- Версия Connecter: 1.64
- Версия iiko: 5.5
Лицензирование.
Команды для закрытия из iiko защищены ключом, необходимо иметь проект 2 модуль 12 в используемом ключе защиты. До момента доработки плагина от iiko - нужен проект 1 модуль 2.
Необходимые файлы в папке с Connecter.exe.
- SCRK6530.dll
- ShelterConnect.dll
- ShelterConnect.ini
Используются те же файлы, что и при интеграции с RKeeper 7, приложены к статье (ShelterRK7.rar) и есть с сборке FullVersion Абонемент.
Настройки iiko.
Выполняются специалистами, устанавливающими iiko (https://ru.iiko.help/articles/#!special-iiko/ucsshelter)
Плагин от iiko: http://rapid.iiko.ru/plugins/Smart%20UCSShelter/V5/ (Resto.Front.Api.UCSShelterPlugin-1.0.5.2-2021.04.12.zip)
Настройки Connecter.
- Выполнить стандартные настройки Connecter.
- Connecter Должен быть настроен на БД, в которую будет осуществляться закрытие.
- В секции [Charset] необходимо установить параметр UseUrlEncode=0.
Настроить секцию [HotelInterface]
[HotelInter face]
HotelInterFaceDllname=D:\connecter\SCRK6530.dll
enabled=1
FolioMask=0
Настройки ShelterConnect.
[Database]
dbname=%Путь до БД Абонемент/Shelter%
DBuser = UCS
DBpassword = oQKH8n0BFUE=
[ExternalClient]
ClientID = 1 - код shelterconnect'a, если используются несколько ShelterConnect.DLL
IdentPhysType = 200 - Тип устройства: 2-магнитные карты, 200-замок,ключ
ConvertOperationNeed = 1 - 0- не использовать секцию [TranslateOperation], 1- использовать секцию
ToOEM = 1
NeverRestrictTransaction = 1 - 0- проверять баланс фолио перед совершением транзакции, 1- не проверять баланс перед совершением транзакции
FolioMask = $04 - Фиксированное значение. Устанавливается UCS. Не трогать!
ShowBalance = 1
ShowBalanceFirst = 1 - 1 — при запросе разрешенной суммы оплаты добавлять к имени клиента текущий баланс, 0 - не добавлять
ShowPermissibleSumAsBalance = 1
[log]
FileName = ShelterConnect.log
Level = 40
DebugLevel = 40
[GarbageCollector]
Enabled = 0
LifeTime = 120
[SCRK6]
UseDetails = 0
AlcoholicOperation =999;
Messages =SCRK6.eng.msg
UseScreenHeader0 =0
UseScreenHeader1 =0
UseScreenSequelCode =0
ShowBalance = 1
ShowBalanceFirst = 1
ShowBalanceEverywhere = 1
UseSuperDetails = 1
RoomInfoMode = 3
[PARAMS]
NoAutoDiscount = 1
Section =0
UseSection =1
[TranslateOperation]
; ЧТО_ПРИХОДИТ_ИЗ_iiko=КОД_УСЛУГИ_В_АБОНЕМЕНТЕ
1=301
[TranslatePayment]
1111 = 70996,НАЛ
Реализованный функционал:
Кейс |
Результат |
Закрытие по номеру ФОЛИО |
После ввода номера фолио в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие на номер по номеру карты гостя |
После ввода номера карты гсотя/считывания карты гостя в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие по номеру карты поселения |
После ввода номера карты поселения/считывания карты поселения в iiko отображается гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио гостя начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие по номеру комнаты |
После ввода номера комнаты в iiko отборажается проживающий в ней гость, администратор визуально идентифицирует его по фотографии и подтверждает. Заказ закрывается, на фолио поселения начисляется услуга. При просмотре внешнего чека можно увидеть подробную информацию о заказе. |
Закрытие на незаселенный номер |
После ввода номера в iiko отбражается соответствующая ошибка. |
Закрытие на номер комнаты с несколькими проживающими |
После ввода номера комнаты в iiko отборажаетсясписок проживающих в ней гостей. Если проживающие заселены местами и у каждого собственное фолио, то заказ будет закрыт на фолио поселения выбранного гостя, иначе - на общее фолио поселения. |
Закрытие с разными TRANSACTION_ID |
В iiko есть возможность настроить передачу различных TRANSACTION_ID для начисления разных услуг на фолио, например "Бар" и "Кухня". Как настроить необходимо уточнять у специалистов iiko. |
Отмена чека |
При отмене чека создается соответствующая корректирующая транзакция на целевом фолио. |
Закрытие на фолио с недостатком баланса |
При попытке закрыть заказ iiko сообщает об ошибке |
Закрытие со скидкой |
При закрытии чека со скидкой можно увидеть соответствующую информацию (полную стоимость, сумму и название примененной скидки) при просмотре внешнего чека. |
Недочеты, которые будут устранены в ближайшее время: при нехватке средств на фолио, ошибка не отображается в читабельном виде, вместо нее отображается "SCRK6/6.0.1: Ok".
Просмотр внешнего чека (Shelter).
Для просмотра внешнего чека используется rk6check.fr3 (включена в базовую поставку Shelter актуальных версий).
Для корректного отображения содержимого чека iiko необходимо:
1. В ..\Firebird\udf\ скопировать shrk6udf.dll и shrk6udf.ini (эти файлы можно найти в базовой поставке FullVersion актуальных версий)
2. В shrk6udf.ini настроить так:
[heap]
oemtochar=1
[CheckXML]
decodeType=0
3. Перезапустить службы FireBird, выполнить закрытие на номер, проверить результат.