GoodFellazz

содержание статьи

Один из наших заказчиков - производитель гидравлического оборудования, работает с 1991 года. Когда мы взялись за его интернет-магазин, в каталоге было семь уровней вложенности. Родительская категория, подкатегория, в ней ещё одна, и так далее. В этом лабиринте терялись не только покупатели. Сама компания забыла о части позиций, зарытых где-то на шестом уровне. Товар производился, лежал на складе и не продавался, потому что до него никто не доходил.

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

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

Меня зовут Богдан Квитка, я руковожу GoodFellazz. Компания работает с 2015 года, мы делаем сайты для российских производителей: Строймашсервис, Hermes Industries, Z1 Lighting Tools. Все примеры ниже - из этих проектов. Здесь описано то, что мы решали руками.

Сразу оговорка. Я не берусь обещать, что каталог поднимет вам продажи: это зависит от рынка, цены и работы менеджеров, а не от кода. Что каталог делает точно - показывает продукцию тем, кто ищет её по техническим параметрам, и снимает с отдела продаж вопросы, на которые не нужен человек.

01. Чем каталог производителя отличается от интернет-магазина

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

  • Интернет-магазиндоводит человека до оплаты. Корзина, доставка, эквайринг, статусы заказа, возвраты.

  • Онлайн-каталогдоводит до заявки, запроса цены или звонка менеджеру. Оплата на сайте не происходит, потому что цена зависит от объёма, договора и логистики.

  • PDF-прайсна сайте не доводит никуда. Его скачивают, открывают один раз и больше не возвращаются. Поисковые системы содержимое такого файла индексируют плохо, и ни один запрос вида «гидроцилиндр 80х40х400 купить» на вас не приведёт.

Сравнение трёх форматов

Параметр

PDF-прайс

Онлайн-каталог

Интернет-магазин

Целевое действие

Скачивание

Заявка, запрос цены

Оплата заказа

Индексация в поиске

Практически нет

Отдельная страница на каждую позицию

Отдельная страница на каждую позицию

Фильтрация по параметрам

Нет

Да, основная функция

Да

Показ цены

Обычно да, устаревшей

По ситуации: публично, по запросу или в личном кабинете

Публично

Обновление данных

Вручную, файлом

Автоматически из учётной системы

Автоматически из учётной системы

Нагрузка на отдел продаж

Высокая: каждый вопрос идёт в звонок

Средняя: часть вопросов снимает карточка

Низкая

Порядок стоимости разработки

Ноль

Средний

Высокий

Бытовая аналогия

Прайс в PDF - это склад с закрытыми воротами и объявлением «спросите у кладовщика». Интернет-магазин - розничный супермаркет: взял, пробил, ушёл. Онлайн-каталог - торговый зал с консультантом: товар выложен и подписан, посмотреть и сравнить можно самому, но окончательную цену и условия называет человек.

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

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

На чём здесь спотыкаются

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

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

02. Из чего состоит каталог продукции: пять слоёв

Когда клиент говорит «сделайте каталог», он обычно имеет в виду то, что видно глазами: сетку карточек и фильтр слева. На деле каталог - это пять слоёв, и видимый только один. Если экономить на нижних, верхний развалится через полгода.

Слой 1. Модель данных

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

Слой 2. Источник данных и обмен

Откуда товары попадают на сайт: выгрузка из 1С, ручной ввод в админке, импорт из Excel, API поставщика. И что происходит, когда данные меняются.

Слой 3. Логика витрины

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

Слой 4. Интерфейс

Карточка товара, сетка, мобильная версия, состояние «ничего не найдено», скорость отклика фильтра.

Слой 5. Действие

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

Что это значит для вас

Смета, в которой строка «дизайн каталога» стоит дороже строки «проектирование структуры и модели данных», - это тревожный знак. Не потому, что дизайн не нужен. А потому, что подрядчик собирается рисовать раньше, чем разберётся, что именно он рисует.

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

03. Структура каталога: как разложить тысячи позиций

Структура каталога определяет две вещи: за сколько кликов человек добирается до товара и какие страницы у вас вообще есть в поиске. Эстетика меню тут вторична.

Правило трёх уровней

Рабочая глубина для производственного каталога - три уровня, максимум четыре:

  • 1

    Направление.Гидравлика, пневматика, электрооборудование.

  • 2

    Группа.Гидроцилиндры, насосы, распределители.

  • 3

    Тип или серия.Гидроцилиндры одностороннего действия, двустороннего.

  • 4

    Позиция.Конкретное исполнение с артикулом.

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

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

