Разработали с нуля витрину мультибрендового магазина Brandly

Разработали с нуля витрину мультибрендового магазина Brandly
5 минут

Есть запрос на внедрение?

Напиши нашим консультантам и назначьте встречу

Клиент

Inventive Retail Group — крупный оператор интернет-магазинов и розничных сетей на территории России (re:Store, Street Beat, Samsung, Xiaomi, Hiker, UNOde50, «Мир кубиков» и др.), дистрибутор и поставщик бизнес-решений в премиальном сегменте.

По данным на 2023 г., компания владеет 365 розничными точками в более чем 30 городах России. Выручка за 2022 г. составила 71 млрд руб. Входит в группу компаний «Ланит».

Задача: создать витрину онлайн-магазина оригинальных товаров зарубежных брендов

Клиент пришёл к команде KT.Team с запросом на разработку онлайн-магазина Brandly. Ассортимент магазина состоит из оригинальных товаров от брендов, которые ушли с российского рынка. Магазин покупает оригинальные товары за рубежом и доставляет в Россию. При этом для покупателя предусмотрены привычные условия: оплата заказов российскими картами, гарантия и замена брака, подтверждение оригинальности товаров.

Ассортимент витрины Brandly | KT.Team

{{cta}}

Чтобы обеспечить работу магазина, Inventive Retail Group создала инфраструктуру в том числе и за пределами России. Логистику Brandly поддерживают несколько складов на базе крупных мировых логистических компаний, а специально для работы площадки компания открыла офис в ОАЭ.

KT.Team отвечала за фронтенд-разработку Brandly. Необходимо было разработать всю фронтенд-часть магазина: главную страницу, страницы брендов и карточки товаров, страницы поиска и сравнения, личный кабинет пользователя, корзину, избранное и т. д. Задачи включали разработку не только внешнего вида страниц, но и логики поведения пользователей: как пользователь попадает на каждую страницу, что может на ней делать и куда переходит далее.

Задачи, связанные с бэкенд-частью и PIM-системой, оставались на стороне клиента.

Контекст задачи

  • Вместе с клиентом развивали проект ещё во время разработки.

На старте команда KT.Team получила от клиента дизайн-макеты разделов и краткое ТЗ. В процессе работы проектный менеджер и разработчики KT.Team вместе с командой заказчика дорабатывали функциональность продукта, улучшая пользовательский путь. К моменту запуска командам удалось расшить несколько узких мест, которые могли ухудшить пользовательский опыт покупателей магазина.

  • Синхронизировались с несколькими командами разработки.

Над проектом одновременно работало несколько команд: фронтенд на стороне KT.Team, бэкенд на стороне Brandly и т. д. Рассинхронизации в реализации элементов магазина удалось избежать за счёт открытой коммуникации между командами.

  • Учли особенности нескольких категорий товаров.

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

Результат 1: разработали гибкую архитектуру, которая позволяет легко добавлять и менять функции

Бэкенд онлайн-магазина реализован на e-commerce-платформе Magento 1. Клиент использует поисковый движок Elasticsearch и систему управления базами данных Redis.

Перед командой KT.Team стояла задача собрать архитектуру фронта, которая была бы совместима с выбранным бэкендом. Важным требованием была возможность разбить разработку на небольшие задачи и разрабатывать (дорабатывать) функции итерациями.

На момент старта проекта у команды KT.Team был девятилетний опыт реализации проектов на Magento (с некоторыми кейсами можно ознакомиться здесь→). Учитывая особенности платформы и требования к поддержанию проекта, команда предложила скорректировать стек. Для разработки фронтенда выбрали open-source-инструменты — метафреймворк Next.js на базе библиотеки для построения интерфейсов React. Чтобы соединить запросы от пользователей с бэкендом, реализовали API на фреймворке Express.js.

Упрощенная архитектурная схема Brandly | KT.Team

Это позволило автоматизировать подгрузку страниц. Например, в поисковой строке пользователь вводит запрос: «кроксы». Ещё до того как он нажмёт Enter, под поисковой строкой подгрузятся мини-карточки товаров, соответствующих запросу. Фронт обращается к Elasticsearch, который содержит все индексы товаров и подбирает их в соответствии с заданными правилами.

Формирование карточек товаров тоже автоматизировано. Команда KT.Team доработала структуру карточек товаров для разных категорий. При добавлении нового товара система «опознаёт», к каким категориям он относится, и выбирает нужный шаблон.

Многие элементы интернет-магазина можно изменить через админпанель Magento без помощи разработчиков:

  • наполнение главной страницы (баннеры, категории, подборки товаров);
  • блоки «Распродажа» (наличие и содержание);
  • бегущие строки;
  • виджеты;
  • страницу «О нас» — тексты, условия доставки и возврата.

Эти поля разработчики KT.Team сделали настраиваемыми. Чтобы изменить их наполнение, контент-менеджеру достаточно отредактировать нужный текст, поменять или добавить виджеты по инструкции. Фронт сделан так, что изменения этих разделов и страниц органично встраиваются в существующий дизайн.

Содержимое настраиваемых полей встраивается в существующий дизайн онлайн-витрины | KT.Team

Этап тестирования продукта не был отделён от разработки. Как только фича была готова, команды KT.Team и Brandly тестировали её, получали обратную связь от систем и зачищали баги. Это позволило разбить реализацию на небольшие задачи и избежать откатов к предыдущим версиям.

