panfilov.digital panfilov.digital
Nuxt 4, Symfony, MongoDB, Typesense, Redis, SEO
Каталог промышленной электроники: 600 000 позиций, 1 419 брендов

Каталог промышленной электроники: 600 000 позиций, 1 419 брендов

КЛИЕНТ

«Делазия» — поставщик промышленной электроники и оборудования. Пришли за онлайн-каталогом на 600 000+ позиций с фокусом на поиск: покупатель ищет по партномеру и артикулу, а не по названию категории.

MVP ЗА ТРИ МЕСЯЦА

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

База — MongoDB: у каждой категории свой набор характеристик, и жёсткая схема тут только мешает. Бэкенд — Symfony, фронтенд — Nuxt с серверным рендерингом ради индексации. Впервые взяли Nuxt UI Pro: готовые компоненты ускорили сборку, тёмная тема досталась из коробки.

Каталог: десктоп и мобильная версия

ЧТО БЫЛО ДАЛЬШЕ

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

ПОИСК И СКОРОСТЬ

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

Категории, товары, фильтры и бренды закешированы в Redis, кеш сбрасывается точечно при правке в админке. Фильтрация перешла на предрассчитанные коды свойств — на такой базе это разница между «полсекунды» и «страница думает».

БРЕНДЫ

Покупатель часто идёт не от категории, а от производителя. Поэтому появился отдельный слой: справочник на 1 419 брендов, страница каждого бренда с его категориями и количеством товаров, своя карта сайта и метатеги.

Дальше — контентный блок на странице бренда. Мы сделали модель данных, API с постоянным ключом, валидацию и компонент вёрстки, а тексты и логотипы «Делазия» наполняет сама, своими агентами, в своём темпе. Хранится структура, а не HTML: дизайн меняется в одном компоненте, а не в полутора тысячах записей, и в страницу не попадает чужая разметка.

Справочник брендов: 1 419 производителей с собственными страницами

ОПИСАНИЯ ДЛЯ 275 ТЫСЯЧ ТОВАРОВ

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

Сгенерировали 274 978 русских описаний. Первые полторы тысячи — через LLM-агентов, дальше переключились на детерминированный шаблонный генератор: он берёт тип товара, категорию, производителя, артикул и полезные параметры. Так быстрее и дешевле, чем гонять модель на каждую из 275 тысяч карточек, и результат предсказуем.

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

ЦЕНЫ И ЗАЯВКИ

Цены поставщиков приходят в валюте. По расписанию забираем курс, пересчитываем в рубли и показываем цену с честной оговоркой: она действует на дату выгрузки, точная — по запросу. Где цены нет, вместо неё «Цена по запросу», а не ноль.

Запрос отправляется прямо с карточки, с прикреплением спецификации в Excel или CSV — снабженцу не нужно переносить позиции руками.

Карточка товара: цена в рублях по курсу, запрос со спецификацией в приложении

SEO И АДМИНКА

Заголовки, описания и alt-тексты генерируются по шаблонам из данных товара, адреса товаров переехали на человекопонятные с 301-редиректами со старых, добавлена микроразметка товаров и брендов, а в карте сайта — реальная дата изменения. Отдельно собирается YML-фид для Яндекс.Директа.

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

ЧТО ЕЩЁ ПОЯВИЛОСЬ

Главная, контакты, доставка и оплата, возврат, оферта, отзывы, частые вопросы и реквизиты — обычные страницы, без которых B2B-сайту не верят. Тёмная тема, бесконечная подгрузка вместо пагинации, коллтрекинг.

Технологии

Nuxt 4, Vue 3, TypeScript, Nuxt UI Pro, Symfony 7, MongoDB, Typesense, Redis

600 000+

Товарных позиций

3 мес

До запуска MVP

1 419

Брендов

со своими страницами

275 000

Описаний товаров

сгенерировали на русском

Услуга по этому проекту

B2B-порталы и личные кабинеты

Персональные цены, остатки, резерв товара, договоры и счета. Оптовые продажи переезжают из почты и мессенджеров в систему.

Следующий проект

Сайт low-code решения для автоматизации промышленных измерений