История про семь уровней

Возвращаюсь к тому, с чего начал. На проектеzao-sms.ruдля Строймашсервиса самой большой проблемой старого сайта оказалась категоризация. Семь уровней вложенности, пользователи терялись, часть позиций компания потеряла из виду сама. Устаревшая графика на этом фоне выглядела мелочью.

Что мы сделали при редизайне:

  • 1

    Пересобрали дерево категорий заново, а не перенесли старое.

  • 2

    Сделали отдельную страницу-навигатор по направлениям, которая ведёт в основной каталог.

  • 3

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

  • 4

    Сохранили старые адреса страниц редиректами, чтобы не потерять позиции в поиске.

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

Товар или вариант товара

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

  • Каждое исполнение- отдельная карточка. Максимум страниц под низкочастотные запросы вида «гидроцилиндр 63х32х250». Минус: каталог раздувается, карточки получаются почти одинаковыми, и поиск может посчитать их дублями.

  • Одна карточка на модель, исполнения выбираются селекторами.Компактно и удобно человеку. Минус: под конкретный типоразмер отдельной страницы нет, запрос по нему вы не соберёте.

  • Гибрид.Одна карточка на модель плюс генерация отдельных страниц под те исполнения, по которым реально есть спрос.

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

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

Структура по номенклатуре или по задаче клиента

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

Наhydrocylinders.ruмы сделали второй разрез основным. Слева стоит вертикальная кнопка «каталог», по клику открывается полноэкранное меню, где гидроцилиндры разложены по типам техники: для катков, для манипуляторов, для бульдозеров. Задача формулировалась прямо: найти нужный гидроцилиндр для любой техники в два клика.

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

Посадочные страницы под фильтры

Приём, который в B2B даёт больше всего трафика. Комбинация фильтров, по которой есть спрос, превращается в самостоятельную страницу с собственным адресом, заголовком и текстом.
Было: /catalog/gidrocilindry?diameter=80&type=dvustoronnie
Стало: /catalog/gidrocilindry/dvustoronnie-80mm/

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

  • собрать семантику по параметрам, а не только по названиям групп;

  • определить список комбинаций, которые превращаются в страницы;

  • задать шаблон заголовка, текста и метатегов для этих страниц;

  • закрыть от индексации все остальные сочетания параметров;

  • прописать канонические адреса, чтобы не плодить дубли.

Что это значит для вас

Структуру каталога нельзя отдать подрядчику целиком. Мы можем предложить схему, проверить её на семантике и реализовать. Но знание о том, какими задачами живёт ваш покупатель, есть только внутри вашей компании, чаще всего в голове у пары менеджеров с самым большим стажем. Их нужно посадить за стол на этапе проектирования, а не показывать им готовый сайт.

04. Фильтры и умный поиск по каталогу

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

Три типа фильтров

Тип

Как выглядит

Когда применять

Что требует от данных

Списочный

Чекбоксы: материал, серия, производитель

Ограниченный набор значений

Справочник, а не свободный текст

Диапазонный

Ползунок или два поля: давление, длина, вес

Числовые характеристики

Число и единица измерения в отдельных полях

Зависимый

Выбор серии меняет доступные типоразмеры

Вариативные товары

Связи между характеристиками

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

Как конфигуратор перерастает фильтр

На проектеz1light.ruдля производителя архитектурной светотехники изначально предполагалось простое решение: обычный подбор по характеристикам. В процессе работы стало ясно, что этого мало.
У компании десятки тысяч артикулов, и они образуются сочетанием параметров: тип светильника, оптика, цветовая температура, мощность, цвет корпуса, крепление. Не все сочетания существуют физически. Часть комбинаций технически невозможна.
Собрали кастомный конфигуратор, который умеет три вещи:

  • 1

    Работать с десятками тысяч артикулов через документоориентированную базу данных.

  • 2

    Скрывать невозможные варианты конфигурации по мере того, как пользователь делает выбор.

  • 3

    Настраиваться из админки, без правок кода при появлении новой серии.

Разница между фильтром и конфигуратором ровно в пункте два. Фильтр показывает пустой результат и оставляет человека гадать, что он сделал не так. Конфигуратор не даёт собрать несуществующее изделие. Для инженера или проектировщика это разница между инструментом и игрушкой.

Аудитория у сайта соответствующая: продукцию Z1 Lighting Tools закладывают в проекты вроде Сколково, Лахта Центра и аэропорта Платов. Такой пользователь не будет разбираться, почему фильтр выдал позицию, которую нельзя заказать.

