Интернет-магазин для крупной фармацевтической сети из края, где гуляет амурский тигр
Результат Процесс
Амурфармация
Сибирикс

Амурфармация

Интернет-магазин для крупной фармацевтической сети из края, где гуляет амурский тигр

Амурфармация

Интернет-магазин для крупной фармацевтической сети из края, где гуляет амурский тигр
Аптечные проекты — классные. Потому что заставляют лишний раз вспомнить о своем здоровье, обновить офисную (и не только) аптечку и не дают заскучать со своими нетипичными интеграциями и фишками. Интернет-магазин для «Амурфармации» — как раз такой.
«Амурфармация» — старейшая фармацевтическая сеть на Дальнем Востоке с 75+ аптеками в разных городах Амурской области, которая работает в коммерческом и льготном сегментах рынка.

Кастомные настройки импорта

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

Игорь
Руководитель проекта
— Обычно фармацевтические сети торгуют «со склада», а у «Амурфармации» каждая аптека — своеобразный склад. Другая особенность — в федеральных сетях есть товары «под заказ», а здесь этого нет. Поэтому сайт должен показывать актуальные остатки по аптекам (складам) в реальном времени. Чтобы всё работало именно так, мы настроили обмен между ERP и сайтом каждые 20 секунд.

Евгений
Разработчик
— Чтобы настроить импорт остатков из всех аптек сети, мы написали модуль, который связали с сервером очередей. Когда ERP обращается к сайту для передачи остатков, мы перехватываем её файл и делим его на несколько пачек, которые отправляются на сервер очередей, где их ждут несколько Service worker-ов.

Благодаря такой схеме мы можем импортировать данные на сайт параллельно: как только один из worker-ов заканчивает импорт какой-то пачки, он приступает к следующей. За счет такого многопоточного процесса мы смогли в разы сократить время импорта — сейчас он занимает всего нескольких секунд. Так работает импорт не только остатков, но и цен, транзакций, бонусной системы и вообще всего, что только можно. C учётом разных аптек в разных городах с разными ценами и акциями.

Не совсем аптечный дизайн

На этапе агрегации требований мы внимательно изучили онлайн-аптеки конкурентов и продумали интерфейс пользователя с учетом лучших отраслевых решений и потребностей ЦА аптечной сети.

Через дизайн нам хотелось сломать стереотип, что аптека — это место, куда приходят заболевшие люди. Мы показали «Амурфармацию» как аптеку для жизни — такую, куда можно обратиться не только за лечением, но и за профилактикой в любой ситуации: собираешься ты в отпуск, планируешь беременность или готовишь ребенка к школе. Поэтому дизайн выполнили в светлых пастельных тонах с минимумом отсылок к типично аптечным цветовых схемам.
Мы придумали необычный промоблок для главной страницы и еще на этапе дизайна предложили разбить его на три части. Благодаря этому можно сразу показать три баннера с разной информацией, не утомляя пользователя галереями из 100 500 слайдов.

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

Евгений
Разработчик
— Настройки для баннеров — максимально гибкие. Даже можно просматривать маркетинговую статистику: количество показов и кликов считаются по специальному алгоритму, так что никакие обновления страницы с Ctrl+F5 им нипочем. Плюс в админке строятся интерактивные графики по этим данным.
«Амурфармация» выделяется на фоне других сетей своими фишками: здесь тебе помогут расшифровать рецепт по фото (этим занимаются сотрудники колл-центра сети) или без проблем собрать аптечку с готовыми наборами лекарств на все случаи жизни, а также — заказать оперативную доставку лекарств на дом. Эти преимущества мы тоже отразили на главной странице.

Виктория
Дизайнер
— На брейншторме перед главной страницей мы решили, что нужно как-то вкусно подать уникальные преимущества проекта. Так родился красивый второй блок с анимацией. На внутренних страницах сложностей не возникло, так как мы подробно обсудили логику на этапе прототипа. В общем, проект вышел интересным, сложным и очень жизнерадостным :)

Умная доставка онлайн-заказа

Ну казалось бы, что сложного — привяжи Яндекс.Доставку к интернет-магазину, да пользуйся. Но в фарме всё так просто не работает, потому что не каждый препарат можно заказывать онлайн из-за рецептурности или особенностей хранения: например, если лекарство требуется хранить в холодильнике, оно не подлежит доставке. Чтобы решить эту проблему, мы предусмотрели два сценария:

  1. Пользователь может заказать все препараты и забрать их самовывозом, предъявив рецепт, с оплатой при получении. В этом случае возможность онлайн-оплаты на сайте и заказа доставки пропадает.
  2. Пользователь может заказать часть товаров, которая отпускается без рецепта: для неё есть и самовывоз, и доставка Яндексом. Плюс доступно два варианта оплаты: при получении или онлайн на сайте. Остальные товары останутся в корзине — их можно будет забрать самовывозом.
