Интеграция связывает кассу iiko с ClubIS: покупки в баре, ресторане или кафе клуба могут списываться с депозита клиента или в рамках настроенного лимита. ClubIS принимает заказы от iiko через API службы web-service, создаёт чеки, учитывает скидки клиента и проверяет доступный баланс.
Полное описание методов API — в спецификации iiko API. Ниже — что нужно настроить на стороне клуба и как работает обмен в типовом сценарии.
http://сервер:порт/api/iiko/имя_метода с передачей USER_ID и USER_HASH в параметрах запроса или в заголовках.Администратор → Интеграции → Прочее — блок IIKO:
| Параметр | Назначение |
|---|---|
| Разрешать продажу только в рамках предоплаты | Если включено, оплата возможна только за счёт остатка на депозите клиента. Если выключено, к депозиту добавляется «кредитный» лимит (см. следующий пункт). |
| Лимит без предоплаты | Максимальная сумма покупок «в долг» поверх депозита для всех клиентов (используется, когда режим предоплаты выключен). |
| Юр. лицо по умолчанию | Подставляется при автоматическом создании новых групп прайса из категорий iiko. |
| Группа прайса по умолчанию | Родительская группа для автоматически создаваемых категорий товаров из iiko. |
После изменения параметров сохраните настройки.
Если для конкретного членства нужен свой лимит (вместо общего), откройте карточку членства в Менеджере, вкладка Контроль задолженности → поле Лимит IIKO без предоплаты. Ненулевое значение перекрывает общий лимит из блока IIKO для этого клиента.
Типовая последовательность на стороне iiko:
search_card), либо проверка баланса по уже известной карте (search_client).check_order).send_order).storno_order).В запросах используется client_card — номер карты клиента в ClubIS. Подставляется, в порядке приоритета:
Поиск по ФИО и телефону в search_card работает по частичному совпадению: фамилия, имя и отчество — с начала строки; телефон — по концу номера (удобно искать по последним цифрам).
Рекомендуется заранее сверить ключевые позиции в реализации товаров и услуг: при необходимости заполните дополнительный код вручную тем же uuid, что использует iiko.
storno_order) выполняется по uuid заказа iiko или по идентификатору чека ClubIS (если iiko его сохранил из ответа). Повторная отмена того же заказа не допускается.Клиент может купить только на сумму, не превышающую остаток депозита за вычетом уже выставленных, но не оплаченных чеков. Кредитный лимит не используется.
Доступная сумма складывается из депозита и лимита без предоплаты (общего или индивидуального). В ответе search_client поля credit и debit показывают, как эта сумма распределена; balance — итог, доступный для новой покупки.
| Метод | Назначение |
|---|---|
search_card |
Поиск клиентов по ФИО, телефону или карте |
search_client |
Баланс и разрешение на оплату по карте |
check_order |
Проверка заказа и расчёт скидки без записи |
send_order |
Создание чека и (в режиме предоплаты) списание с депозита |
storno_order |
Отмена ранее переданного заказа |
Подробные форматы запросов и ответов — в спецификации.
| Сообщение | Что проверить |
|---|---|
| Клиент не найден | Корректность client_card, активное членство, клиент в клубе (если используется карта шкафчика). |
| Недостаточно средств на балансе | Остаток депозита, лимит IIKO, неоплаченные чеки клиента. |
| Заказ … уже существует | Повторная отправка того же uuid заказа из iiko. |
| Не задана категория / uuid для товара | В позиции заказа от iiko должны быть заполнены категория и uuid товара. |
| Not Authorized! | Неверные USER_ID / USER_HASH или недоступность web-service. |
Логи обмена с iiko — в папке web-service каталога clubis-logs на сервере площадки (см. Где хранятся логи программы ClubIS). Используйте отдельный файл clubis-web-service_iiko--ДД-ММ-ГГГГ--0.log, а не общий журнал web-service (clubis-web-service--…). При большом объёме записей за день номер в конце имени (--1.log, --2.log и т.д.) может быть больше нуля.