Почему фильтр тормозит

На пятистах позициях тормозить нечему. Проблемы начинаются на десятках тысяч, и причины стандартные:

  • фильтрация идёт запросом к основной базе по полям, которые не проиндексированы;

  • характеристики хранятся в схеме, где каждое значение - отдельная строка, и на десяти фильтрах запрос

  • каждое движение ползунка отправляет новый запрос без задержки;

  • счётчики «сколько товаров найдётся» пересчитываются для всех значений всех фильтров при каждом клике.

Тормозить может и то, что вообще не относится к фильтрам. На zao-sms.ru время загрузки съедало левое меню: в нём было очень много контента, и оно грузилось целиком. Мы сделали очередь загрузки с приоритетами - сначала изображения, потом текст меню - и добавили кэширование. Меню при этом визуально не изменилось.

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

Поиск по строке

В B2B поиск важнее фильтров. Снабженец редко ходит по разделам, он вбивает артикул или обрывок названия из спецификации.
На hydrocylinders.ru «умный поиск» был отдельным требованием заказчика. Работает так: вводишь в любом порядке несколько символов из названия модели техники и размеров гидроцилиндра, получаешь подсказки со ссылками на товары. Порядок ввода значения не имеет, полное название знать не нужно.
Что должен уметь поиск в производственном каталоге:

  • находить по артикулу целиком и по его части;

  • работать при вводе фрагментов в произвольном порядке;

  • прощать опечатки и неверную раскладку клавиатуры;

  • искать по синонимам и старым обозначениям, которые остались у клиентов в документах;

  • показывать подсказки по мере ввода;

  • отдавать не только товары, но и разделы с документами.

Наzao-sms.ruпоиск подстраивается по мере ввода и предлагает подходящие варианты. Это тот же принцип: человек не должен вспоминать точное написание, чтобы найти то, что у вас есть на складе.

Состояние «ничего не найдено»

Экран, который проектируют последним, а видят его чаще, чем кажется. Пустой результат должен предлагать: сбросить последний фильтр, посмотреть ближайшие по параметрам позиции, оставить запрос менеджеру. Не «по вашему запросу ничего не найдено» и точка.

Что это значит для вас

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

05. Карточка товара в каталоге производителя

Карточка в B2B решает другую задачу, чем в рознице. Здесь никого не нужно уговаривать. Человеку нужно убедиться, что позиция подходит, и понять, как её получить.

Обязательный минимум

  • 1

    Артикул на видном месте. По нему ищут, его копируют в заявку, его диктуют по телефону.

  • 2

    Полная таблица характеристик, а не «основные параметры». Это то, ради чего человек пришёл.

  • 3

    Наличие или срок поставки хотя бы в формате «на складе / под заказ / срок изготовления».

  • 4

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

  • 5

    Техническая документация: чертёж, паспорт, сертификат, 3D-модель.

  • 6

    Габариты и вес. Без них снабженец не посчитает доставку.

  • 7

    Аналоги и совместимые позиции, если точной позиции сейчас нет.

Чертёж вместо фотографии

Деталь, которую видно только на реальном производственном каталоге. На hydrocylinders.ru мы вывели товары в категориях горизонтальным списком, а не привычной сеткой плиток. Причина простая: фотографии гидроцилиндров однообразны. Двадцать плиток с почти одинаковыми металлическими цилиндрами не помогают выбирать, они мешают.

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

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

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

Похожая логика на сайте Hermes Industries. На продуктовых страницах стоят блоки с промышленным оборудованием в разрезе: важные узлы подсвечиваются, по нажатию открывается описание. Для котла разрез объясняет устройство лучше, чем фотография корпуса снаружи.

Действие с карточки

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

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

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

Подборка - недооценённая функция. Снабженец собирает список из двадцати позиций и одной кнопкой отправляет его менеджеру. Это заменяет письмо на четыре абзаца и снимает половину ошибок в заявках.

Что это значит для вас

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

06. Интеграция каталога с 1С и наполнение данными

Каталог живёт ровно настолько, насколько актуальны данные внутри него. Здесь два вопроса: откуда данные приходят и в каком они состоянии.

Способы наполнения

Способ

Когда подходит

Риск

Ручной ввод в админке

До нескольких сотен позиций, редкие изменения

При росте номенклатуры превращается в работу отдельного человека

Импорт из CSV или Excel

