Пишите крутые статьи? Публикуйте их в авторитетном журнале Workspace.
Интаро
Оптимизация и сопровождение restore — крупнейшего интернет-магазина техники в России
Интаро
WDA
2024
#Поддержка и развитие сайта#Программирование сайта#Внедрение и поддержка CRM

Оптимизация и сопровождение restore — крупнейшего интернет-магазина техники в России

2415 
Интаро
Интаро Россия, Москва
Поделиться:
Оптимизация и сопровождение restore — крупнейшего интернет-магазина техники в России
Клиент

Inventive Retail Group

Сфера

Потребительские товары

Регион

Россия, Москва

Сдано

Февраль 2024

Задача

Сотрудничество Inventive Retail Group и Интаро началась в 2016 году. На протяжении 8 лет команда Интаро поддерживает парк проектов компании. Совместно с внутренней и внешней командой мы развиваем интернет-магазин re-store.ru — один из самых популярных и посещаемых магазинов в России.

В 2023 году сеть restore: объявила о изменении концепции и расширении ассортимента товаров. Компания перешла из монобрендового в мультибрендовый формат: теперь, помимо продукции Apple, в магазинах представлен широкий ассортимент электроники и бытовой техники.

Перед нами стояла задача оптимизации и повышения отказоустойчивости проекта.

Рассказываем, как команда Интаро развивает интернет-магазин restore.

Решение

1Внедрение фреймворка Symfony.

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

В качестве решения, специалистами Интаро были предложены и выполнены следующие задачи:

Внедрение фреймворка Symfony;

Написание API для перехода front-части на Vue.js

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

Symfony предоставляет широкий набор компонентов, которые будут полезны в проекте (например, компоненты для работы с базами данных, HTTP-запросами, формами и т.д.).

Удобство при работе с API. Symfony имеет мощную систему маршрутизации, что делает работу с API проще и удобнее.

Качество кода. Symfony признана как одна из лучших фреймворков на PHP, благодаря чему используется многими крупные компании.

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

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

Битрикс продолжает использоваться как привычная CMS-система, интегрированная в контур архитектуры Inventive Retail Group. Задачи, касающиеся администрирования сайта, управления контентом, хранения данных, остаются на стороне CMS. Таким образом, мы получаем гибридную архитектуру: используем преимущества Symfony и сохраняем лучшие практики от Битрикс.

Процесс внедрения.

Работа началась с подготовки технического задания совместно с внутренней командой Inventive Retail Group. Далее разработчики анализировали вводные и запрашивали дополнительные уточнения.

Этапы:

— Подготовка и документация API для front-части;

— Написание back-части на Symfony;

— Перенос актуальной бизнес-логики;

— Актуализация SEO;

— Тестирование;

— Внедрение и отладка;

2Реализация единой системы размеров изображений.

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

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

Каждый блок может быть представлен неограниченным числом баннеров, каждая строка блока может быть сформирована 1, 2 или 3 баннерами - большим, средними и маленькими, соответственно. Для каждого баннера есть обязательные поля для заполнения, требования к формату, возможность настроить сортировку и включить в подборку.

3Разработка нового функционала корзины.

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

Разработку начали с базовой архитектуры корзины:

1.1 Работа с товарами корзины (список, добавление, изменение, удаление)

1.2 Базовая инициализация корзины

1.3 Получение данных по товарам / статусам / ценам

1.4 Форматирование полученных от FastService* данных (доставки, акции, оплаты)

1.5 Разделение логики на 1 и 2 шаги корзины

1.6 Оформление заказа (базовый сценарий доставки) - создание корректного заказа в битрикс/RetailCRM

1.7 Возможность отметки товаров в корзине, расчет, оформление только отмеченных

FastService — подсистема коробочной версии RetailCRM, которая отвечает за расчет корзины для сайта —акционные механики, промокоды, управление способами оплаты и доставками, интеграция с службами доставки

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

Контактные данные клиента.

— Проверили работоспособность текущих методов авторизации;

— Сделали проверку на наличие клиента в базе;

— Реализовали возможность оформления заказа для неавторизованных пользователей;

— Внедрение возможности сохранения введенных пользователем данных на случай, если он уйдет со страницы и вернется обратно;

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

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

4Сервисные программы.

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

Были подключены наши наработки, после этого сервисные программы заменены на новые.

5Механика оформления товаров.

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

Оплаты и доставки.

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

Постаматы.

Текущий метод работы с постаматами переписан на Symfony. Также добавлены другие интегрированные сервисы - Сберлогистика и СДЭК. Реализован новый API-метод для расчета тарифов постамата.

Похожие товары.

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

Быстрый заказ через корзину.

Логика быстрого заказа была доступна в карточке и каталоге и ранее. Теперь логика быстрого заказа учитывает механику частичного оформления товаров: при клике на кнопку "заказ в 1 клик" товар добавляется в корзину. При этом снимается активность с других товаров и сразу происходит переход к оформлению товара.

Электронные подарочные сертификаты.

Был выполнен рефакторинг и переход на Symfony. Добавлен функционал оформления электронных подарочных сертификатов на сайте: “отправить самому себе”, «несколько получателей», оформление заказа от имени юридического лица с последующей оплатой по счету.

Скидка при онлайн оплате.

Переписана боевая логика под Symfony. В зависимости от вида доставки - самовывоз (по каждому из магазинов в отдельности), экспресс-доставки или пикпоинт, рассчитывается размер скидки для корзины.

1С Маркетинговые акции.

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

Mindbox

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

B2B оплата для бизнеса.

Выполнили объединение B2B и B2C корзин. Ранее B2B корзина существовала отдельно, теперь B2B-клиенты могут оформить заказ через обычную корзину.

6Разработка сервиса «Монитор Логиста».

Inventive Retail Group ценит своих клиентов и учитывает их пожелания по срокам доставки. Поэтому отделу логистики очень важно контролировать отклонения и опоздания в режиме реального времени.

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

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

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

7Сопровождение Retail CRM Enterprise.

Для обработки большого объема заказов, интернет-магазину требуется функционал, способный автоматизировать процессы.

Для обеспечения бесперебойной работы отделов и единого взаимодействия с другими системами используется CRM Retail CRM Enterprise. Данное решение позволяет крупному e-commerce автоматизировать бизнес-процессы, сохраняя up-time проекта 99,8%. Это дает возможность планировать развитие интернет-магазина.

Для restore внедрены следующие решения:

— Настройка роботов для обработки заказов полного цикла (от получения до отгрузки) и подтверждение заказов для самовывоза;

— Организация работы 2 call-центров и интеграция с несколькими телефониями;

— Реализация real-time обмена данными - «живые остатки», постоянная актуализация ассортимента;

— Автоматизация процесса подтверждения заказов в пиковые дни с помощью голосовых роботов;

— Настройка взаимодействия с BI-системами;

— Разработка расчета конверсии по продажам менеджеров и SLA по обработке заказов;

— Интеграция для работы с обращениями клиентов. Разработана с нуля система регистрации внутри RetailCRM с интеграцией в UseDesk.

— Интеграции с различными ТК и реализация унифицированного AP

Результат

https://re-store.ru/

Стек технологий


Награды


Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Интаро с удовольствием обсудит вашу задачу

Оставить заявку