
К нам обратился собственник сети баров и ресторанов London Restaurant Group. Запрос был такой: разработать мобильное приложение с полноценной программой лояльности.
Изначально требовалось внедрить понятную систему бонусов, чтобы мотивировать гостей к повторным визитам. Кроме того, собственник хотел, чтобы приложение фиксировало вкусовые предпочтения каждого гостя и в дальнейшем отправляло персонализированные предложения. Это позволило бы увеличить средний чек и было бы дополнительным стимулом к посещению. Логика простая: привлечь нового гостя намного сложнее и более затратно, чем удержать старого.
Также заказчик хотел оперативно информировать гостей о новостях в ресторанах через push-уведомления и дать им возможность купить билеты или забронировать столик в несколько кликов.
Далее расскажем, как наше агантство по разработке мобильных приложений на флаттере решало поставленные задачи, с какими сложностями столкнулось и что получили в результате. Напоследок приведем стек технологий, который применялся в проекте.
Этапыразработки
Заказчика сопровождали 5 специалистов: проджект-менеджер, дизайнер, backend- и frontend-разработчики, тестировщик.
Мы разрабатывали мобильное приложение с нуля. Поэтому начали с MVP, чтобы оценить перспективы и не раздувать бюджет.
MVP (minimum viable product) — это минимально жизнеспособный продукт, достаточный для запуска и тестирования на «живых» пользователях.

Тесты решили провести на малой выборке гостей. Поэтому к первой версии подключили только один бар. Мы придерживались такой стратегии:
- минимизировать затраты заказчика;
- предусмотреть возможность масштабирования;
- создать удобный интерфейс для персонала и гостей.
Текущий функционал мобильного приложения
Ниже рассмотрим порядок разработки мобильного приложения и его текущий функционал, а затем обсудим, что мы планируем улучшить.
№1. MVP
На этапе MVP реализовали такой сценарий:
- Гость загружает приложение.
- Даём ему QR-код со скидкой.
- Администратор сканирует код и видит профиль гостя.
- Администратор присваивает гостю определенный тег, например, «проблемный» или «предпочитает шоколадный брауни».
- Информация о посетителе передается в отдел маркетинга.
- Спустя время пользователь получает примерно такое push-уведомление: «Попробуйте любимый брауни, но с белым шоколадом».
Благодаря функции тегирования нам удалось составить портрет каждого гостя.
Ещё пример. Допустим, через неделю у нас проходит мероприятие — фестиваль пиццы в итальянском ресторане. Решение простое: парсим любителей пиццы и отправляем им персональное приглашение. Мы заранее знаем: они вряд ли откажутся от такого предложения.
№2. QR-билеты
Так как MVP оказался успешным, заказчик дал добро на доработку приложения.
Первым делом добавили раздел «Новости», чтобы пользователи могли смотреть предстоящие мероприятия и покупать билеты. Это особенно актуально для тех, кто часто прилетает на отдых в Сочи.
После оплаты мы генерировали QR-код участника мероприятия. Гость показывал его охране и заходил, если всё в порядке.
Механика, очевидно, понравилась всем: продажи билетов сразу выросли на 5%, а на сегодня прирост составил уже 20%.
№3. Апгрейд программы лояльности
Заказчик не хотел ограничиваться банальной скидкой, поэтому запустили многоуровневую программу лояльности, после внедрения которой зарегистрированные гости получали кэшбек и могли оплатить баллами до 50% счёта.
Процент кэшбека растет пропорционально годовой сумме покупок. На таблице видно, как это работает:
|
Статус |
Процент накопления |
Процент списания от суммы чека |
Процент списания от суммы банкета |
Старт, руб |
|
Start |
5 |
50 |
0 |
0 |
|
Premium |
10 |
50 |
0 |
100 000 |
|
Vip |
15 |
50 |
100 |
500 000 |
|
INFINITY |
20 |
50 |
100 |
по запросу |
Для автоматизации программы лояльности подключили сервисы R-Keeper и IIKO. Чуть позже карта постоянного гостя стала доступна в Apple Wallet и Google Pay.
№4. Онлайн-бронирование
Сейчас попасть в меню «Бронирование» можно из двух разделов: «Новости» и «Рестораны». Когда пользователь переходит в ресторан, он видит 3 функциональные зоны:
- О заведении. Здесь красочное описание: какие кухни доступны, для кого подойдет, кто шеф-повар и т.д.
- Доступные опции. Перечисляем всё, что доступно гостю: есть ли программа лояльности, столики для питомцев, бесплатная парковка, детская комната, безбарьерная среда.
- 5 активных кнопок: «Написать», «Позвонить», «Забронировать», «Доставка» и «Меню». Пользователь может зарезервировать столик самостоятельно либо попросить об этом в чате.
Сама форма бронирования состоит из пяти пунктов: выбор заведения, дата брони, количество гостей, время бронирования, пожелания в виде комментария.
№5. Пользовательские фильтры
Мы также предусмотрели фильтры, чтобы пользователям не приходилось изучать сразу все новости и рестораны. Для мероприятий подобрали такие критерии:
- рестораны (можно отметить избранные);
- дата: начало и конец;
- формат: мероприятие или фотоотчет;
- статус: текущие или завершенные.
Для ресторанов продумали следующую логику:
- Комфорт. Здесь собрали доступные опции, которые обсуждали выше.
- Концепция. Тут можно отобрать заведения по виду кухни, наличию банкетов и удобству для семьи.
- Меню. Что у нас по блюдам, где уважают ЗОЖ и кормят собачек.
- Расположение. Настраиваем предельный радиус поиска и получаем подходящие рестораны.
На этом этапе возникли определённые сложности, но о них расскажем отдельно.
Планы развития мобильного приложения
В этом году планируем такие обновления:
- Привязка к тейбл-тентам. Тейбл-тент — это настольная табличка, обычно рекламного содержания. Мы хотим встроить в нее информацию о столике и ссылку на приложение. Гость будет сканировать QR-код и переходить в приложение, если оно установлено. В ином случае откроется веб-ссылка, где гость также сможет выбрать блюда, оставить чаевые, разделить или оплатить счёт, но без бонусов и кэшбека. Это позволит не дожидаться официантов в дни высокой загруженности. Система сама сообщит администратору, что счёт уже закрыт и беспокоиться не о чем.
- 3D-туры по заведениям. У постоянных гостей часто бывают любимые столики. Чтобы новый посетитель легко присмотрел хорошее место, мы внедрим 3D-туры. Пользователь сможет изучить обстановку, двигая камеру от первого лица — так, как будто лично побывал в ресторане. Расстояние до танцпола, кухни, барной стойки, вид на море и горы — всё это будет включено.
- Ведение статистики. В будущем хотим интегрировать сервис Prime Hill, чтобы иметь больше метрик для аналитики.
- Перенос админ-панели в web. Настроим 3 уровня доступа к веб-админке: администратор, менеджер и официант. Каждый сотрудник получит определенную роль. Понятно, что официанту совсем не нужна функция добавления новостей или просмотра статистики. Этим должен заниматься администратор. А вот следить за бронью столиков — прямая обязанность официанта.
Почему мы не предлагали заказчику готовые решения
От аналогов отказались по следующим причинам:
- необходимость вносить абонентскую плату;
- несовместимость с программой лояльности;
- невозможность оплатить счёт без установки приложения;
- неуместность гео: жителям Сочи предлагаются рестораны по всей России.
Тем не менее, мы обратились к партнёрам за некоторыми решениями. Чтобы наладить эквайринг и автоматизировать программу лояльности, мы подключили R-Keeper, Eat&Split и IIKO. Интеграцию провели быстро, поскольку сервисы взаимно совместимы.
Похожиепроекты


