hollyshop App

Мобильное решение для крупного
бьюти-ритейлера

hollyshop — российский мультибрендовый интернет-магазин корейской косметики. В ассортименте более 9 000 товаров от 350+ брендов. Бизнес делает упор на онлайн-продажи с персонализированными подборками и акциями, а также на офлайн-магазины в крупных городах.

О проекте

Команда hollyshop уже начинала разрабатывать мобильное приложение с другой командой, но не смогла довести его до релиза. Нам необходимо было проанализировать состояние проекта и реализовать в короткие сроки.
У hollyshop более 80% трафика приходит с мобильных устройств. Основной задачей мобильного приложения стало формирование сильного retention-инструмента: повышение частоты повторных покупок и оптимизация стоимости возврата клиента.
СПЕЦИАЛИСТЫ ПРОЕКТА
2 Flutter
|
2 Backend
|
1 PM
|
1 QA
СТЕК ТЕХНОЛОГИЙ
Flutter
Bitrix
Slim
Влад Липатьев
Head of e-commerce
Мы изначально строим приложение не как «еще один магазин», а как удобного личного бьюти-ассистента.

В основе нашего бренда лежит забота о пользователе и одна из главных целей для нас — сделать персонализированную экосистему для каждого клиента.
Приложение для пользователя это:
Мгновенный доступ к любимым брендам, истории заказов, баллам и акциям без входа на сайт
Персональные рекомендации:  приложение запоминает тип кожи, любимые бренды, показывает релевантные новинки
Push-уведомления с напоминаниями о новых поступлениях, днях рождения, бьюти-советах и ​​акциях.
Быстрые покупки: автологин, повторы прошлых заказов
Чувство заботы и связи: не просто покупки, а ощущение: «меня здесь знают и понимают»
Ожидания бизнеса:
Конверсия в заказ: 2,5–3 %
Repeat rate: 50–55 %
Средняя частота покупок: 3+ в год
Средний чек: +15 %
Доля заказов через приложение: 25–30 %
от онлайн-продаж
детали сотрудничества

hollyshop для Alto — проект, в который мы вложили душу

Мы познакомились с продуктом и брендом.

Перед началом работы мы посетили сердце hollyshop — офис, где происходит вся магия, которую не видит клиент.

Мы посмотрели как работает команда, кто и за что отвечает, познакомились с брендами, которые представлены во флагманском магазине и сами попробовали продукцию.

Это сотрудничество стало чем-то большим, чем просто проект.

Иван, наш СЕО, вместе с Владом выступили на  конференции AGDays в Екатеринбурге, которую мы проводим для IT индустрии с 2020 года. Рассказывали про совместный процесс работы, сравнивали экономику и скорость. Влад делился, как они отбирают подрядчиков и почему в их случае логичнее был аутсорс, а не инхаус.
После поездки в Екатеринбург, Влад дал фидбек, что познакомился с классными людьми и увёз с собой несколько идей для дальнейшего развития.

Для нас этот фидбек стал главным KPI. Потому что мы делаем нечто большее — мы помогаем клиенту расти не только через разработку, но и через новые связи, идеи и подходы.

Наше совместное выступление на AGDays
детали проекта

Ведение проекта

Что получили на входе
Клиент предоставил готовый дизайн, частично реализованные методы в swagger и экраны на Flutter. Документация по проекту отсутствовала, что усложняло старт проекта.

Сложности, с которыми столкнулись
Полное отсутствие документации и короткие сроки реализации проекта.
Еженедельные обновления web-версии, которые влияли на работу мобильного API, требовали адаптации и дополнительного контроля корректности данных.
Каждый метод, описанный в swagger нужно было проверить на корректность работы. Для этого нужно сверить более 100 интерфейсов в figma с набором данных, получаемых от бэкенда.
детали проекта

Как работали над проектом

Влад Липатьев
Head of e-commerce
Если перевести часть активной аудитории в мобильное приложение и выстроить в нём персонализированную экосистему ухода: покупки, рекомендации, лояльность, пуши, то мы сможем повысить retention и LTV при тех же маркетинговых затратах.
Задачи
Создать техническое задание и задокументировать проект
Разработать мобильное приложение на Flutter
Выстроить работу с web-командой, которая еженедельно вносит изменения в продукт
Подготовить сборки для публикации и выполнить релиз в AppStore и Google Play
В ходе работы мы детализировали каждый экран и сценарий, согласовывая логику и визуальные решения с заказчиком.

