Вебформат

Главная/Блог/Сайты и e-commerce

Сайты и e-commerce16 июля 202610 мин

Тысячи характеристик на витрине - и ни одной задачи разработчику

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

Витрина следует за 1С сама
Витрина следует за 1С сама

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

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

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

Почему типовой магазин требует разработчика

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

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

Решение

Карточку собирает справочник, а не вёрстка

Возьмём реальный товар - двухстоечный автоподъёмник, самый подробно описанный в каталоге. Ни состав характеристик, ни их порядок не записаны в вёрстке его карточки. Карточка спрашивает справочник: "что показать для этого товара и в какой последовательности" - и выводит ответ. Справочник наполняется выгрузкой из 1С вместе с самими товарами.

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

Путь от всех характеристик каталога до первого экрана одного товара
Весь каталог
столько характеристик ведёт учётная система
492
заполнены у этого автоподъёмника - больше, чем у любого другого товара
Товар
все значения пришли выгрузкой из 1С
51
справочник показа отбирает, что выводить в карточку
Таблица "Тех. характеристики"
порядок строк - не алфавит, а номера из 1С
23
первая очередь, наименьшие номера
Первый экран карточки
грузоподъёмность, напряжение питания, синхронизация, разблокировка стопоров
4

У этого товара заполнена 51 характеристика - больше, чем у любого другого в каталоге. В карточку выходят 23 из них, на первый экран - четыре. Отбор и порядок на каждом шаге - данные из 1С, а не логика в коде.

Каждый вид техники говорит на своём языке

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

Вместо этого каталог принимает столько характеристик, сколько ведёт учётная система: сейчас их 492, и все они вместе с 10 253 вариантами значений созданы выгрузками из 1С. Ни одна не заводилась вручную в административной панели.

Новая характеристика доходит до витрины сама

Путь новой характеристики: от инженера в 1С до витрины
1С:ERP
Инженер завёл характеристику "Класс защиты, IP" для моек колёс и отметил: показывать, шестой по порядку
уходит обычной выгрузкой товаров - очередь проверяется каждые ~10 секунд
Приём выгрузки
Служебные поля отсекает список исключений - 93 поля, от "Ставка НДС" до "Алкогольная продукция"
Новая характеристика создаётся сама, вместе с вариантами значений; существующая - обновляется
обновляется справочник показа
Справочник показа
Техническая или нет; порядок для компьютера и отдельно - для телефона
один и тот же порядок во всех блоках витрины
Карточка товара
показывает характеристику на отведённом ей месте
Умный фильтр
выстраивает характеристики тем же порядком
Разработчик не участвует ни на одном шаге: новая характеристика, переименование, смена порядка и снятие с витрины - это данные учётной системы, а не правки кода сайта.

Отдельной выгрузки "структура каталога" не существует: описание характеристик приходит вместе с товарами, обычной выгрузкой. Очередь выгрузок проверяется каждые ~10 секунд, поэтому изменение, сделанное инженером в 1С, доходит до витрины в течение минут.

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

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

Что показать и в каком порядке - решает 1С

Одна строка справочника управляет всей витриной
Запись справочника, пришедшая из 1С
Характеристика "Грузоподъёмность, кг" - техническая
Порядок на компьютере: первая очередь - 10, вторая - 0
Порядок на телефоне: свои два номера
Шесть значений - и никакого кода; таких записей в справочнике 538
одни и те же числа читают все блоки витрины
Первый экран карточки
четыре характеристики первой очереди с наименьшими номерами
Таблица "Тех. характеристики"
сначала вся первая очередь, затем вся вторая
Умный фильтр
тот же порядок, что в карточке
Мобильная версия
на телефоне порядок можно выстроить иначе
Ноль в обоих номерах - характеристика скрыта: снять её с витрины - правка в 1С, а не в коде сайта. Витрина собственных настроек показа не хранит.

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

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

Ноль в обоих номерах означает "не показывать". Чтобы убрать характеристику с витрины, контент-менеджер ставит ноль в 1С - код сайта при этом не меняется. Сейчас так скрыты 30 характеристик: они есть в данных, но витрине не нужны.

Фильтр и карточка не расходятся

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

Открытыми показываются первые параметры подбора, остальные - под ссылкой "Показать все фильтры": в разделе двухстоечных подъёмников их двадцать пять, и показать все сразу означало бы перегрузить покупателя подробностями. Что важно вынести наверх, снова решает учётная система. Всего в фильтрах каталога сейчас работают 365 характеристик.

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

Сорок две галочки - одна характеристика

Учётной системе удобно вести каждый признак отдельным полем: "наличие траверсы", "подсветка диска", "наличие педали". Такова её логика, и она оправдана. Но покупателю не нужны сорок два фильтра подряд, каждый со своей галочкой "да/нет".

