Программа лояльности для кассы Frontol 6

Frontol 6 сам обращается к «Снове»: гость по карте или телефону, потолок списания, оплата бонусами по позициям, чек и возврат. Адрес и ключ из кабинета — в настройки кассы, ничего ставить не нужно.

Frontol 6 умеет работать с внешней системой лояльности по своему протоколу — Frontol Loyalty API. Касса сама обращается к «Снове»: находит гостя по штрихкоду карты из кошелька или по телефону, показывает кассиру баланс и потолок списания, списывает баллы скидкой по позициям и проводит чек и возврат. На кассу ничего не ставится, наш экран кассы не нужен — всё происходит на привычном экране Frontol.

Что получает магазин

У кассыКак это работает
Гость назван в чекеКассир сканирует карту из кошелька гостя (штрихкод на карте) или вводит телефон. Frontol спрашивает у «Сновы», кто это, и показывает баланс, уровень и штампы.
Скидка правиломЕсли в программе есть прямая скидка (например, «уровень „Золото“ — 5 %»), она ложится в чек по позициям ещё до оплаты.
Оплата бонусамиКассир вводит сумму — «Снова» раскладывает её по позициям с учётом минимальных цен товаров и не даёт списать больше потолка программы.
Начисление по чекуПосле закрытия фискального чека касса присылает его «Снове»: баллы начисляются с оплаченной деньгами суммы, штампы прибавляются, карта в телефоне обновляется.
ВозвратВозврат по чеку продажи откатывает начисленное и возвращает списанное — частичный тоже.
СлипНа чек допечатывается слип: списано, начислено, баланс.
Чеки без картыFrontol присылает все чеки, даже без гостя. В кабинете видно, сколько покупок прошло мимо программы.
Касса Frontol после ввода карты: скидка −10 %, к оплате 225 вместо 250, окно «Баланс: 221 зерно, можно оплатить бонусами до 112 руб., скидка по программе 25 руб., начислится 16 зёрен, штампов 1 из 3, уровень „Постоянный“»
Кассир ввёл карту: скидка правилом легла сразу, а окно говорит, сколько на карте, сколько можно списать и что начислится
Касса Frontol после ввода карты: скидка −10 %, к оплате 225 вместо 250, окно «Баланс: 221 зерно, можно оплатить бонусами до 112 руб., скидка по программе 25 руб., начислится 16 зёрен, штампов 1 из 3, уровень „Постоянный“»

Подключение — три шага

  1. Выдайте подключение в кабинете

    Раздел «Интеграции» → «Кассы и системы» → карточка «Frontol 6 (Атол)» → «Выдать подключение». Назовите его по магазину или кассе. Кабинет покажет URL сервера и ключ доступа — ключ показывается один раз, скопируйте оба.

  2. Впишите их в настройки Frontol

    Frontol Администратор → Настройки → Системные → РМ и оборудование → Платёжные системы → Устройства: добавьте платёжную систему, в «Свойствах» драйвера выберите тип АС «Frontol Priority API», в «Параметрах АС» впишите веб-адрес сервера лояльности и ключ доступа. Идентификатор магазина — любая строка, по ней касса будет привязана к точке. В узле «Платёжные системы» включите «Обращаться в СЛ при изменении позиций в чеке», а в «Справочники → Глобальный контроль» поставьте «Минимальная цена: Товар» — иначе касса не передаёт минимальные цены товаров, и списать бонусы можно будет ниже них.

  3. Свяжите подразделение с точкой

    После первого чека в карточке появится подразделение кассы — тот самый идентификатор магазина из настроек Frontol. Выберите для него точку продаж «Сновы»: без этого работают только общие правила программы, а правила по точкам и отчёт по точкам молчат.