Этап разработки занял менее семи месяцев: проект стартовал в начале сентября 2022 г., 1 мая 2023 г. был полностью готов интернет-магазин, а 12 мая 2023 г. он был запущен и принял первых покупателей.

Результат 2: доработали функционал личного кабинета, чтобы улучшить пользовательский опыт покупателя

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

Опыт KT.Team в разработке e-commerce говорил о том, что такая структура учитывает не все распространённые пользовательские кейсы. Поскольку команда KT.Team отвечала за понятность и удобство интернет-магазина, важной частью работы над проектом стал анализ логики прохождения пользователей от главной страницы до отслеживания статуса заказа.

Команда описывала возможные сценарии и логику поведения пользователей, выявляла, где эта логика не соответствует прописанной в ТЗ функциональности, и согласовывала изменения с клиентом.

В итоге личный кабинет вырос до пяти вкладок: «Личная информация», «Информация о товаре», «Отзывы», «Статус заказа» и «Возвраты». На основании разных покупательских кейсов мы вместе с клиентом расширили функциональность личного кабинета.

  • Добавили возможность указать в дополнение к основному имени и адресу покупателя дополнительные. Это позволяет, например, оформить доставку подарка — хоть в соседний дом, хоть в другой регион.
  • Разделили информацию о доставке товаров в одном заказе.
  • Предложили дополнительные услуги к некоторым товарам. Например, при покупке ноутбука можно прямо в корзине добавить русификацию ПО, страховку, расширенную гарантию.
Интерфейс корзины Brandly | KT.Team

Результат 3: покупатель точно понимает статус и дату доставки каждого товара в составном заказе

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

Проанализировав вместе с клиентом минусы такой механики, команда KT.Team предложила привязать статусы к каждому отправлению, а не ко всему заказу в целом. Это повысило прозрачность для покупателей и исключило ситуации, когда статус заказа в личном кабинете (например, «на таможне») расходился с реальным (курьер с частью товаров звонит в домофон).

Разные статусы для разных заказов | KT.Team

Результат 4: проработано множество сценариев поведения, что позволило избежать багов и обеспечить пользователям больше возможностей для покупки товаров

Важная часть работы над проектом — задавать вопросы о функциональности. Например, разрабатывая страницу сравнения товаров, команда KT.Team исследовала:

  • как товары попадают на эту страницу;
  • как должно отображаться сравнение;
  • что произойдёт, если к сравнению будут добавлены товары из разных категорий, имеющих разную структуру карточки товара;
  • как пользователь сможет удалить или добавить товары к сравнению;
  • что, если пользователь захочет добавить товар в корзину прямо со страницы сравнения?

Команда KT.Team выявляла эти сценарии, прописывала их (и желаемые исходы), утверждала с клиентом и брала в разработку. Это позволило отработать многие неочевидные запросы ещё до запуска интернет-магазина.

Результат 5: сайт справляется с постоянно высоким потоком пользователей

Команда KT.Team подбирала стек проекта с расчётом на высокие нагрузки и ориентируясь на предыдущий опыт разработки в e-commerce. Поэтому был выбран фреймворк Next.js, который хорошо показал себя под нагрузкой и не потребляет много ресурсов на сервере (CPU/RAM). Одновременно можно развёртывать несколько реплик приложений, что позволяет поддерживать высокий трафик без отказов и снижения скорости загрузки.

По состоянию на середину июня 2023 г. развёрнуто 42 реплики. Запросы от пользователей распределяются между ними, и каждой реплике приходится обрабатывать меньше запросов. Сайт работает быстро даже при больших наплывах трафика. Например, в день запуска количество пользователей доходило до 1 тыс. одновременно, и лагов не было.

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

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

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

Это позволило синхронизировать выпуск функций в прод: команда бэкенда разрабатывала их в PIM-системе, Magento и др. Команда KT.Team — на стороне фронта (сайта интернет-магазина).

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

Это позволило проектной команде Brandly показывать на внутренних презентациях лучшую динамику развития продукта.

Итоги

  1. Полностью реализовали фронтенд онлайн-магазина в трёх версиях: десктопной, планшетной и мобильной. Проект был успешно выпущен в прод в первой половине мая 2023 г.
  2. Предусмотрели адаптацию фронтенда для каждой из версий и настроили инструменты для корректной индексации сайта поисковыми системами.
  3. Сайт легко справился с нагрузкой: уже в день запуска его посетили примерно 12 тыс. уникальных пользователей, средний онлайн держался на уровне 550, а на пиках превышал 1 тыс. В текущей версии площадка способна легко выдержать до 5 тыс. онлайн-посетителей одновременно.

{{cta}}

Пришлем вам необходимые материалы или КП

Ответим в течение 30 минут!
Оглавление
Другие кейсы

Смотреть все

Интегрировали Pimcore DAM для крупного производителя мебели, чтобы сократить затраты на цифровые активы

Подробнее

Разработали целевую схему интеграции систем для производственного предприятия. Внедрили технологию ESB и запустили 48 потоков

Подробнее

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

Подробнее

Смотреть все

Мы используем файлы cookie, чтобы предоставить наилучшие возможности сайта

Ок