300 000
Потребительские товары
Интернет-магазин, Корпоративный сайт
Июнь 2021
У сети магазинов «Вектор» было три розничные точки (ТЦ «Мега-Пенза», ТРЦ «Ритэйл», «Стройбери»), которые юридически существовали как три отдельных ИП. У каждого магазина были свои цены и свой остаток на один и тот же товар.
Ключевые вызовы:
Мультискладовая логика. Нужно было реализовать единый каталог, в котором цена и наличие товара отображаются исключительно для выбранного покупателем магазина, но с возможностью собирать товары из разных магазинов в одну корзину.
Большие данные. Каталог насчитывал около 300 000 товарных позиций.
Частое обновление данных. Цены и остатки нужно было обновлять каждый час (быстро, за 5 минут), а описания, изображения и характеристики — каждый день.
Интеграция с внешней системой. Данные поступали из системы аналога 1С, требовалось настроить стабильную выгрузку.
Производительность. Сайт должен был быстро работать при большом количестве посетителей и отдавать тысячи товаров без задержек.
Мы взяли за основу OpenCart 3 и фундаментально переработали его под нужды проекта, поскольку стандартное решение не справлялось с мультискладовой логикой и объемом данных.
Что было сделано:
Мультимагазинность и единая корзина.
Переписали логику работы с ценами и остатками: теперь при выборе магазина пользователь видит актуальные цены и наличие строго для этой точки.
Реализовали сквозную корзину: товары из разных магазинов добавляются в один заказ, а при оформлении система автоматически разделяет их по точкам для менеджеров.
Оптимизация для 300 000 товаров.
Оптимизировали загрузку страниц каталога и карточек товара: сделали индексацию базы данных, переписали тяжелые запросы.
Внедрили кеширование для часто запрашиваемых данных (цены, остатки).
Высокоскоростное обновление данных.
Написали несколько скриптов для синхронизации с системой.
Настроили почасовое обновление цен и остатков (время обновления всего каталога — около 5 минут).
Ежедневное обновление описаний, изображений и характеристик настроили на ночное время, чтобы не влиять на работу пользователей.
Фильтрация и поиск.
Создали умный фильтр по характеристикам, брендам, цене и наличию в выбранном магазине.
Настроили поиск с учетом остатков — пользователь сразу видит только то, что есть в его магазине.
Повышение производительности.
Настроили серверную часть (кеширование, сжатие, CDN для изображений).
Оптимизировали работу с большим потоком клиентов, проведя нагрузочное тестирование.
Сайт объединил три магазина с разными ценами и остатками, при этом клиент видит актуальную информацию для своей точки.
Каталог из 300 000 товаров обновляется каждый час (цены/остатки за 5 минут) без участия человека.
Высокая нагрузка (тысячи посетителей) не приводит к падению скорости.
Заказчики получили единую онлайн-витрину без внутренней борьбы между ИП, а клиенты — удобный сервис.