Разовая загрузка, обновление раз в квартал

Файл рано или поздно расходится с учётной системой

Обмен с 1С

Постоянно меняющиеся остатки, цены, номенклатура

Требует порядка в самой 1С

API поставщика

Дистрибуция чужой продукции

Зависимость от чужого формата и его изменений

Для производителя в большинстве случаев правильный ответ - обмен с 1С. Остальное рано или поздно приводит к расхождению сайта и учёта.

Стандартный формат такого обмена -CommerceML,его поддерживают и 1С, и большинство готовых движков. Если ваш подрядчик говорит про «обмен по CommerceML», речь именно про него.

Почему интеграция с 1С редко бывает типовой

Скажу честно: сама передача данных - не самая сложная часть. Сложное начинается, когда выясняется, что данные на стороне клиента лежат не так, как предполагает стандартный протокол обмена.
На zao-sms.ru мы столкнулись ровно с этим. Система клиента не соответствовала стандартным протоколам, данные приходили в формате, который типовой обмен не переваривает. Пришлось писать отдельные решения: правильно опознавать товары и вытаскивать нужную информацию из системы клиента в том виде, в каком она там есть.
Это одна из причин, по которой мы работаем на Laravel и Vue, а не на коробочной CMS. В коробке такая задача решается обходом чужой логики через плагины. На фреймворке она описывается напрямую, как обычный код.

Что обычно находится в номенклатуре

Типичные находки на старте проекта:

  • характеристики лежат в наименовании номенклатуры одной строкой;

  • одна и та же характеристика в разных группах названа по-разному;

  • единицы измерения не вынесены в отдельное поле;

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

  • фотографий в учётной системе нет, они лежат в папке на сервере с именами вида foto_1.jpg.

Отсюда правило, которое я повторяю на каждой первой встрече:чистка и структурирование номенклатуры - это отдельный этап проекта, и делает его заказчик при нашей методической поддержке.Мы пишем правила разбора, показываем расхождения, готовим шаблон. Но решить, что вот эти три позиции на самом деле одна, может только человек, который знает продукт.
Если бы мне дали выбрать один этап проекта, на котором нельзя экономить, я бы выбрал именно этот. Разработку и дизайн можно доделывать после запуска, это обычная практика. Данные, заведённые криво, потом переносят вручную, и стоит это дороже всей экономии.

Инструменты, которые снимают эту боль

Чистить номенклатуру через интерфейс, где товары правятся по одному, невозможно. Поэтому админку мы проектируем под массовые операции.
Что сделали на zao-sms.ru:

  • 1

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

  • 2

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

  • 3

    Импорт и экспорт товаров как штатную функцию, а не как разовый скрипт на запуск.

На hydrocylinders.ru администратор так же загружает и выгружает товары через CSV, обрабатывает заявки и правит любые тексты сам.
Звучит буднично, но именно эти функции определяют, будет каталог наполняться дальше или замрёт в состоянии дня запуска.

Что настраивается в обмене

  • расписание: раз в сутки, раз в час, по событию;

  • направление: только с 1С на сайт или в обе стороны, если заявки должны попадать в учёт;

  • состав: номенклатура, характеристики, цены, остатки, изображения, документы;

  • поведение при конфликте: что делать, если позицию удалили в 1С, а на неё есть внешние ссылки;

  • журнал: где смотреть, что и когда передалось, и почему упало.

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

Что это значит для вас

Заложите в план проекта отдельной строкой время ваших сотрудников на приведение номенклатуры в порядок. Подрядчик эту работу за вас не сделает: он не знает продукт. Это единственный этап, который нельзя купить, и он же чаще всего сдвигает сроки.
Подробнее про то, почему мы используем фреймворк, а не коробочное решение, я писал в статьеЧто такое Laravel и чем он полезен владельцу бизнеса.

07. Разработка каталога: шесть этапов

Порядок, который у нас сложился на проектах для производителей. Отклонения от него почти всегда стоят денег.

Этап 1. Аналитика номенклатуры

Смотрим выгрузку из 1С, считаем позиции, группы и характеристики, находим неструктурированные поля и дубли. На выходе - карта данных и список того, что нужно привести в порядок.
Здесь же собираем семантику: какими словами ваш товар ищут. Это влияет на структуру разделов напрямую.

Этап 2. Проектирование структуры и модели данных

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

Этап 3. Прототипы

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

Этап 4. Дизайн

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

Этап 5. Разработка и интеграция

