Главное о кейсе
— Перезапустили интернет-магазин «Армия России» на новой платформе с headless-архитектурой, устойчивой к атакам.
— Реализовали интеграции с самописной ERP клиента, sms-шлюзом, Retail CRM, эквайрингом, службами доставки и т.д
— Запустили частичную омниканальность в рамках MVP: появилась программа лояльности, а розничные магазины в Москве теперь работают как пункты выдачи заказов.
— Реализовали гендеро-зависимость: весь контент сайта подстраивается под выбранный раздел (мужчины, женщины, дети) — меняются фотографии товаров, содержимое меню и другие блоки.
— Реализовали механизм валидации цен, который позволяют исключить самые частые человеческие ошибки при заполнении трёх типов цен в ERP системе клиента.
Клиент: АО «Военторг» — официальный поставщик российской армии, компания, подведомственная Министерству обороны РФ, представляет бренд «Армия России».
------------
English text:
https://docs.google.com/document/d/1GDBwUWzSu4GEzosZhEvM79l7BJ1MoESXrmBXHb-sIe0/edit#heading=h.30j0zll
Как проект изменил жизнь пользователей
— У Военторга есть некоторые виды товаров, на которые у целевой аудитории существует особый спрос: например, куртка, как у президента. Вывели популярные позиции на главной, чтобы товары высокого спроса можно было легко найти на сайте.
— Накануне больших праздников вроде 9 мая или 23 февраля пользователи заказывают на сайте подарки. Мы добавили возможность выводить блок с подарками в ленту на главной странице сайта, чтобы пользователям было проще найти и выбрать нужные товары к праздникам.
— Сайт запоминает «гендер» пользователя после выбора корневого раздела — мужчины, женщины, дети. У разных гендеров разное категорийное меню, разные главные страницы с точки зрения контента и промоблоков, даже фотографии товаров разные: некоторые SKU сфотографированы в разных ракурсах и на мужчине, и на женщине, а отображаемые на сайте фотографии зависят от текущего гендера пользователя.
— Разработали функционал для подбора комплектов одежды в милитаре стиле. Когда пользователь заходит в карточку товара, например, футболки — в разделе с дополняющими товарами он видит шорты или штаны, которые составляют полный образ с этой позицией.
— Пользователь может быстро купить товар на сайте без авторизации: достаточно ввести номер телефона и заказ будет оформлен. Если номер новый, система зарегистрирует и авторизует нового пользователя. А если для этого номера уже создан личный кабинет — привяжет заказ к старому кабинету пользователя и при следующей авторизации пользователь увидит покупку в своем кабинете.
------------
English text:
https://docs.google.com/document/d/1GDBwUWzSu4GEzosZhEvM79l7BJ1MoESXrmBXHb-sIe0/edit#heading=h.e1hm7dg0fl66
Бизнес-задача и ее решение
Перезапуск электронной коммерции — один из ключевых проектов развития бренда «Армия России». Клиенту нужна была ecom-платформа, которая станет центральным элементом ИТ-ландшафта и будет готова к многочисленным интеграциям.
В связи со сложной геополитической ситуацией сайт был популярной мишенью для злоумышленников и регулярно подвергался атакам. Поэтому одной из задач клиента было обеспечение информационной безопасности.
------------------------
Решение.
Спроектировали для нового сайта headless-архитектуру, устойчивую к атакам и готовую к масштабированию.
Клиенту было важно, чтобы дизайн отличал интернет-магазин «Армия России» от множества других. Поскольку бренд имеет выраженное милитаристское направление, добиться уникальности удалось с помощью атмосферных деталей в интерфейсе. Например, иконка «Личный кабинет» сделана в виде человека в каске, на кнопке «В корзину» изображен прицел, а фон в футере дополнен армейскими узорами.
Одним из требований, влияющих на разработку проекта, была реализация гендеро-зависимости. Некоторые товары в ERP клиента представлены одним артикулом, но подходят и для мужчин, и для женщин (шапки, футболки и т.п.). Фотографии таких товаров были сделаны на моделях обоих полов, и нам нужно было определить какие именно изображения показывать пользователю в каталоге, подборках, корзине и других местах.
После выбора раздела (мужчины/женщины/дети) система запоминает выбранный «гендер» и это влияет не только на изображения товара, но и на другие элементы сайта — набор характеристик, размерную сетку, подборки товаров и баннеры на главной странице и т.д. При этом в бэкофисе управление контентом таких зависимых страниц и блоков выполнено в едином удобном интерфейсе, спроектированном специально для этой бизнес-фичи.
У клиента была необходимость управлять скидками на товары и разделы из админ-панели сайта, минуя ERP-систему. Мы разработали эту функцию — сотрудники могут назначать скидки не только на отдельные товары, но и на целые категории по заданным правилам — например, минус 15% на все футболки. Система автоматически сравнивает новую цену с МРЦ и при необходимости ограничивает размер скидки. Актуальная цена со скидкой отображается в каталоге и учитывается в сортировке по цене.
В своей работе Военторг использует большое количество ИТ-сервисов, с которыми нам нужно было интегрировать платформу. Вот лишь некоторые из них:
— ERP-система, отвечающая за товародвижение в рознице. Выгружается номенклатура, несколько типов цен и остатки в разрезе складов.
— RetailCRM. Выгружаются заказы, контрагенты, подписчики и прочая информация.
— Программа лояльности. Выгружается бонусный баланс и заказы для корректного начисления и списания бонусов. На акционные товары бонусы не начисляются. При списании бонусов учитывается минимальная розничная цена (МРЦ) товара.
— SMS-шлюз. Используется для отправки авторизационных кодов и статуса заказа.
— Unisender. Используется для отправки транзакционных писем.
— DaData. Используется для подсказок при нормализации адресов.
— CloudPayments. Эквайринг и касса.
— Службы доставки: Почта России, СДЭК, Boxberry и другие сервисы.
В рамках MVP мы запустили частичную омниканальность: московские магазины Армии России стали ПВЗ для интернет-заказов, а программа лояльности была пилотно внедрена на сайт и теперь внедряется в рознице. Военторг планирует продолжать развивать омни-подходы на базе запущенной платформы.
------------
English text:
https://docs.google.com/document/d/1GDBwUWzSu4GEzosZhEvM79l7BJ1MoESXrmBXHb-sIe0/edit#heading=h.53y7lnkumdkb
Крафт (мастерство), реализация, технические детали
Архитектура проекта
Проект реализован в виде клиент-серверного приложения с несколькими изолированными микро-сервисами. Отдельный сервис фронтенд-приложения (Vue, Nuxt,
node.js, PM2) имеет несколько инстансов для обработки пользовательских запросов и балансировщик, распределяющий нагрузку равномерно между ними. Сервис защищен AntiDDoS, напрямую отправить запрос, минуя защиту невозможно. Бэкенд, реализующий API и бэкофис проекта (Laravel, Bitrix) вынесен в отдельный сервис и изолирован в демилитаризованной зоне (DMZ) из соображений безопасности. Кроме этого есть отдельный служебный сервис, отвечающий за обмен информацией, в нем размещаются брокеры сообщений (RabbitMQ).
Особенности работы
Мультискладовость
Товарные остатки могут храниться на нескольких складах одновременно. У компании есть необходимость оперативно выводить склад из работы, поэтому нужно, чтобы пересчет остатков по всей номенклатуре работал быстро. Мы много внимания уделили производительности этой функции — при отключении склада запускаются автоматические механизмы пересчета и актуализации остатков товаров.
Обмен данными
Обмен с ERP реализован посредством брокера сообщений (RabbitMQ, формат JSON). Реализованы обмены номенклатурой, характеристиками, остатками, ценами (несколько видов). Внутри обмена данными реализована логика автоматического формирования единого товара и необходимых торговых предложений из разных сообщений.
Если сообщение с ценами будет обработано до сообщения с соответствующим SKU (появилась цена для которой нет товара), информация не потеряется — после появления SKU будет произведено сопоставление с уже сохраненной в базе ценой.
Ценообразование
На сайте нетривиальная логика ценообразования. В проекте присутствуют несколько видов цен: базовая, акционная, минимальная розничная цена, скидки. Между этими видами цен есть зависимости, а обновляются они из внешней системы, поэтому у нас реализован автоматический пересчет и актуализация цен на сайте в каталоге. Кроме того, в листинге SKU учитываются скидки, заведенные администратором вручную в бэкофисе. Фильтрация и сортировка в листинге происходят с учетом акционных механик.
------------
English text:
https://docs.google.com/document/d/1GDBwUWzSu4GEzosZhEvM79l7BJ1MoESXrmBXHb-sIe0/edit#heading=h.3dy6vkm
Инсайты, гипотезы, процесс создания и взаимодействия с заказчиком
В процессе разработки мы столкнулись с интересными особенностями работы компании.
1) АО «Военторг» — организация, подведомственная Минобороны РФ, и принципы работы внутри компании похожи на армейские. Один из таких принципов — дублирование функций. То есть задача должна выполняться, даже если система, отвечающая за нее, отказала. В результате, ряд функций, например, формирование накладной, были дополнительно разработаны на сайте несмотря на то, что согласно бизнес-процессу в ими пользуются внутри CRM.
2) Некоторые пользователи с высокими воинскими званиями часто покупают товары Военторга для себя или в подарок, но предпочитают не указывать свой телефон и персональные данные на сайтах. Специально для них мы предусмотрели возможность сохранить конфиденциальность с помощью регистрации по электронной почте без указания телефона.
3) У клиента существует 3 типа цен: базовая, акционная и МРЦ. Базовая и акционная цена видны покупателям в каталоге, а МРЦ (минимальная розничная цена) — это внутренний показатель, который помогает компании продавать товары, не уходя в минус. Цены заполняются в ERP вручную и иногда сотрудники компании вносят данные с ошибками.
Чтобы минимизировать риски от влияния человеческого фактора мы разработали систему валидации цен. Цены автоматически проверяются в момент обновления по нескольким сценариям, чтобы исключить наиболее популярные ошибки:
— Базовая цена не установлена
— Акционная цена выше базовой
— Акционная цена ниже МРЦ
— Базовая цена ниже МРЦ
— МРЦ товара установлена некорректно, например, в размере 1 рубль.
Если система находит одну из этих проблем, товар деактивируется до устранения ошибки, а на электронную почту администратора магазина отправляется письмо с артикулом, в котором обнаружена ошибка.
------------
English text:
https://docs.google.com/document/d/1GDBwUWzSu4GEzosZhEvM79l7BJ1MoESXrmBXHb-sIe0/edit#heading=h.biyc4hf7ezsi
Скриншоты
Комментарий заказчика
Перезапуск электронной коммерции это один из ключевых проектов в рамках развития бренда «Армия России». Нам потребовалась разработка ecom платформы, которая станет центральным элементом сложного ИТ-ландшафта компании.
Для разработки платформы мы выбрали агентство Braind. Коллеги отлично справились с задачей, перезапустив интернет-магазин с учетом всех поставленных нами требований. Компания продемонстрировала высокий уровень экспертизы в UX и дизайне, детально проработав все сценарии использования и интерфейсы с учетом омниканальности. Также хочется отметить и высокий технический уровень команды Braind. Реализована headless архитектура, сложные интеграции, также разработана гибкая система настройки скидок, учитывающая МРЦ.
В результате мы получили ecommerce платформу, которую можно продолжать развивать и масштабировать.
Мы довольны сотрудничеством с Braind и рекомендуем их как надежного партнёра.