Карточка «Frontol 6 (Атол)» в разделе «Интеграции»: «Касса ходит», поле названия и кнопка «Выдать подключение», список подключений, подразделения кассы с выбором точки
Карточка Frontol в кабинете: выдать подключение, отозвать, привязать подразделение кассы к точке
Карточка «Frontol 6 (Атол)» в разделе «Интеграции»: «Касса ходит», поле названия и кнопка «Выдать подключение», список подключений, подразделения кассы с выбором точки
Frontol Администратор, три вложенных окна: карточка платёжной системы «Snova», свойства драйвера с типом АС «Frontol Priority API» и параметры — веб-адрес сервера лояльности, ключ доступа, идентификаторы магазина и кассы, флаг «Отправлять документы без карты лояльности»
Frontol Администратор: карточка платёжной системы → «Свойства…» → «Параметры АС…». Адрес и ключ — из карточки в кабинете
Frontol Администратор, три вложенных окна: карточка платёжной системы «Snova», свойства драйвера с типом АС «Frontol Priority API» и параметры — веб-адрес сервера лояльности, ключ доступа, идентификаторы магазина и кассы, флаг «Отправлять документы без карты лояльности»
Frontol Администратор, «РМ и оборудование → Платёжные системы»: включён флаг «Обращаться в СЛ при изменении позиций в чеке»
Узел «Платёжные системы»: флаг «Обращаться в СЛ при изменении позиций в чеке» — скидка и потолок пересчитываются на каждой позиции
Frontol Администратор, «РМ и оборудование → Платёжные системы»: включён флаг «Обращаться в СЛ при изменении позиций в чеке»

Если касс несколько, подключение можно выдать одно на все или по одному на кассу — второе удобнее, когда кассы обслуживают разные интеграторы: отзыв ключа тогда бьёт по одной.

Что делает кассир

Всё — из меню «Операции платёжной системы» (в стандартной раскладке Ctrl+F8). Порядок на чеке: пробить товары → «Ввод бонусной карты» (сканером с карты в кошельке или «по телефону») → при желании гостя «Оплата внешним бонусом» → расчёт как обычно. После ввода карты чек редактировать нельзя — так устроен Frontol; передумали — «Отмена оплаты внешним бонусом» или отмена документа.

Касса Frontol, меню «Операции платёжной системы»: ввод бонусной карты, оплата внешним бонусом, отмена оплаты, баланс, анкета клиента
Меню операций платёжной системы: карту вводят первым пунктом, бонусами платят вторым
Касса Frontol, меню «Операции платёжной системы»: ввод бонусной карты, оплата внешним бонусом, отмена оплаты, баланс, анкета клиента
Касса Frontol, диалог «Введите сумму (от 0,01 до 25,00)» при оплате внешним бонусом: потолок подставлен с учётом минимальной цены товара
Оплата внешним бонусом: касса сама подставляет потолок — меньшее из потолка программы и того, что позволяют минимальные цены товаров
Касса Frontol, диалог «Введите сумму (от 0,01 до 25,00)» при оплате внешним бонусом: потолок подставлен с учётом минимальной цены товара
Касса Frontol после закрытия чека: оплачено наличными 230, окно «Начислено 17 зёрен, баланс 237 зёрен»
Чек закрыт — касса отправила его «Снове» и показала, сколько начислено и сколько теперь на карте
Касса Frontol после закрытия чека: оплачено наличными 230, окно «Начислено 17 зёрен, баланс 237 зёрен»

Гость без карты: «Анкета клиента» в том же меню — кассир вводит телефон и имя, отмечает согласие, и карта выпускается тут же; ссылка на установку в телефон печатается на слипе QR-кодом. Фамилию форма не спрашивает: Frontol не умеет необязательных полей, а гость допишет её сам в карте.

Касса Frontol, анкета «Карта „Снова“»: телефон гостя, имя, согласие на обработку персональных данных, кнопки Ok и Отмена
Анкета с кассы — три поля; телефон касса подставляет из своего окна ввода
Касса Frontol, анкета «Карта „Снова“»: телефон гостя, имя, согласие на обработку персональных данных, кнопки Ok и Отмена

Чужая карта — Frontol покажет наш текст «Гость не в программе „Снова“: предложите карту по QR-коду или снимите карту с чека». Списание выше потолка — «Бонусами можно оплатить не больше N руб.». Если минимальные цены товаров не дают списать названную сумму, «Снова» откажет сразу с суммой, которую можно, — а не отдаст распределение, которое касса заблокировала бы молча.

Касса Frontol, красное сообщение «Ошибка системы лояльности! 1002 Гость не в программе „Снова“ — предложите карту по QR-коду или снимите карту с чека»
Карта не из программы: касса показывает текст «Сновы» и своё пояснение, как продолжить чек без гостя
Касса Frontol, красное сообщение «Ошибка системы лояльности! 1002 Гость не в программе „Снова“ — предложите карту по QR-коду или снимите карту с чека»