Зачемресторануприложение?
Подведем промежуточные итоги работы нашего агентства по разработке мобильных приложений на флаттере:
- продажи билетов поднялись на 20% за счёт QR-кодов для мероприятий;
- средняя оценка пользователей выросла до 8,9 по всей сети;
- в 2023-м мы имели базу на 2000 лояльных гостей, а сейчас их уже 13700;
- по словам заказчика, конкуренты очень хотят такое же приложение.
Работа не останавливается, в 2024-м собираемся выпустить ещё несколько обновлений. С учётом этого отметка в 20000 пользователей кажется вполне реальной.
Сложностиприсозданииприложения
В процессе разработки обнаружили 3 проблемы, которые, кстати, оперативно решили:
- Недостаток технологий в фреймворке Django. Фильтры оказались удобными для пользователей, но не для администраторов. Добавлять новые теги приходилось в одно и то же поле. Из-за этого получалась «простыня», которую тяжело редактировать. Мы написали библиотеки с категориями фильтров, и проблема отпала.
- Потенциальный абьюз QR-билетов. По одному QR-коду могло пройти несколько человек. Чтобы такого не было, завели 2 счётчика: сколько билетов куплено и сколько гостей пришло. После сканирования код становился недействительным. Это исключило возможность повторного использования и облегчило работу хостес. Теперь заказчик точно знал, сколько участников ещё ожидается.
- Ошибки гостей. Гость мог ввести неверный номер столика и получить чужой счёт. С этим разобрались легко: при сканировании поле «Номер столика» заполняется автоматически, поскольку информация уже встроена в QR-код.

Технологии
Кейсы,которымимыгордимся