Провели 90+ встреч в Zoom, чтобы уточнить требования и зафиксировать финальные решения.
Решение
Изучили каждый метод в swagger, сравнили с интерфейсами. Утвердили список методов, которые отсутствуют и нуждаются в доработке. Провели сбор требований, утвердили бизнес и функциональные требования, разработали архитектурное решение
Разработали мобильное приложение на Flutter и провели тестирование реализованных пользовательских сценариев
Утвердили правила обработки пострелизного бэклога и совместного принятия архитектунрых решений
Утвердили описание и медиа-материалы для публикации с клиентом. Подготовили чек-листы проверки перед релизом в сторы, собрали билд и провели релиз
детали проекта

Реализованный функционал

Регистрация нового пользователя

Регистрация выполняется по номеру телефона с подтверждением через 4-значный код; повторная отправка кода доступна не ранее чем через 40 секунд.
Все действия с чекбоксами логируются с фиксацией IP-адреса, даты и времени.

Подборки

Подборки собирают товары по разным темам — идеи подарков, тематические коллекции, рекомендации команды и категории ассортимента. Это позволяет просматривать товары не по одному, а в логичных группах.

Этот инструмент помогает бизнесу продвигать нужные товары и доносить их до аудитории.

Выбор блогеров

В бьюти-сфере решения о покупке часто построены на рекомендации от инфлюенсеров из-за большого выбора и сложного решения о покупке.

Мы реализовали раздел, через который пользователь выбирает подборку конкретного блогера и переходит к рекомендованным товарам.

Скидки и популярные товары

На главном экране приложения показываются актуальные скидки и хиты продаж без необходимости переходить в каталог.

Скидочные товары управляются разделом каталога, а блок «Хиты» формируется на основе данных Mindbox.

Такой сценарий сокращает путь до покупки: пользователь видит востребованные и выгодные позиции в первые секунды, а бизнес получает дополнительный оборот за счет увеличения среднего чека.

Журнал hollyshop

Еще один способ помочь пользователю сформировать свой выбор, а для бизнеса — точка контакта с покупателем.

Статьи сгруппированы по темам и отмечены тегами, в которых удобно ориентироваться и искать информацию. Из материалов можно сразу перейти к связанным товарам или продолжить чтение статей по интересующей теме.


Рекомендуем вам

Рекомендации формируются на основе данных Mindbox с учётом истории покупок и информации о пользователе, включая тип кожи.

Приложение запоминает предпочтения и обновляет подборку по мере изменений, показывая только релевантные товары.

Такой подход превращает приложение в персональный «косметический шкаф», где ассортимент подстраивается под конкретного пользователя, а не под общий каталог.

Стримы

В приложении доступны прямые эфиры и записи трансляций с возможностью участвовать в обсуждении во время стрима. Все товары, показанные в эфире, собраны в одном разделе и доступны для перехода в карточки.

Стримы дополняют каталог интерактивным форматом выбора: пользователь получает ответы в реальном времени и сразу переходит к покупке в рамках одного сценария.

Подарочные карты

Тип карты выбирается на первом шаге — электронная или физическая — после чего отображается соответствующая форма с нужными полями.

Для электронной карты заполняются данные получателя и текст пожелания, оплата происходит сразу, карта отправляется на email.

Физическая подарочная карта добавляется в корзину как обычный товар, что позволяет продолжить покупки и оформить заказ вместе с другими товарами.

Программа лояльности

Размер скидки и статус уровня лояльности обновляются автоматически после каждой покупки. Приложение отображает текущий уровень пользователя и показывает, сколько осталось до следующего.

Это создаёт понятный геймифицированный сценарий: пользователь видит прогресс и понимает, как увеличится его скидка при следующем заказе.

Бренды

Список брендов можно просматривать в двух режимах — по алфавиту или по странам. Алфавитная навигация позволяет быстро перейти к нужной букве.

При группировке по странам бренды выводятся списком внутри соответствующего региона.

Фильтры

Фильтры позволяют выбирать сразу несколько параметров и учитывать наличие товаров в конкретном магазине. Количество подходящих товаров обновляется сразу при изменении условий.

Карточка компонента

На странице товара выделены основные активные компоненты состава. Переход по компоненту открывает отдельную карточку с описанием и подборкой товаров, в которых он используется.

Такой переход позволяет двигаться от изучения состава конкретного продукта к выбору других средств с тем же компонентом, не возвращаясь к поиску по каталогу.

Доступность офлайн

