Уважаемые пользователи! Если не нашли ответ на свой вопрос в базе знаний, пожалуйста, напишите нам на почту support@ecvi.ru
Skip to main content

Интеграция с ресторанной системой iiko (new)

Общее описание

В сравнении с предыдущим вариантом интеграции с системой iiko - обновленная версия позволяет пользователю за терминалом ресторанной системы осуществить закрытие заказа используя номер комнаты/апартамента гостя, что упрощает процедуру переноса задолженности.

Требования

  • Минимальная версия iiko 8.7.6 так как плагин использует Front API V8
  • Наличие лицензии api payment (21016318)
  • Запуск iikoF ront от администратора
  • При раскатке на точку с несколькими официантскими станциями/ведомыми терминалами плагин устанавливается на все терминалы.

Настройка плагина

Необходимо скачать плагин (плагин предоставлется службой технической поддержки по предварительному запросу через электронную почту support@ecvi.ru), разблокировать файлы и разархивировать
папку с плагином в папку с плагинами iikoFront, располагающуюся по пути  
C:\Program Files\iiko\iikoRMS\Front.Net\Plugins

Лог плагина plugin-Get.Front.Ecvi.log хранится по пути:

C:\Users\User\AppData\Roaming\iiko\CashServer\Logs.

Параметры конфигурационного файла Get.Front.Ecvi.dll.config (хранится по пути C:\Program Files\iiko\iikoRMS\Front.Net\Plugins\Get.Front.Ecvi):

"BaseUrl" - Адрес сервиса, куда направляются запросы (без слеша на конце);
"HotelToken" - токен отеля на сервере ECVI;
"EnableSearchByGuestCard" - параметр, отвечающий за возможность поиска гостя по номеру карты. При указании в поле значения "True", в меню выбора способа чекина гостя будут выведены две кнопки для поиска гостя по номеру комнаты и по номеру карты.
"IncreaseProductName" - наименование надбавки, которая отправляется в ECVI

Пример отправки в api IncreaseProductName = "Надбавка"
{
   "OrderID": "35950",
   "DepartCode": "RS",
   "InvoiceDate": "2024-10-14 15:06:56",
   "ServiceDate": "2024-10-14 15:06:56",
   "Count": "1",
   "Discount": 0,
   "Amount": 44.00,
   "Price": 44.00,
   "AmountWithoutDiscount": 44.00,
   "Comments": "1",
   "NDS": "0",
   "NdsAmount": "0",
   "Items": [
    {
       "Name": "Сахар10",
       "Amount": 1,
       "Price": 10.00,
       "DiscountPrice": 0,
       "Total": 10.00,
       "Tax": null,
       "Comment": null
    },
    {
       "Name": "Сахар15",
       "Amount": 2,
       "Price": 15.00,
       "DiscountPrice": 0,
       "Total": 30.00,
       "Tax": null,
       "Comment": null
    },
    {
       "Name": "Надбавка",
       "Amount": 1,
       "Price": 4.00,
       "DiscountPrice": 0,
       "Total": 4.00,
       "Tax": null,
       "Comment": null
    }
  ]
}

Пример:

Создание типа оплаты ECVI

После настройки конфигурационного файла плагина необходимо запустить iikoF ront с правами администратора для регистрации плагином нового типа оплаты. После запуска iikoF ront необходимо авторизоваться в iik oOffice и создать новый тип оплаты, который будет использоваться для списания в заказах.

Настройка типа оплаты (обязательные поля выделены желтым):

image.png

Функциональное описание

Функциональная схема реализации

image.png

Функциональное описание реализации

Плагин стартует вместе с запуском IIKOFront. При успешном старте плагина на iikoFront отобразится сообщение "Плагин успешно запущен".

Сообщение при успешном запуске плагина

image.png

В случае ошибки настроек плагина, будет выведено соответствующее уведомление.

Сообщение при неуспешном запуске плагина

image.png

Для добавления гостя в заказ необходимо воспользоваться функциональной кнопкой на экране редактирования заказа:

image.png

Нажатие на функциональную клавишу, вызывает WPF-форму для выбора дейсвия с заказом. Если в заказ не привязан  конкретный гость, будет выведена кнопка чекина, иначе - кнопка отвязки гостя из заказа.