Мы делаем каталоги на Laravel и Vue, для тяжёлых проектов - в формате SPA с серверным рендерингом, чтобы страницы нормально индексировались. Параллельно идут три потока: витрина, административная часть и обмен с 1С. Отдельной задачей - поисковый движок и индексация характеристик.

Этап 6. Наполнение, тестирование, запуск

Загрузка реальных данных, а не демонстрационных. Проверка фильтров на полном объёме, замер скорости отклика, настройка редиректов со старых адресов, если каталог существовал раньше.

Важно про редиректы.Если каталог у вас уже был и адреса меняются, карта редиректов - не мелочь на последний день. От неё зависит, сохраните вы позиции в поиске или начнёте набирать их заново. На проекте Строймашсервиса это было прямым требованием заказчика: обновить сайт и не потерять SEO.

Что это значит для вас

Обратите внимание на порядок: этапы 1 и 2 идут до дизайна и занимают около трети срока. Если подрядчик предлагает начать с макетов «чтобы вы увидели, как будет выглядеть», чаще всего за этим стоит желание быстрее закрыть этап подписью, не разбираясь в ваших данных.
Требуйте на выходе второго этапа документ, а не картинку. В нём должно быть написано, как хранятся характеристики и какие фильтры из них соберутся.

08. Шесть ошибок при разработке каталога

Все шесть из реальных проектов, своих и чужих.

Ошибка 1. Сначала дизайн, потом данные

Отрисовывают карточку на вымышленных товарах, утверждают, запускают разработку. Потом приходит выгрузка, и оказывается, что реальные данные в этот макет не помещаются.
Чем оборачивается:переделка вёрстки и дизайна после начала разработки, сдвиг сроков, спор об оплате.

Ошибка 2. Фильтры по текстовым полям

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

Ошибка 3. Каталог без цены и без замены ей

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

Ошибка 4. Индексация всех комбинаций фильтров

Каждое сочетание параметров доступно поиску. Каталог на 20 000 товаров порождает сотни тысяч почти пустых страниц.
Чем оборачивается:поисковые системы тратят обход на мусор и хуже индексируют нормальные страницы. Разгребание занимает месяцы.

Ошибка 5. Красивый инструмент, невидимый для поиска

Отдельный сюжет, который мы прошли на сайтеHermes Industries.Мы встроили конструктор страниц на Grapes.js, чтобы менеджеры собирали посадочные из готовых блоков без разработчика. Аналог Тильды внутри Laravel.
Дальше выяснилось, что поисковые роботы не видят блоки, собранные конструктором. Пришлось разбирать конструктор по частям, находить проблемные компоненты и чинить.
Чем оборачивается:страницы существуют, менеджеры их наполняют, руководство видит работу, а поиск их не индексирует. Обнаруживается это обычно через несколько месяцев, когда кто-то догадывается проверить.

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

Ошибка 6. Обмен с 1С без журнала и без ответственного

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

Что это значит для вас

У пяти ошибок из шести общая черта: они не видны в день сдачи проекта. Каталог выглядит рабочим, акт подписан, все довольны. Проявляются они через полгода-год, когда подрядчик уже занят другими клиентами.
Поэтому принимать каталог нужно на полной выгрузке и конкретными действиями: замерить отклик фильтра, посмотреть журнал обмена, открыть страницу конструктора в режиме поискового робота. Демонстрационные данные и беглый просмотр глазами тут ничего не покажут.
Если у вас уже есть каталог и он в описанном состоянии, посмотрите разделдоработки проектов на Laravel.Чаще всего чинится, но бывает и так, что переписать дешевле.

09. Разработка каталога: цена и сроки

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

Ставка и порядок цен

Что

Диапазон

От чего зависит

Час работы команды

3 200 - 3 500 руб

Специализация: бэкенд, фронтенд, дизайн, аналитика

Корпоративный сайт с каталогом

0,5 - 1 млн руб

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

Каталог с полноценным e-commerce

2 - 5 млн руб

Десятки тысяч позиций, личный кабинет, обмен с 1С в обе стороны

Личный кабинет дилера

2 - 5 млн руб

Прайсы по договорам, история заказов, документы

