Программа лояльности в приложении: как объединить онлайн и кассы магазина
Единый профиль покупателя, правила начисления и списания бонусов, возвраты, сроки действия и работа кассы без связи — с таблицей спорных ситуаций и критериями приёмки интеграции.
Покупатель копит бонусы в приложении, приходит в магазин — и на кассе продавец не видит ни его профиля, ни накопленного баланса. Так происходит, когда мобильное приложение и кассовая программа ведут бонусные счета в разных базах и считают их по своим правилам. Разбираем, как свести обе стороны к одному источнику правил: от единого профиля покупателя до работы кассы без связи.
Единая программа лояльности: что это технически
Единая программа лояльности означает, что у покупателя один бонусный баланс и один набор правил — независимо от того, где он платит: в приложении, на сайте или на кассе розничной точки. Техническая часть сводится к двум вопросам: кто считает бонусы и кто хранит правила.
Участники обмена
- Сервис лояльности — хранит профили покупателей, балансы, партии бонусов с их сроками и сами правила начисления и списания.
- Мобильное приложение — показывает баланс и историю операций, выдаёт код для кассы, принимает заказы в онлайне.
- Кассовая программа — спрашивает у сервиса лояльности, сколько разрешено списать и сколько будет начислено, и подтверждает операцию после печати чека.
- Товароучётная система — источник данных о товарах, ценах и скидках; из неё же берут чеки для ежедневной сверки с журналом лояльности.
Правило, от которого зависит всё остальное: бонусы считает только сервис лояльности. Если кассовая программа начисляет по своей таблице, а приложение — по своей, расхождения появятся на первой же акции, и объясняться с покупателем придётся на кассе, в очереди. Поэтому обмен проектируют от баланса: касса и приложение ничего не вычисляют самостоятельно, они запрашивают решение и показывают результат.
Эффект для маркетинга, финансов и розницы
- Маркетинг заводит механику один раз, и она действует во всех каналах продаж.
- Финансы видят единую сумму бонусных обязательств перед покупателями и понимают, какая часть из них сгорит по срокам.
- Розница перестаёт считать бонусы вручную и доказывать покупателю, почему в приложении другая цифра.
- Поддержка разбирает обращения по журналу операций, а не по присланным скриншотам.
Единый профиль покупателя нужен не только бонусам: на нём держатся персональные предложения и история обращений в поддержку — об этом мы писали в материале про единый контекст между каналами. Единая программа лояльности — часть более широкой задачи: связать онлайн и розницу в один сценарий покупки. Общие принципы такой связки мы разбирали в материале об омниканальной архитектуре для ритейла, а здесь идём по одной её части — бонусам.
Единый клиент: как приложение и касса узнают одного покупателя
Пока покупатель на кассе не опознан, программа лояльности не работает: начислять некому. Поэтому первый вопрос интеграции — какой признак считается ключом профиля и как этот ключ попадает в кассовую программу.
Ключ профиля
В российской розничной практике основной ключ — номер телефона: он уже есть у покупателя, не теряется и подтверждается кодом. Остальные признаки (адрес электронной почты, номер пластиковой карты, внутренний идентификатор) привязываются к профилю как дополнительные. Одному человеку соответствует одна запись, и у этой записи один баланс.
Способы опознать покупателя на кассе и ограничения каждого
| Способ | Что нужно на кассе | Ограничение |
|---|---|---|
| Номер телефона вручную | Ввод с клавиатуры, опционально — подтверждение кодом | Удлиняет обслуживание, даёт опечатки и спорные случаи с чужим номером |
| Код из приложения (штриховой или QR) | Сканер или камера на рабочем месте кассира | Покупателю нужен заряженный телефон; динамический код требует связи у покупателя |
| Пластиковая карта лояльности | Сканер штрихового кода, привязка карты к профилю | Выпуск и замена карт, потери, параллельный учёт карты и приложения |
| Привязанная банковская карта | Передача признака карты из платёжного терминала в кассовую программу | Работает не на всех моделях терминалов и не для оплаты наличными |
| Поиск по фамилии кассиром | Доступ кассира к поиску по базе покупателей | Даёт дубли профилей и доступ сотрудника к лишним данным; как основной способ не подходит |
Правила объединения дублей
Дубли возникают всегда: покупатель заводил пластиковую карту пять лет назад, потом поставил приложение и указал тот же телефон другим форматом. Дедупликация описывается заранее, а не во время инцидента, и состоит из четырёх решений:
- по какому признаку профили считаются одним человеком;
- какой профиль остаётся основным;
- что происходит с балансами и историей покупок;
- кто имеет право подтвердить объединение вручную.
Балансы при объединении складываются с сохранением исходных сроков действия каждой партии бонусов — иначе объединение само становится причиной спора.
Согласия и персональные данные
Профиль покупателя — это персональные данные, а значит, на обработку нужно согласие, и его формулировка одинакова для приложения и для кассы. Практическая часть: на кассе хранится минимум полей (идентификатор профиля, баланс, признак участия в программе), полная карточка остаётся в сервисе лояльности, а доступ кассира к данным ограничен его рабочей ролью. Текст согласия, порядок отзыва и сроки хранения согласуются с юристом и соответствуют требованиям Федерального закона № 152-ФЗ «О персональных данных».
Архитектура обмена: где живут правила и баланс
На кассе обмен идёт синхронно: покупатель стоит и ждёт. Из этого вытекают требования к обмену, которые редко формулируют в брифе, но которые определяют, будет ли программа работать в пиковый час.
Двухфазное списание
Списание бонусов разбивается на две операции: сначала сервис лояльности резервирует сумму под конкретный чек, затем кассовая программа подтверждает операцию после фискализации. Если чек не состоялся — покупатель передумал, не хватило денег на карте, кассир отменил позиции, — резерв освобождается по таймауту или по явной отмене. Без двух фаз получается классическая поломка: бонусы списаны, чека нет, покупатель видит пропавший баланс.
Повторные запросы и идемпотентность
Связь на кассе рвётся в середине операции, и кассовая программа повторяет запрос. Чтобы повтор не создал вторую операцию (это свойство называют идемпотентностью), каждый запрос несёт уникальный ключ — например, из номера смены, номера кассы и номера чека. Сервис лояльности по этому ключу понимает: такая операция уже учтена, нужно вернуть прежний ответ, а не списать второй раз.
Таймауты и поведение кассы при недоступности сервиса
Касса не может ждать ответа долго, поэтому предельное время ответа фиксируется в требованиях, а поведение при его превышении описывается как решение бизнеса, а не как побочный эффект реализации. Вариантов два: продолжить продажу без лояльности (начисление уйдёт в отложенную очередь) или остановить оформление до ответа сервиса. Для продуктовой розницы с высоким потоком обычно выбирают первый вариант, для сетей с дорогой покупкой и ручным оформлением — второй. Решение принимается один раз и записывается в правила, чтобы кассир на точке не выбирал его за компанию.
Журнал операций и ежедневная сверка
Каждое начисление, списание, сгорание и отмена попадают в журнал с привязкой к чеку, кассе и сотруднику. На этом журнале держится вся дальнейшая работа: разбор обращений, расчёт обязательств для финансов и ежедневная сверка — сопоставление операций лояльности с чеками из товароучётной системы. Расхождения, которые не находит автоматическая сверка, через месяц находит бухгалтерия, но уже в виде годовой суммы без возможности восстановить, что произошло. Как устроен обмен с учётной системой и где в нём обычно расходятся данные, мы разбирали в материале об интеграции приложения с 1С.
Начисление и списание бонусов в одном чеке
Механика программы кажется простой, пока её не начинают описывать в требованиях. Тогда выясняется, что «начисляем процент от покупки» — это ещё не правило, а заголовок правила.
База начисления и исключения
База — сумма, от которой считается начисление. Решения, которые нужно принять до разработки:
- считать базу от суммы чека до скидок или после;
- учитывать ли часть чека, оплаченную бонусами;
- начислять ли на доставку и на подарочные карты;
- какие товарные категории исключены из программы по правилам сети.
Исключения задаются на стороне сервиса лояльности по данным товароучётной системы, а не списком артикулов в кассовой программе: иначе каждое изменение ассортимента превращается в задачу на обновление касс.
Лимит списания и округление
Доля чека, которую разрешено оплатить бонусами, — параметр правил, и он часто отличается по категориям и по акциям. Вместе с ним описывают три вещи: допустимо ли сочетание бонусов со скидкой и промокодом, в каком порядке применяются скидка и списание, как округляются суммы. Округление выглядит мелочью, но единое правило нужно именно здесь: если приложение округляет к ближайшему рублю, а кассовая программа отбрасывает копейки, покупатель видит разные суммы в двух местах, а бухгалтерия — расхождения на каждом чеке. Общая логика оплаты в приложении и на кассе разобрана в материале о бесшовных платежах в e-commerce.
Отдельное решение — как списание бонусов выглядит в фискальном чеке: как скидка на позиции или как частичная оплата. От этого зависит и выручка в отчётности, и состав чека, поэтому формулировку согласуют с бухгалтерией и сверяют с требованиями Федерального закона № 54-ФЗ о применении контрольно-кассовой техники до того, как разработчики начнут реализацию. Как устроена оплата в приложении, если покупатель платит за заказ онлайн, мы описывали в материале о встроенном платёжном чекауте.
Отложенное начисление в онлайн-заказах
В розничной покупке момент начисления очевиден — покупатель уже у кассы. В онлайн-заказе между оплатой и получением проходит время, и начисление по факту оплаты открывает простой сценарий потерь: покупатель получает бонусы, тратит их в тот же день, а потом отказывается от заказа при получении. Поэтому бонусы по онлайн-заказам начисляют после выдачи или после окончания срока на отказ, а в приложении показывают их отдельной строкой как ожидаемые. Покупатель видит, что бонусы за заказ придут, и понимает, когда именно.
Возвраты: что происходит с бонусами
Возврат — главный источник спорных ситуаций в лояльности, потому что он затрагивает уже совершённые операции. Правила возврата описывают до запуска, в трёх сценариях.
Полный и частичный возврат
При полном возврате начисленные за покупку бонусы снимаются с баланса, списанные — возвращаются покупателю. При частичном возврате и начисление, и списание пересчитываются пропорционально возвращённой сумме, причём по правилам, действовавшим на дату покупки, а не на дату возврата. Отдельное решение — что делать, если начисленные бонусы покупатель уже потратил: разрешить отрицательный баланс до будущих покупок, удерживать долг из следующих начислений или не снимать бонусы вовсе, отнеся потерю на маркетинговый бюджет. Любой из трёх вариантов допустим, непригоден только один сценарий — когда решение не принято и каждый магазин поступает по-своему.
Возврат покупки, оплаченной бонусами
Списанные бонусы возвращаются на баланс, и здесь важен срок их действия. Если партия бонусов за это время сгорела, возвращать её с истёкшим сроком бессмысленно, а начислять новую с полным сроком — это подарок, который не предусмотрен правилами. Практичное решение: возвращать бонусы с исходным сроком, а по сгоревшим партиям продлевать срок на согласованный период и сообщать об этом покупателю в приложении.
Возврат в другом канале
Покупку из приложения приносят в магазин, покупку из магазина оформляют на возврат через поддержку. В обоих случаях операция возврата должна найти исходный чек и его бонусные операции по единому номеру заказа — для этого номер чека и номер заказа связываются в момент продажи. Организационная часть процесса возвратов и то, как она влияет на издержки, разобраны в отдельном материале о возврате товаров в интернет-магазинах.
Сроки действия бонусов и сгорание
Срок действия бонусов решает две задачи: ограничивает обязательства компании и возвращает покупателя в магазин до даты сгорания. Обе работают, только если механика понятна покупателю и одинаково считается в обоих каналах.
Три модели срока действия
- Срок от даты начисления. Каждая партия бонусов живёт свой период; баланс состоит из партий с разными датами сгорания.
- Срок от последней активности. Бонусы сохраняются, пока покупатель покупает; после периода без покупок сгорает весь баланс.
- Фиксированные периоды. Все бонусы сгорают в конце календарного периода — проще объяснить покупателю, но даёт пики нагрузки перед датой сгорания.
Модель влияет на требования к обмену. При партийном учёте сервис лояльности должен уметь отдавать кассе не только общий баланс, но и ближайшую дату сгорания: покупатель на кассе спрашивает именно об этом.
Порядок списания партий
При списании первыми уходят партии с самым близким сроком сгорания. Такой порядок выгоден покупателю, снижает объём сгоревших бонусов и в итоге уменьшает количество обращений в поддержку. Обратный порядок — когда списываются свежие партии, а старые догорают, — технически проще, но каждая сгоревшая партия превращается в разговор на кассе.
Уведомления и публичные правила
Предупреждение о сгорании отправляется заранее и по тому каналу, на который покупатель дал согласие: push-уведомление в приложении, сообщение или электронное письмо. Сами правила программы публикуются как документ с датой вступления в силу, и в нём же описывается порядок изменения правил. Это снимает значительную часть споров: вместо обсуждения механики по памяти обе стороны смотрят в один документ. Как программа лояльности работает в связке с мобильным каналом на стороне маркетинга, разобрано в материале об удержании клиентов в fashion-ритейле.
Офлайн-режим касс: продажи без связи
Связь на торговой точке пропадает: обрыв канала, сбой провайдера, переезд оборудования. Касса при этом обязана продавать, и поведение программы лояльности в такие минуты — такое же проектное решение, как и правила начисления.
Разрешённые операции без связи
Начисление офлайн безопасно: касса записывает операцию в локальную очередь, а сервис лояльности учтёт её после восстановления связи. Списание офлайн опасно, потому что актуального баланса у кассы нет, и покупатель мог потратить бонусы в приложении минуту назад. Отсюда три типовые политики:
- запретить списание без связи совсем;
- разрешить списание в пределах локально сохранённого баланса;
- разрешить списание в пределах небольшого лимита, который сеть готова потерять при расхождении.
Выбор зависит от среднего чека и от того, как часто пропадает связь на точках. Перед сезонными пиками офлайн-политику стоит проверить отдельно — вместе с остальными пунктами подготовки приложения к распродажам.
Очередь операций и порядок синхронизации
Отложенные операции накапливаются в очереди с теми же уникальными ключами, что и обычные запросы, и после восстановления связи отправляются в порядке возникновения. Сервис лояльности применяет их по датам фактических покупок — это важно для партийного учёта сроков. Отдельно задаётся предельный срок жизни очереди: операции, не доехавшие за согласованный период, разбираются вручную, а не применяются молча через две недели.
Конфликты и их разрешение
Конфликт выглядит так: касса в офлайне списала бонусы, которых на момент синхронизации на балансе уже нет. Разрешение описывается заранее одним из трёх способов:
- признать операцию кассы и допустить отрицательный баланс;
- отклонить операцию и компенсировать покупателю разницу из маркетингового бюджета;
- отклонить операцию и передать случай в поддержку.
Кассир в момент продажи должен видеть на экране понятное сообщение о том, что точка работает без связи и списание ограничено, — иначе объяснять ситуацию покупателю он будет своими словами.
Спорные ситуации: таблица решений
Эти случаи возникают в любой сети с единой программой лояльности. Собрали их в таблицу вместе с ожидаемым поведением системы и формулировкой, которую нужно закрепить в правилах программы.
Спорные ситуации, поведение системы и предмет согласования
| Ситуация | Как поступает система | Что фиксируем в правилах |
|---|---|---|
| Покупатель списывает бонусы в приложении и на кассе одновременно | Резерв под первую операцию блокирует сумму, вторая получает отказ по недостатку баланса | Время жизни резерва и текст отказа для кассира и для приложения |
| Чек отменён после подтверждения списания | Отмена операции по ключу чека, бонусы возвращаются на баланс с исходными сроками | Предельный срок, в который касса обязана отправить отмену |
| Возврат товара, начисленные бонусы уже потрачены | Удержание долга из будущих начислений либо отрицательный баланс — по выбранной политике | Одна политика на сеть и предельная сумма удержания |
| Между покупкой и возвратом партия бонусов сгорела | Бонусы возвращаются с продлением срока на согласованный период, покупатель получает уведомление | Период продления и способ уведомления |
| Два профиля с одним номером телефона | Объединение по ключу профиля, балансы складываются с сохранением сроков партий | Признак объединения и кто подтверждает его вручную |
| Касса работала без связи, списала больше фактического баланса | Операция применяется или отклоняется по правилу разрешения конфликтов, случай попадает в отчёт расхождений | Офлайн-лимит списания и сторона, которая закрывает разницу |
| Заказ оформлен в приложении, выдан в магазине | Начисление по факту выдачи, канал покупки — онлайн, точка выдачи фиксируется отдельным признаком | Какому каналу принадлежит покупка для отчётности и для акций |
| Акция действовала только в приложении, покупка сделана на кассе | Правило акции содержит признак канала, кассовая операция начисляется по базовой ставке | Формулировка условий акции с указанием канала и срока |
| Покупатель просит начислить бонусы по чеку прошлой недели | Ручное начисление по номеру чека из товароучётной системы с отметкой оператора в журнале | Срок обращения, подтверждающие документы и роль с правом ручного начисления |
| Сотрудник списывает бонусы с чужого профиля | Списание требует подтверждения покупателем, операции сотрудника видны в журнале с его идентификатором | Способ подтверждения и порядок разбора подозрительных операций |
Согласование правил: кто отвечает за логику лояльности
Правила лояльности живут в отдельном документе, который читают маркетинг, финансы, поддержка и подрядчик по разработке. Когда они существуют только в реализации, любой вопрос покупателя превращается в задачу разработчикам, а запуск акции — в задачу на обновление. Поэтому зоны ответственности распределяют до начала работ.
Распределение ответственности
- Маркетинг — механика программы, условия акций, сегменты покупателей, тексты уведомлений.
- Финансы — стоимость обязательств, правила округления, порядок отражения бонусов в отчётности.
- ИТ — обмен данными, двухфазное списание, обработка повторных запросов, предельное время ответа, журнал и сверка.
- Юрист — публичные правила программы, согласие на обработку персональных данных, порядок изменения условий.
- Розница — сценарий работы кассира, тексты сообщений на экране кассы, обучение сотрудников точек.
Версионирование правил
У каждой версии правил есть дата вступления в силу, и операции считаются по той версии, которая действовала на дату покупки. Это требование выглядит избыточным до первого изменения условий: без него пересчёт возвратов за прошлый период даёт суммы, которые невозможно объяснить ни покупателю, ни аудитору.
Показатели контроля после запуска
- Доля чеков с опознанным покупателем — показывает, доходит ли программа до кассы на практике.
- Доля запросов, не получивших ответ в отведённое время — отражает устойчивость обмена в часы пик.
- Расхождения между журналом лояльности и чеками в ежедневной сверке — целевое значение задаётся как допуск, а не как безусловный ноль.
- Сумма бонусных обязательств и доля сгоревших бонусов — показывает, сколько программа стоит компании.
- Доля ручных начислений и корректировок — косвенно показывает, где механика непонятна покупателю или кассиру.
Критерии приёмки интеграции
Приёмка интеграции лояльности отличается от обычной проверки функций: проверять нужно не только нормальный сценарий, но и обрывы, повторы и возвраты. Этот перечень удобно включать в требования до начала работ — тогда разработчики и тестировщики проектируют под него с самого начала.
Проверки приёмки интеграции программы лояльности с кассами
| Что проверяем | Как проверяем | Критерий приёмки |
|---|---|---|
| Единый профиль | Регистрация в приложении, затем покупка на кассе по тому же номеру телефона | Профиль один, баланс в приложении и на кассе совпадает |
| Начисление в чеке | Тестовые чеки по каждому правилу, включая исключённые категории и доставку | Сумма начисления совпадает с расчётом по правилам, баланс обновляется в согласованный интервал |
| Двухфазное списание | Отмена чека после резерва и после подтверждения | Бонусы возвращаются полностью, в журнале видны резерв, отмена и причина |
| Повторные запросы | Повтор запроса с тем же ключом операции | Баланс не меняется, ответ совпадает с первым |
| Недоступность сервиса | Отключение канала связи в момент расчёта на кассе | Касса оформляет продажу по выбранной политике, кассир видит сообщение, операция попадает в очередь |
| Офлайн-смена | Полная смена без связи, затем восстановление канала | Все операции применены по одному разу, журнал совпадает с чеками смены |
| Возвраты | Полный возврат, частичный возврат, возврат покупки, оплаченной бонусами | Пересчёт по правилам даты покупки, поведение при потраченных бонусах совпадает с политикой |
| Сроки действия | Профиль с несколькими партиями бонусов и разными датами сгорания | Первыми списываются партии с ближайшим сроком, уведомление о сгорании отправлено |
| Нагрузка в часы пик | Нагрузочная проверка обмена на расчётном числе касс и запросов | Время ответа и доля отказов укладываются в согласованные пределы |
| Персональные данные | Проверка состава полей на кассе и прав доступа по ролям | Согласие зафиксировано, на кассе только необходимые поля, доступ ограничен ролью |
| Ежедневная сверка | Отчёт расхождений между журналом лояльности и чеками за тестовый период | Расхождения в пределах допуска, по каждому видно чек, кассу и операцию |
Частые ошибки внедрения
- Правила живут только в коде. Любой вопрос покупателя требует разработчика, запуск акции — отдельной доработки.
- Списание в одну фазу. Отменённый чек оставляет покупателя без бонусов, а поддержку — с обращением.
- Нет ключа операции. Повторный запрос при обрыве связи списывает бонусы дважды.
- Начисление по факту оплаты онлайн-заказа. Отказ при получении превращается в потерю бонусов и спор.
- Разное округление в приложении и на кассе. Расхождения на каждом чеке и недоверие покупателя к балансу.
- Офлайн-политика не описана. Каждая торговая точка в момент сбоя действует по своему усмотрению.
- Кассиров не обучили. Механика работает, а объяснить покупателю отказ в списании на точке некому.
Проверку поведения обмена под пиковой нагрузкой удобно планировать вместе с подготовкой к сезону: как это организуют перед распродажами, описано в материале о нагрузочном тестировании приложения интернет-магазина.
Итог: единая программа лояльности на одной странице
Объединение онлайна и касс держится на четырёх решениях, принятых до разработки: один профиль покупателя с понятным ключом, один сервис, который считает бонусы, описанные правила начисления, списания, возвратов и сроков действия, и заранее выбранное поведение кассы без связи. Эти решения принимают маркетинг, финансы и ИТ вместе, и именно их отсутствие, а не выбор технологии, чаще всего превращает программу лояльности в источник споров на кассе.
Порядок действий для сети, которая начинает проект
- Описать правила программы как документ: база начисления, лимиты списания, округление, сроки действия, возвраты.
- Выбрать ключ профиля покупателя и способ опознавания на кассе, определить порядок объединения дублей.
- Согласовать поведение кассы при недоступности сервиса и офлайн-лимит списания.
- Включить таблицу спорных ситуаций и критерии приёмки в требования до начала разработки.
- Заложить ежедневную сверку и журнал операций в объём работ первого выпуска, а не в доработки после запуска.
Такой порядок — оптимальный способ пройти проект без переделок: правила фиксируются один раз, а приложение и кассы получают их из единого источника. Оценить экономику проекта до старта разработки помогает отдельный разбор о том, как оценить окупаемость мобильного приложения.
Частые вопросы
Как связать программу лояльности в приложении с кассой магазина?
Через отдельный сервис лояльности, который хранит профили покупателей, балансы и правила. Приложение и кассовая программа не считают бонусы самостоятельно: касса запрашивает, сколько разрешено списать и сколько будет начислено по текущему чеку, а затем подтверждает операцию после печати чека. Обмен проектируют с уникальным ключом операции, чтобы повторный запрос при обрыве связи не списал бонусы дважды, и с двумя фазами списания, чтобы отменённый чек возвращал бонусы покупателю. Данные о товарах, ценах и возвратах при этом приходят из товароучётной системы.
Можно ли списывать бонусы на кассе, если нет интернета?
Начисление без связи безопасно: касса записывает операцию в очередь, и сервис лояльности учтёт её после восстановления канала. Списание в этот момент идёт без актуального баланса, поэтому сети выбирают одну из трёх политик: запретить списание до восстановления связи, разрешить в пределах локально сохранённого баланса или разрешить в пределах лимита, который сеть готова потерять при расхождении. Политику выбирают по среднему чеку и по тому, насколько часто пропадает связь на точках, и закрепляют в правилах программы, а кассир видит на экране сообщение об ограничении.
Что происходит с бонусами при возврате товара?
Начисленные за покупку бонусы снимаются, списанные — возвращаются на баланс, а при частичном возврате и те и другие пересчитываются пропорционально возвращённой сумме. Пересчёт идёт по правилам, действовавшим на дату покупки. Отдельно описывается случай, когда начисленные бонусы покупатель уже потратил: сеть либо допускает отрицательный баланс, либо удерживает долг из будущих начислений, либо не снимает бонусы и относит потерю на маркетинговый бюджет. Главное требование — одна политика на всю сеть, иначе каждая точка решает по-своему.
Сколько действуют бонусы и как устроено их сгорание?
Срок задаётся правилами программы, а моделей три: срок от даты начисления для каждой партии бонусов, срок от последней покупки для всего баланса и фиксированные календарные периоды с общей датой сгорания. При партийном учёте первыми списываются бонусы с ближайшим сроком — покупатель теряет меньше, а поддержка получает меньше обращений. Предупреждение о сгорании отправляется заранее по каналу, на который покупатель дал согласие. Сами сроки и порядок их изменения публикуются в правилах программы с датой вступления в силу.
Как опознать покупателя на кассе без пластиковой карты?
Основной ключ в российской розничной практике — номер телефона: его вводят на кассе или передают кодом из приложения, который кассир считывает сканером. Пластиковая карта, адрес электронной почты и привязанная банковская карта работают как дополнительные признаки того же профиля. Поиск покупателя кассиром по фамилии как основной способ не подходит: он даёт дубли профилей и открывает сотруднику лишние данные. Для каждого способа заранее описывают, что происходит при опечатке и как покупатель подтверждает, что профиль его.
Как проверить, что интеграция лояльности работает корректно?
По критериям приёмки, которые включают в требования до начала разработки. Кроме нормального сценария покупки проверяют отмену чека после списания, повторный запрос с тем же ключом операции, работу кассы при недоступности сервиса, полную смену без связи с последующей синхронизацией, все виды возвратов, списание партий бонусов по срокам, поведение обмена под пиковой нагрузкой и состав персональных данных на кассе. Отдельный критерий — ежедневная сверка журнала лояльности с чеками: расхождения должны укладываться в согласованный допуск и разбираться по конкретному чеку.
Кто в компании отвечает за правила программы лояльности?
Ответственность распределяется между четырьмя сторонами. Маркетинг отвечает за механику, акции и тексты уведомлений. Финансы — за стоимость бонусных обязательств, округление и отражение операций в отчётности. ИТ — за обмен данными, обработку повторов и обрывов, журнал операций и сверку. Юрист — за публичные правила программы, согласие на обработку персональных данных и порядок изменения условий. Отдельная зона — розница: сценарий работы кассира, тексты сообщений на экране кассы и обучение сотрудников точек.
Обсудим вашу задачу
Расскажите, как устроена ваша программа лояльности сейчас: какие операции проходят через кассу, где хранится баланс, какие кассовые и учётные системы работают на точках. Разберём вашу схему обмена, покажем, какие решения из этой статьи придётся принять в вашем случае, и подготовим требования к интеграции вместе с критериями приёмки.