image.png

При чекине гостя, в зависимости от параметра "EnableSearchByGuestCard" в конфигурационном файле плагина, далее необходимо выбрать способ поиска гостя: по номеру карты или комнаты.

image.png

При поиске по номеру комнаты необходимо вручную ввести номер комнаты гостя и далее, если гость проживает один, он автоматически будет добавлен в заказ. Если в комнате проживает несколько людей, они будут выведены на экран для дальнейшего выбора.

image.png

При выборе поиска по номеру карты открывается окно ввода или сканирования карты гостя. Сканирование карты возможно только с помощью картридера.

image.png

Результат поиска гостя будет выведен кассиру в виде сообщения:

Гость не найден

image.png

Гость добавлен в заказ и у него положительный баланс

image.png

Гость добавлен, но у него отрицательный баланс

image.png

Отсутствует интернет-соединение или сервер не отвечает

image.png

Закрытие заказа в системе IIKO происходит нативными механиками работы с IIKOFront в блоке кассы. При переходе в блок кассы заказ проверяется на наличие в нем гостя Ecvi, а далее - на доступность закрытия заказа с помощью баланса гостя. В случае, если баланс гостя позволяет полностью покрыть итоговую сумму заказа, в заказ автоматически будет добавлен платеж на полную сумму заказа с тем типом, который был зарегистрирован при настройке плагина. 

image.png

Если баланс гостя отрицателен или суммы недостаточно для оплаты, кассир будет уведомлен об этом сообщением:

image.png

При закрытии заказа с типом оплаты, добавленным плагином, в сервер Ecvi будет отправлен запрос, содержащий основные данные по заказу.

Модель запроса:

{
 "OrderID": "35954", - OrderID, полученный при чекине гостя
 "DepartCode": "Демо", - Название группы, в которой зарегистрирован
терминал, из iikoOffice
 "InvoiceDate": "2024-09-12 14:15:30", - дата и время закрытия заказа
 "ServiceDate": "2024-09-12 14:15:30", - дата и время закрытия заказа
 "Count": "1", - всегда "1"
 "Discount": 0.5, - доля суммы скидки по каждому блюду в заказе к общей
сумме заказа. Если в заказе результирующей является надбавка, в поле
передается "0".
 "Amount": 12.00, - итоговая сумма заказа. Если в заказе результирующей
является надбавка, в поле передается итоговая сумма заказа.
 "Price": 12.00, - - итоговая сумма заказа. Если в заказе
результирующей является надбавка, в поле передается итоговая сумма
заказа.
 "AmountWithoutDiscount": 24.00, - сумма заказа без учета скидок. Если
в заказе результирующей является надбавка, в поле передается итоговая
сумма заказа.
 "Comments": "1", - всегда "1"
 "NDS": "0", - всегда "0"
 "NdsAmount": "0", - всегда "0"
 "Items": [
  {
     "Name": "Блюдо 1", - название блюда из iikoOffice
     "Amount": 1, - количество позиции в заказе(может быть нецелым
числом)
     "Price": 42.0000, - цена блюда из iikо Если в заказе
результирующей является надбавка, в поле передается итоговая цена за
единицу позиции с учетом надбавки.
     "DiscountPrice": 30.0000, - сумма скидки на позицию(с учетом
количества) Если в заказе результирующей является надбавка, в поле
передается "0".
     "Total": 12.00, - итоговая сумма по позиции
     "Tax": {
       "Name": "20%", - наименование налоговой ставки из iikoOffice
       "Percent": "20", - процент налоговой ставки из iikoOffice
       "Calculated": "False" - признак рассчетности
    },
     "Comment": null - комментарий к позиции
  }
]
}

Если, после перехода в блок кассы, удалить тип оплаты Ecvi и закрыть заказ, запрос не будет отправлен. При изменении суммы добавленного плагином платежа и последующей попытке закрытия заказа, кассиру будет выведено сообщение о минимальной сумме оплаты типом Ecvi.

image.png

Работа с блюдами со схемой модификаторов и услугами с тарификацией не поддерживается.