Сорок две галочки в учётной системе - одна строка в карточке
Наличие педали
прессы гаражные
Подсветка диска
балансировочные станки
Наличие траверсы
автоподъёмники четырёхстоечные
...ещё 39 полей
каждое - отдельное поле "да/нет" в 1С
склейка при приёме выгрузки
Правило склейки - справочник, а не код
9 групп объединяют 98 полей учётной системы; новая группа заводится контент-менеджером
на витрине
Одна характеристика "Дополнительные характеристики"
42 варианта значения: в фильтре - один блок с галочками, в карточке - одна строка со списком того, что есть у этой модели

Поэтому при приёме выгрузки такие поля склеиваются: 98 полей учётной системы объединяются в 9 характеристик витрины. Сорок два признака "да/нет" становятся одной характеристикой "Дополнительные характеристики" с сорока двумя вариантами значения - одна строка в карточке и один блок в фильтре. Правило склейки - тоже справочник, а не код: новая группа заводится контент-менеджером.


Как это устроено внутри

Общая картина: между 1С и витриной стоят четыре справочника - показа, исключений, склейки и соответствий. Все они наполняются данными, а не правками кода.

РешениеКак сделано
Источник структурыОписание характеристик приходит вместе с выгрузкой товаров, отдельного обмена "структурой" нет. Приёмник разбирает описание потоково и досоздаёт недостающее: характеристику, варианты значений, запись справочника показа
Справочник показа538 записей: технический признак и четыре номера очерёдности (две очереди × компьютер и телефон). Единственный источник ответа на вопрос "что показать и в каком порядке" - для карточки, фильтра и сравнения
Правило порядкаТри корзины: сначала первая очередь по возрастанию номера, затем вторая, затем всё остальное. Одно правило применяется и в карточке, и в фильтре - поэтому они не расходятся
ВидимостьСумма номеров меньше единицы - характеристика не выводится. Видимость оказывается свойством данных, а не настройкой сайта
Список исключений93 служебных поля учётной системы (от "Ставка НДС" до "Алкогольная продукция") не выходят на витрину. Список - редактируемый справочник: раньше был бы константой в коде
Правила склейки9 групп объединяют 98 полей 1С в 9 характеристик витрины, в том числе 42 признака "да/нет" в одну множественную характеристику
Словарь соответствий454 записи вида "эта же характеристика известна учётной системе ещё под таким именем". Позволяет узнать существующую характеристику, когда 1С называет её по-новому
Имя для покупателяСлужебное уточнение в скобках ("Грузоподъёмность, кг (Автоподъёмники двухстоечные)") срезается при выводе - в карточке, фильтре и сравнении. Учётной системе нужна однозначность, покупателю - читаемость
НагрузкаСправочник показа читается один раз на страницу и кешируется: карточка с двадцатью тремя характеристиками не превращается в двадцать три обращения к базе данных

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

Вместо переименования появился словарь: 454 записи, каждая связывает имена, под которыми одна и та же характеристика известна учётной системе. Когда приходит новый идентификатор, приёмник узнаёт по словарю уже существующую характеристику и обновляет её. Прямо сейчас так работают 385 связок - смена формата в 1С прошла для витрины незаметно. Тот же словарь делает безопасными будущие переименования: они не рождают двойников.

Что это дало бизнесу

РаньшеСтало
Новая характеристика - задача разработчикуХарактеристика приходит с выгрузкой товаров и появляется на витрине сама
Порядок характеристик правится в кодеПорядок - число в 1С: 538 записей справочника показа
Карточка и фильтр расходятся между собойКарточка, фильтр и сравнение читают один справочник - расходиться нечему
Служебные поля 1С просачиваются на витрину93 служебных поля отсекает редактируемый список исключений
42 признака "да/нет" - 42 фильтра подряд98 полей 1С склеены в 9 характеристик витрины
Переименование в 1С рождает характеристику-двойникаСловарь соответствий узнаёт характеристику под новым именем

В цифрах

ПоказательЗначение
Характеристик в каталоге492 - все созданы выгрузками из 1С
Вариантов значений характеристик10 253
Видов техники116 - у каждого свой набор характеристик
Записей справочника показа538
Характеристик в фильтрах каталога365
Служебных полей в списке исключений93
Склейка признаков "да/нет"98 полей 1С объединены в 9 характеристик витрины
Связок словаря соответствий454 записи, 385 работают прямо сейчас
Скрыто с витрины данными, а не кодом30 характеристик
У самого подробного товаразаполнена 51 характеристика, в карточке - 23, на первом экране - 4
Подхват выгрузок сайтомочередь проверяется каждые ~10 секунд
Правок кода на новую характеристику0

Эта витрина - часть большой B2B-платформы: каталог, дилерский кабинет и двусторонний обмен с 1С. Что вошло в проект целиком - в кейсе B2B e-commerce платформы.

Хотите витрину, которая следует за вашей 1С сама?

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