У сети уже была лояльность, встроенная в прежнюю учётную систему, — модуль, привязанный к iiko. Стратегически бизнес шёл к тому, чтобы вести собственную программу лояльности независимо от учётной системы: гибче настраивать механики, не зависеть от возможностей чужого модуля, в перспективе полностью отказаться от него. Но резко отключить старую лояльность и запустить новую с нуля означало бы обнулить баланс и уровень каждого действующего пользователя сети в день переключения — то есть создать самому себе волну недовольства в момент, когда лояльность как раз должна укреплять доверие, а не разрушать его.
Перенос профиля при первом входе
Решение — перенос профиля один раз, в момент, когда пользователь сам заходит в новое приложение. Логика такая:
Пользователь регистрируется или авторизуется в новом приложении — по номеру телефона и коду из смс.
В этот момент платформа один раз обращается к прежней системе лояльности и забирает оттуда всё, что нужно: баланс бонусов, код карты лояльности, текущий уровень в программе.
Дальше платформа этого пользователя больше не обращается к прежней системе. Все последующие начисления, списания, пересчёты уровня — целиком на стороне новой платформы.
Перенос профиля при первом входе в новое приложение
Для пользователя это выглядит как обычный вход в приложение: он ничего не переносит вручную, не вводит старый код карты, не пишет в поддержку с просьбой восстановить баланс. Перенос происходит один раз и без участия пользователя, кроме собственно входа в приложение.
Обсудим бесшовный перенос для вашей сети
Планируете переход на собственную лояльность и боитесь потерять базу постоянных клиентов?
Отдельная задача — сделать так, чтобы пользователю не нужно было искать новое приложение в сторе и разбираться, зачем оно, если у него уже есть старое. Новое приложение — разработанное полностью с нуля — команда старается публиковать как обновление уже существующей карточки в сторе, а не как отдельный новый продукт. Тогда у пользователя, у которого уже установлено прежнее приложение, в сторе появляется обычное уведомление об обновлении. По факту при установке этого «обновления» пользователь получает совершенно новое приложение, но для него самого разница должна быть незаметна: он открывает знакомую иконку, авторизуется по телефону и коду — и дальше уже работает перенос профиля лояльности, описанный выше.
Что нужно предусмотреть при переносе
Уровень программы лояльности не всегда однозначно редактируем: если пользователю в новой системе вручную выставить более высокий уровень, чем тот, что фактически подтверждён суммой его покупок, платформа в фоне пересчитывает разницу так, чтобы дальнейшая логика работала, как будто пользователь действительно достиг этого уровня сам — то есть перенос не должен создавать несогласованное состояние, которое потом придётся исправлять вручную.
Стоит заранее продумать настройки на уровне страны, если сеть работает в нескольких странах: обменные курсы бонусов между регионами, если они вообще предусмотрены, максимальный процент оплаты заказа бонусами, условия реферальной программы — всё это должно быть перенесено или настроено согласованно с прежней системой, а не задано заново с нуля для каждой страны отдельно. Подробнее о том, как устроена мультирегиональность на уровне всей платформы, — в статье «Мультирегиональная архитектура ресторанной платформы».
Что проверить перед запуском миграции
Прежде чем включать перенос профиля для всех пользователей, стоит явно протестировать несколько граничных сценариев:
пользователь с нулевым балансом и без уровня — перенос не должен создавать ошибку там, где переносить, по сути, нечего;
пользователь с максимальным для системы уровнем и большим накопленным балансом — граница шкалы часто и есть та точка, где проявляются округления и лимиты;
пользователь, который уже начал операцию (например, оформляет заказ) в момент миграции, — важно понять, что происходит с его текущей корзиной и бонусами;
повторный вход того же пользователя после переноса — система не должна пытаться забрать профиль из старой системы во второй раз.
Что будет, если пользователь так и не установит «обновление» и продолжит пользоваться старым приложением?
Это вопрос конкретной стратегии поддержки старой версии — технически перенос происходит только при первом входе в новое приложение, поэтому пока пользователь на старом, его профиль остаётся в прежней системе.
Можно ли перенести не весь профиль, а только часть данных, например баланс без уровня?
Технически можно ограничить перенос нужными полями, но тогда логика начисления бонусов в новой системе должна будет как-то компенсировать отсутствие уровня — проще и надёжнее переносить профиль целиком.
Как быть с реферальными программами и промокодами, выданными в старой системе?
Это отдельная часть переноса профиля, которую стоит явно продумать до запуска: если реферальные связи и неиспользованные промокоды не входят в перенос, об этом стоит заранее предупредить пользователей.
Как устроена платформа лояльности целиком и какие ещё механики в неё входят
Как мы объединили 18 независимых iiko в единую систему управления франшизой
Особенности лояльности в разных странах
Мультирегиональная архитектура ресторанной платформы