Атрибуты (характеристики) в OpenCart - это одна из самых используемых вещей в магазине, но сток их делает максимально неудобно. Хочешь добавить иконку к атрибуту, чтобы выглядело красиво и информативно? Хотеть не вредно. Хочешь подсказку при наведении/клике, чтобы клиент понял, за что платит? Ага, помечтай. А теперь самое весёлое: контент-менеджер заполняет значения атрибутов. Один раз пишет "Белый", другой - "белый", третий - "Белый цвет". Человек поймёт, что это одно и то же. Фильтр - нет. В итоге в фильтре появляются 3 разных варианта "белого", клиент видит эту грязь, грустнеет на глазах и идет к конкурентом, кто в состоянии заполнить сайт корректно, а вы в этом время казните своего контент-менеджера (ну или вините себя за невнимательность и кривые руки).
Само собой есть модули для решения этой проблемы, но они как обычно сделаны через жопу, игнорируют базовую платформу, плодят кучу модифицированных файлов и создают больше проблем, чем решают. Уже поняли что я сделал?
Иконки и подсказки для каждого атрибута
В админке, в разделе Каталог > Характеристики, у каждого атрибута теперь есть поля:
- Иконка - простое текстовое поле, где можно вставить HTML или SVG, максимально просто и гибко.
- Подсказка - текст, который появляется в виде уведомления при клике на иконку знака вопроса рядом с названием атрибута на фронте.
Всё. Иконка отображается слева от названия характеристики, подсказка справа. Просто, красиво, информативно. Никаких костылей. Хотите внести правки? Легко! Никаких модификаторов, только чистый, структурированный код, лаконично интегрированный в имеющуюся логику, правьте на здоровье.
Значения по умолчанию через разделитель |
Для каждого атрибута (и для каждого языка отдельно) добавил поле "Значения по умолчанию". Пишешь через |, например:
Белый | Синий | Красный или 1 м. | 2 м. | 3 м.
При редактировании товара в поле значения атрибута появляется выпадающий список со всеми этими вариантами. Кликнул - значение вставилось. Всё. Контент-менеджер больше не пишет "1м." один раз и "1 м" другой. Фильтры видят одно значение. Никакой сложной системы тегов, никаких отдельных сущностей "варианты атрибута" - вместо этого строка с разделителем. Просто, понятно, работает.
Разные языки - разные списки. На русском "Белый | белый", на английском "White | white" - никаких проблем.
Всё из коробки. Поставил сборку - зашёл в атрибуты - добавил иконку, подсказку и типовые значения через |, готово.