Прайсы по договорам, история заказов, документы

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

  • 1

    Зависимые характеристики и конфигуратор.Самый тяжёлый фактор. Нужна таблица совместимости и логика исключения невозможных сочетаний.

  • 2

    Вариативные товары.Одна модель в десятках исполнений усложняет и модель данных, и витрину, и адресацию страниц.

  • 3

    Нестандартный обмен с 1С.Если учётная система не отдаёт данные по стандартному формату, обмен пишется под неё.

  • 4

    Личный кабинет с персональными прайсами.Цена перестаёт быть свойством товара и становится свойством пары «товар и договор».

  • 5

    Миграция со старого сайта с сохранением позиций.Карта редиректов, перенос контента, проверка индексации.

  • 6

    Мультиязычность.Умножает и тексты, и работу с характеристиками и единицами измерения.

  • 7

    Объём номенклатуры сам по себе.Влияет слабее всего, если предыдущие шесть пунктов решены грамотно.

Конкретные множители называть не буду: они слишком зависят от проекта, а красивая формула в статье даёт ложную точность. Смету считаем по составу работ.

Сроки

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

Этап

Доля от общего срока

Аналитика номенклатуры и семантика

около 15%

Проектирование структуры и модели данных

около 15%

Прототипы и дизайн

около 20%

Разработка и интеграция

около 35%

Наполнение, тестирование, запуск

около 15%

Верхняя граница выглядит иначе. Сайт Z1 Lighting Tools делала команда из 10 человек за 10 месяцев. Но там был не только каталог: конфигуратор на десятки тысяч артикулов, мультиязычность, конструктор страниц, анимация на pixi.js, админка с двухфакторной аутентификацией и логированием действий.
Разброс от двух месяцев до десяти определяется не количеством товаров. Он определяется тем, сколько в проекте нетиповой логики.

Что срок сдвигает почти всегда:чистка номенклатуры на стороне заказчика. Это единственный этап, который мы не можем ускорить своими силами.

На чём можно сэкономить и на чём нельзя

Можно:

  • запустить первую версию на части каталога, а остальные группы добавлять после;

  • отложить личный кабинет дилера до второго этапа;

  • использовать типовые решения для второстепенных страниц.

Нельзя:

  • на аналитике номенклатуры и модели данных;

  • на скорости фильтрации;

  • на журналировании обмена.

10. Когда коробочное решение действительно подходит

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

Битрикс или другая готовая CMS оправданы, если

  • 1

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

  • 2

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

  • 3

    Сроки в три-четыре недели.Кастомная разработка каталога столько не занимает физически. Если запуск нужен к выставке, коробка честнее.

  • 4

    Бюджет до 300-400 тысяч рублей.В этих деньгах кастом даёт полуфабрикат, а типовое решение - работающий магазин.

  • 4

    У вас в штате есть свой разработчик под эту CMS.Тогда сайт развивается своими силами, и это дешевле любого подряда.

  • 4

    Учётная система стандартная и отдаёт данные по типовому формату.Половина ценности кастомной разработки как раз в нестандартном обмене. Если обмен типовой, платить не за что.

А вот здесь коробка упирается в потолок

  • Вариативные товары с большим числом исполнений.

  • Зависимые характеристики и невозможные сочетания параметров.

  • Фильтрация по десяткам числовых характеристик на десятках тысяч позиций.

  • Учётная система, которая не следует стандартному протоколу обмена.

  • Персональные цены и условия по договору для каждого дилера.

  • Требование к скорости, которое не вытягивается на плагинах.

Как это выглядит на практике

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

11. Четыре каталога, которые мы сделали

Даю проекты так, как имею право: через задачу и решение. Показателей по выручке и конверсии в открытом виде у меня нет, и придумывать проценты я не буду. Все четыре проекта - производители, все четыре доступны по ссылкам, можно открыть и проверить.

Hydrocylinders: каталог гидроцилиндров с поиском в два клика

Задача.Строймашсервис, производитель гидравлических цилиндров, на рынке с 1991 года. Нужен корпоративный сайт и онлайн-каталог с простым поиском.

Что сделали:

  • 1

    Разложили каталог по типам техники: для катков, манипуляторов, бульдозеров. Вход через вертикальную кнопку и полноэкранное меню.

  • 2

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

  • 3

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

  • 4

    Сделали умный поиск: символы модели техники и размеров вводятся в любом порядке, дальше идут подсказки со ссылками на товары.

  • 4

    На странице товара вывели и фотографию, и чертёж.

  • 4

    Собрали кастомную админку с загрузкой и выгрузкой товаров через CSV.

Отдельно.Компании 30 лет, и мы сделали страницу «История» как проект «Намедни»: параллель между событиями в стране и в жизни компании. Печатные фотографии для оцифровки отбирали вместе с владельцами в их офисе.

Смотреть кейс