В карточке товара отображается наличие в офлайн-магазинах с указанием городов и точек продаж. Вместо точных остатков используется градация: «мало» — при наличии от 1 до 5 единиц, «мало» с расширенным индикатором — от 6 до 10, «много» — от 11 единиц и выше.

Такой формат помогает пользователю планировать визит в магазин и снижает риск приехать за товаром, которого уже нет в наличии.
Рейтинг товара формируется на основе оценок покупателей и отображается как среднее значение с разбивкой по количеству оценок каждого уровня.

Отзывы о товаре

В карточке товара отображаются последние четыре отзыва, при этом отзыв текущего пользователя, если он есть, показывается первым. Из блока можно перейти к полному списку отзывов и форме добавления нового.

Оставлять отзывы можно только после покупки, с возможностью редактирования. В отзывах предусмотрены ответы от бизнеса, это поддерживает обратную связь и повышает доверие.

Корзина

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

Если часть товаров становится недоступной, они отображаются в блоке «Нет в наличии», которым можно управлять отдельно.

В логике заложена длительная обработка ошибок, например, ограничение по правилам корзины. В таких случаях появляются понятные уведомления с причинами и подсказками.

Оформление заказа

В процессе оформления пользователь указывает данные получателя и выбирает способ получения заказа. При этом система сохраняет введенные в блоке данные и автоматически подтягивает их при повторных заказах.

Дополнительно реализована интеграция с общей формой обработки заказов: при выборе отметки «Требуется оператор звонка» в админке автоматически выставляется соответствующий флаг, а при выборе доставки через «Почту России» обязательно заполнение фамилии.
При повторных заказах поля подставляются автоматически. Это упрощает процесс оформления: пользователь вводит данные один раз, а при последующих покупках система подгружает их с сервера.

Оплата

На этапе оплаты пользователь может применить или отменить промокоды и купоны. Это обеспечивает гибкость управления скидками: изменение отображается сразу же в корзине.

Для осуществления оплаты пользователь перенаправляется в раздел эквайринга внутри приложения, где доступны возможные способы оплаты.

Уведомления

При авторизации пользователь получает доступ к уведомлениям о новых событиях и акциях. Система разделяет уведомления на новые и прочитанные, что позволяет быстро ориентироваться в информации.

Пользователь может перейти на экран управления уведомлениями, чтобы настроить предпочтительные каналы и типы сообщений.

Любимое

В разделе представлены сохранённые товары, доступ к ним открыт только для авторизованных пользователей. Список доступен из личного кабинета и через навигацию первого уровня.

Товары в «Любимом» можно сортировать и отфильтровать по наличию с помощью отдельного переключателя.

Заказы

В разделе «Заказы» пользователь может просматривать все свои покупки, сгруппированные по текущему статусу. Если заказов нет, интерфейс предлагает перейти в каталог и показывает рекомендации товаров, чтобы стимулировать новые покупки.

В деталях заказа отображаются его состав заказа, стоимость, статус и срок доставки.

Функция «Повторить заказ» позволяет скопировать все позиции в корзину и продолжить покупки, не стирая ранее добавленные товары.

Отзывы в личном кабинете

В разделе «Отзывы» мы реализовали отображение всех товаров пользователя с разделением на те, по которым уже оставлены отзывы, и на те, где отзывов нет.

Сейчас при нажатии на рейтинг в виде звёзд у товара пользователь видит модальное окно с уже выставленной оценкой. Если рейтинг ещё не выставлен, открывается форма для добавления нового отзыва.

Итоги проекта

Бизнесовые результаты

За первую неделю приложение скачали 20 тыс. пользователей, что подтверждает гипотезу клиента о необходимости отдельного мобильного канала.


Технические результаты

Flutter обеспечил кроссплатформенную стабильность со временем отклика < 1с на главных страницах.

Интеграция пушей, диплинков и аналитики через Mindbox и Firebase обеспечила сбор данных о пользователях и удобное управление коммуникациями.

Организационные результаты

Релиз проекта произошел через 8 месяцев с момента заключения контракта.

hollyshop получил функциональное мобильное приложение для конечных пользователей и уже сейчас мы обсуждаем развитие приложения.


Команда

Алина С.
Менеджер проекта
Иван К.
Flutter-разработчик
Артур Ш.
QA
Никита Б.
Технический директор
Антон Ч.
Backend-разработчик
Максим Гельмутдинов
Backend-разработчик
Наталья Смердова
Flutter-разработчик