Как выглядит страница оформления заказа в разных случаях
Аптека для самовывоза выбирается шагом раньше из списка или на карте. Так сделано потому, что у «Амурфармации» нет отдельного склада — и наличие и нужное количество товаров проверяется в конкретной аптеке. Только после этого можно переходить к оформлению заказа.

Игорь
Руководитель проекта
— Одна из фишек проекта — любимая аптека: пользователь в шапке сайта может выбрать удобную аптеку, которая автоматически будет указываться первой при оформлении заказа. Причем, остальные аптеки будут располагаться по мере удаленности от «любимой». Логикой «любимой аптеки» пронизан весь сайт: в каталоге, в корзине, в списке аптек — пользователь всегда видит то, что есть в избранной аптеке.

Киллер-фича: подбор аналогов

Маркетплейсы — законодатели мод в интерфейсах и дизайне каталогов. Пользователи настолько привыкли к ним, что требуют такого же удобства и заботы от любого е-коммерса. Например, пользователям нужен классный фильтр и под каждую категорию — свой. У «Амурфармации» фильтры учитывают море параметров вплоть до дозировок и рецептурности.

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

Но даже редкий маркетплейс похвастается фичей, которая есть в карточке товара в каталоге «Амурфармации» (про аптечных конкурентов вообще молчим) — это подбор аналогов.
Подбор аналогов — сразу в каталоге
Аналоги хороши тем, что можно сразу просмотреть цены на все похожие товары пачкой, а не искать каждый в каталоге по-отдельности. Пригодится, например, если пользователь не готов переплачивать за оригинальный дорогостоящий препарат и ищет его дженерик — препарат с составом, идентичным запатентованному компанией-разработчиком лекарства.

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

Умный поиск

Поиск работает на могучем ElasticSearch — предлагает подсказки в процессе и без проблем справится с запросами с опечатками и ошибками — даже на неверной раскладке клавиатуры.
Умный поиск не обращает внимания на неправильную раскладку клавиатуры
Когда наименований товаров слишком много (а для аптечной сети это норма), на странице с результатами поиска может оказаться множество товаров из абсолютно разных категорий, с разными свойствами и характеристиками. Чтобы быстрее найти среди этого нужное, пользователя здесь ждёт фильтр, который собирает воедино параметры всех найденных товаров из разных категорий и упорядочивает их: останется только нажать нужные галочки. Чтобы на странице результатов поиска работала фильтрация, мы также использовали ElasticSearch.
Обычно чай и капсулы — в разных категориях каталога, при поиске они оказались на одной странице. Для фильтра найти нужное из 50+ результатов поиска — проще простого

Личный кабинет для бонусной системы


Игорь
Руководитель проекта
— У заказчика уже была бонусная система с физическими пластиковыми картами. Чтобы внедрить её на сайте, мы создали личный кабинет — там пользователь видит историю всех своих заказов и начисленные бонусы. Бонусы пока можно потратить только в офлайне, например когда вы забираете заказ в аптеке.

Адаптив вместо мобильного приложения

У заказчика, кроме сайта, было мобильное приложение — коробочное решение, которое на сегодня устарело. Разработать новое — отдельный большой проект (сейчас он у нас в планах). Поэтому решили, что на первом этапе адаптивная версия сайта вполне может заменить его функционал. Мы сделали адаптив нового сайта по дизайну и функционалу максимально близким к приложению, чтобы им было удобно пользоваться одной рукой.

Игорь
Руководитель проекта
— Проект шёл гладко, несмотря на его тонкости и серьёзности. На агрегации требований казалось, что пожеланий так много, что нельзя объять все эти нюансы. Работа по Scrum в таких случаях особенно выручает: когда требования декомпозированы до мелочей, а проект расписан на четкие спринты, сложности исчезают — ты просто берешь и делаешь нужное шаг за шагом.

Бесшовный запуск

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

Игорь
Руководитель проекта
— Со старого сайта нам нужно было забрать:
  • пользователей (более 100 тысяч записей);
  • историю их заказов за последний год (более 500 тысяч записей);
  • бонусы по каждому пользователю.
Для переноса разработали специальную схему: написали скрипты, которые собрали всё со старого сайта, и скрипты, чтобы залить эти данные на новый. Объем данных получился около 50 Гб — это очень много.
Чтобы переезд прошел гладко, было необходимо закрыть сайт на время переноса данных, так как пришедшие в это время заказы могли потеряться. В среднем пользователи делают один заказ в минуту, а значит, каждая минута простоя стоит денег. Мы рассчитали минимальное время на перенос исходя из объёма данных: требовалось порядка 4 часов.

Сначала мы развернули новый сайт. Договорились с заказчиком, когда именно запустим импорт. Выбрали часы, когда меньше всего посетителей. Заранее провели тестовый импорт. Проверили, что накладок просто не может быть. Забрали данные со старого сайта и сразу же переключили домен. Как только домен переключился — все данные уже «переехали» на новый сайт. В аккурат к открытию новой аптеки сети в Приамурье.

Готовый проект