Контекст
Клиент — производитель алюминиевых фасадов с линейкой профилей, цветов и вариантов исполнения. Каталог должен был стать рабочим инструментом: быстро добавлять новые позиции, не ломать структуру, не плодить дубли и поддерживать фильтрацию по параметрам, которые реально используют менеджеры и клиенты.
Типовая реализация «всё в карточке товара» здесь не подходит: характеристики пересекаются, меняются, и при росте ассортимента админка превращается в ручной труд и источник ошибок.
Задачи
Без дублирования
Характеристики должны храниться централизованно и переиспользоваться.
Масштабирование
Добавление новых фасадов и профилей без переработки структуры.
Фильтрация
Фильтры по типу цвета и ручкам без перезагрузки страницы.
Админ‑UX
Логичная модель данных, чтобы редактор не «собирал» каталог вручную.
Архитектура каталога
Основа решения — разделение сущностей. Фасад — витрина. Профиль — источник технических характеристик. Таксономии — классификация и фильтрация. Это убирает дубли и делает систему управляемой.
Профили и наследование характеристик
Профиль — отдельная сущность, где живут технические параметры: бренды, петли, наполнения, типы изделий и другие характеристики. Один профиль может использоваться в нескольких фасадах.
При обновлении профиля изменения автоматически отражаются во всех фасадах, которые на него ссылаются. Это снимает главную боль каталогов: рассинхронизацию данных и ручные правки.
Что хранится в профиле
- бренды
- петли
- наполнения
- типы изделий
- связанные цвета профиля
Что хранится в фасаде
- визуал и позиционирование
- связь с профилями
- ручки и вставки
- цвета фасада (если нужно отдельно)
Карточки фасадов
Карточка фасада собирается из собственных параметров и данных профилей. На фронтенде выводится единый набор характеристик, собранный из всех связанных профилей с дедупликацией значений.
<div class="facade-card"
data-color-types="dark,silver_like"
data-handles="gola,classic">
...
</div>
Такой формат делает фильтрацию быстрой и предсказуемой: WordPress подготавливает данные, JavaScript управляет отображением карточек.
Цвета и типы цвета
Цвета реализованы как таксономия. Для каждого цвета задан тип (например: тёмный, светлый, под золото, под серебро), который хранится в term meta и используется в фильтрации.
Это позволило фильтровать не по конкретным названиям цветов, а по смысловым группам, которые понятны пользователю и менеджеру.
Фильтрация на фронтенде
Реализованы независимые фильтры по типу цвета и по ручкам. Фильтрация работает без перезагрузки страницы, мгновенно, с единым UI в стиле сайта.
Фильтр по типу цвета
Использует типы из term meta, выводимые в data‑атрибуты карточек.
Фильтр по ручкам
Использует slug таксономии ручек, также выводимый в data‑атрибуты.
Единый UI
Одинаковая типографика, геометрия, hover/active, sticky‑поведение.
Результат
Нужен такой каталог
Если у вас производство, B2B‑продукт или сложная линейка с пересекающимися характеристиками — сделаем архитектуру, которая выдержит рост и останется управляемой.