ZAO-SMS: редизайн каталога без потери позиций в поиске

Задача.Тот же Строймашсервис, интернет-магазин гидрооборудования. Устаревший интерфейс требовал изменений, но заказчик боялся потерять позиции в поиске. Отдельная проблема - семь уровней вложенности в каталоге.

Что сделали:

  • 1

    Пересобрали структуру категорий, сделали страницу-навигатор и боковую панель вместо многоуровневого дерева.

  • 2

    Сохранили страницы и ссылки, важные для поиска, перенесли контент без потерь.

  • 3

    Добавили товарам подробные характеристики и фильтрацию по ним.

  • 4

    Переделали поиск: подсказки по мере ввода, релевантная выдача по названию и ключевому слову.

  • 5

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

  • 6

    Сделали в админке гибкую работу с характеристиками по товарным группам и выгрузку категорий на правку с обратным импортом.

  • 7

    Ускорили тяжёлое левое меню очередью загрузки с приоритетами и кэшированием.

  • 8

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

Смотреть кейс

Z1 Lighting Tools: конфигуратор на десятки тысяч артикулов

Задача.Производитель архитектурной светотехники. Продукция стоит в Сколково, Совете Федерации, Лахта Центре, аэропорту Платов. Нужен инструмент подбора светильников по техническим характеристикам и мультиязычный сайт.

Что сделали:

  • 1

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

  • 2

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

  • 3

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

  • 4

    Реализовали сайт как SPA с серверным рендерингом ради скорости и индексации.

  • 5

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

  • 6

    Добавили мультиязычность через конструктор страниц Grapes.js.

Масштаб.Команда 10 человек, 10 месяцев работы. Стек: Laravel, Vue.js, Nuxt.js, Tailwind CSS.

Смотреть кейс

Hermes Industries: каталог оборудования с редактируемым контентом

Задача.Промышленная группа, производит промышленные и бытовые котлы, владеет заводом в Липецке, который выпускает водогрейные котлы мощностью до 16 мВт. Нужен корпоративный сайт с продуктовым разделом, где весь контент правится без разработчика.

Что сделали:

  • 1

    Построили конструктор страниц на Grapes.js внутри Laravel: менеджер собирает посадочную из готовых блоков.

  • 2

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

  • 3

    Решили конфликт конструктора и поиска: роботы не видели блоки компонентов, разбирали конструктор и чинили индексацию.

  • 4

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

Смотреть кейс

Остальные проекты - в разделекейсы.

12. Семь вопросов подрядчику до подписания договора


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

  • 1

    Как вы будете хранить характеристики товаров?
    Правильный ответ описывает структуру: справочники, числовые поля с единицами измерения, отдельная схема под фильтры. Тревожный ответ: «в описании товара» или «разберёмся по ходу».

  • 2

    Что вы отдадите на этапе проектирования, до дизайна?
    Ждём документ со структурой разделов, списком фильтров и схемой данных. Если предлагают начать с макетов, порядок работ перевёрнут.

  • 3

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

  • 4

    Как в админке править сразу тысячу товаров?
    Массовые операции, выгрузка категории и импорт правок обратно. Если единственный ответ - «через интерфейс товара», чистить номенклатуру вы будете годами.

  • 5

    Кто отвечает за карту редиректов и когда она делается?
    Ответ «на этапе запуска» означает, что её сделают в последнюю ночь. Она должна появляться вместе со структурой.

  • 6

    Какие комбинации фильтров будут отдельными страницами и как закрываются остальные?
    Отсутствие внятного ответа - будущие сотни тысяч мусорных страниц в индексе.

  • 7

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

Сохраните этот список и задайте вопросы всем, кого рассматриваете. Разница в ответах будет заметнее, чем разница в презентациях.

13. Чек-лист перед стартом

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

  • Выгрузите номенклатуру из 1С в Excel и посчитайте количество позиций и групп.

  • Проверьте, вынесены ли характеристики в отдельные поля или лежат в названии.

  • Посчитайте, сколько уровней вложенности в вашем текущем каталоге.

  • Определите, какие товары вариативные, и опишите набор параметров исполнения.

  • Выясните, какие сочетания параметров физически невозможны.

  • Составьте список характеристик, по которым клиенты реально выбирают.

  • Спросите отдел продаж, какими словами клиенты формулируют задачу, а не название товара.

  • Решите, показываете вы цену публично, по запросу или только в личном кабинете.

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

  • Соберите техническую документацию: паспорта, чертежи, сертификаты.

  • Назначьте человека, ответственного за чистку номенклатуры, и дайте ему время в графике.

  • Проверьте, есть ли у вас старый каталог и какие адреса придётся сохранить редиректами.

  • Определите, нужен ли обмен в обе стороны, то есть должны ли заявки попадать в 1С.

  • Уточните, кто со стороны компании принимает решения по структуре каталога.

  • Заложите отдельной строкой этап наполнения и проверки данных.