Для интегратора

Протокол — Frontol Loyalty API v1.0 по руководству интегратора Атола. «Снова» отвечает на все запросы, кроме подарочных карт: у нас их нет, касса получит «новая» на запрос статуса и отказ на активацию. Подпись стандартная — FrontolAuth от ключа доступа и тела запроса:

Заголовок запроса

Authorization: FrontolAuth md5(<ключ доступа> + <тело запроса>)
ЗапросЧто делает «Снова»
calculateнаходит гостя, отдаёт availableAmount (потолок в рублях), скидку правилом по позициям, текст кассиру
payByBonusпроверяет сумму против потолка и минимальных цен, отдаёт paidAmount по позициям и заново discountAmount — касса помнит только последний ответ
cancelBonusPaymentподтверждает и возвращает скидку правилом по позициям — резерва нет, списание проводится по чеку
confirm (receipt)проводит чек: начисление с оплаченного деньгами, списание из payments[type=bonus]; повтор по uid — пусто
confirm (refundReceipt)возврат по referenceUid, частичный по позициям
/clientбаланс и уровень кассиру
/extra/clientанкета с кассы: форма (телефон, имя, согласие), проверка, выдача карты и слип с QR на установку
/giftCardподарочных карт нет
coupons[] в чекекоды купонов не гасятся — купон применяется на экране кассы «Сновы», не через Frontol

Все ошибки по существу приходят при HTTP 200 с code ≠ 0 и текстом в error; 403 — только неверная подпись или отозванное подключение. Офлайн-чеки из очереди кассы (isDeferred) принимаются с временем чека, а не получения. Путь со слешем на конце (/document/), фигурные скобки в uid и minimumPrice: 0 при выключенном контроле цены — так шлёт Frontol 6.29, и всё это принимается как есть.

Текст кассиру (cashierInformation) касса показывает модальным окном на каждый пречек, а пречек при включённом «Обращаться в СЛ…» идёт на каждую позицию. Поэтому «Снова» отдаёт окно только на первый пречек чека, остальные ответы несут скидку и потолок молча.

Частые вопросы

Нужно ли ставить что-то на кассу Frontol?

Нет. Frontol 6 сам обращается к «Снове» по своему протоколу внешней лояльности. В настройки кассы вписываются адрес и ключ из кабинета, и всё.

На каком тарифе Frontol это работает?

В тарифе «Полный» — в нём есть подключение внешних систем лояльности. «Базовый» знает только встроенную лояльность Атола.

Что будет, если у кассы пропал интернет?

Касса спросит «Сервер системы лояльности недоступен. Повторить операцию?» — на «Нет» чек продолжится без скидки и без списания. Он закроется, а после восстановления связи Frontol дошлёт его из очереди сам, и баллы начислятся с фактической суммы.

После оплаты бонусом пропала скидка по программе. Это ошибка?

Нет, так работает Frontol при включённом контроле минимальной цены: скидку правилом он принимает только в ответе на пречек, а при оплате бонусом снимает. «Снова» предупреждает кассира в окне оплаты и называет сумму. Вернуть скидку — отменить оплату бонусом и ввести карту заново. Нужны и скидка, и баллы на одном чеке — выключите «Минимальная цена» в «Глобальном контроле» Frontol.

Касса пишет «Начислено 0 баллов», хотя правила заведены. Почему?

Чаще всего правила начисления привязаны к точкам, а подразделение кассы ещё не связано с точкой: чек тогда идёт «без точки», и точечные правила молчат — сработали бы только общие. Откройте карточку Frontol в кабинете и выберите точку для подразделения; кабинет сам предупреждает об этом, когда у программы есть точечные правила. Второй случай — оплата бонусом: баллы начисляются с суммы, оплаченной деньгами, и на маленьком чеке с большим списанием могут округлиться в ноль.

Как проверить связь, не проводя настоящий чек?

Пробейте товар, введите карту гостя из вашей базы и отмените документ: если в окне показался баланс, касса и «Снова» видят друг друга. В карточке Frontol в кабинете при этом появится «Касса ходит» с временем последнего запроса.

Первые 50 карт — бесплатно. Программа настраивается за вечер.

Создать программу