14. Частые вопросы

Сколько позиций каталог выдержит без потери скорости

Само количество позиций почти ничего не определяет. Определяет модель хранения характеристик и устройство фильтрации. Каталог на десятки тысяч товаров с нормальной моделью данных работает быстрее, чем каталог на пять тысяч позиций с фильтром по текстовым полям. Планировать нужно под объём, который будет через три года.

Обязательно ли показывать цену

Не обязательно, и в B2B чаще правильно её не показывать. Но тогда механизм получения цены должен быть очевидным и работать в один клик прямо из карточки. Худший вариант - цены нет и спросить негде. На zao-sms.ru мы сделали для позиций без цены отдельный быстрый выкуп, чтобы человек мог оставить запрос, не проходя оформление заказа целиком.

Что делать, если номенклатура в 1С в беспорядке

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

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

Это главный страх, из-за которого редизайн откладывают годами. Риск реальный, но управляемый. На проекте Строймашсервиса сохранение позиций было прямым требованием, и мы решали его переносом контента, сохранением значимых страниц и картой редиректов. Ключевое условие - заниматься этим с первого дня проекта, а не за неделю до запуска.

Сколько времени займёт запуск

2-3 месяца, если данные приходят в рабочем виде и согласования не затягиваются. Проекты со сложной нетиповой логикой длятся дольше: сайт Z1 Lighting Tools с конфигуратором и мультиязычностью делала команда из 10 человек 10 месяцев. Срок определяется не количеством товаров, а объёмом нестандартных решений.

Можно ли запуститься частью каталога

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

Почему не Битрикс

Иногда как раз Битрикс, и в разделе 10 я перечислил ситуации, где готовое решение выигрывает. Кастомная разработка нужна там, где каталог перестаёт быть типовым: вариативность, исключение невозможных конфигураций, обмен с учётной системой, которая не следует стандартному протоколу. Мы работаем на Laravel и Vue, потому что такие вещи на фреймворке описываются напрямую, а не обходом чужой логики. Подробнее - в статьеЧто такое Laravel и чем он полезен владельцу бизнесаи в подборке20 известных мировых сайтов на Laravel.

15. С чего начать на этой неделе

Каталог для производителя - это система, которая живёт на стыке вашего учёта и вашего отдела продаж. Она стоит денег и требует участия ваших людей, особенно на этапе приведения номенклатуры в порядок.
Возвращаюсь к тому, с чего начал. Компания, которая двадцать лет наращивала каталог, потеряла из виду часть собственной продукции не потому, что у неё был плохой дизайн. А потому, что структура данных перестала соответствовать тому, как эту продукцию ищут. Красивая витрина этого не лечит.

Три шага, которые можно сделать самостоятельно, ничего не заказывая:

  • 1

    Выгрузите номенклатуру из 1С в Excel. Посмотрите глазами: характеристики вынесены в колонки или сидят в названии. Пятиминутная проверка, которая сразу покажет масштаб работы с данными.

  • 2

    Спросите двух-трёх постоянных клиентов, по каким параметрам они выбирают. Ответ почти никогда не совпадает с тем, как устроен ваш прайс. Из этих ответов получается список фильтров.

  • 3

    Откройте свой каталог и попробуйте найти в нём позицию, которую вы давно не продавали. Засеките время и посчитайте клики. Это самый честный способ понять, где вы находитесь.

Если хотите проверить данные заранее. Пришлите выгрузку номенклатуры из 1С в любом виде, в котором она выгружается. Мы посмотрим и вернём разбор: сколько позиций и групп, что структурировано, а что придётся чистить, какие фильтры соберутся из ваших данных прямо сейчас, а какие потребуют доработки. Это бесплатно и ни к чему не обязывает:info@goodfellazz.ru.

Если задача уже оформлена, есть бриф. Посмотреть, что мы делаем, можно в разделахвеб-разработка,разработка онлайн-сервисовиразработка на Laravel.

Есть проект?

Остались вопросы?

</div></div></div></div></div><h1<script>pxa classimgrec</html>imgid