По умолчанию в vamshop аттрибуты всех типов, кроме radio, выводятся без картинки. То есть, в админке имеется возможность закачать картинку к любому аттрибуту, а по факту, если тип аттрибута select, или checkbox, например, то присвоенная значению аттрибута картинка не будет отображена нигде в магазине. На официальном форуме поддержки этот вопрос поднимали, но в общем и целом, ответ знатоков заключается в том, что по умолчанию такой возможности нет, да и где собственно в том же select выводить картинку?
Не знаю, кому как, а мне всегда больше нравилось использовать выпадающие списки для аттрибутов. Это выглядит менее громоздко и намного аккуратнее, если в магазине используется достаточно много аттрибутов. Озадачившись поиском решения, путём проб и ошибок я подумал: а кто собственно говорит, что картинку надо выводить в самом выпадающем списке?! Это вовсе не обязательно. Итак, тем, кто интересуется, предлагаю решение задачи.
Открываем файл templates/vamshop1/modules/product_options/multi_options.html — вместо vamshop1, разумеется используйте наименование вашей темы оформления. В самом конце файла, после
{/if}
{/foreach}
{/if}
Разместите такой код:
Данное изделие доступно в цветах:;
{foreach name=outer item=options_data from=$options}
{foreach key=key_data item=item_data from=$options_data.DATA}
{if $item_data.IMAGE}
;
{/if}
{/foreach}
{/foreach}
После чего, Вам останется только оформить вывод аттрибутов по своему вкусу. Например, в одном из поддерживаемых мной магазинов, я сделал так:
В вышеупомянутом файле multi_options.html, находим:
{$options_data.NAME}:
Добавляем в него html разметку, после чего, код приобретает примерно такой вид (я в примере использовал таблицу, потому что на мой взгляд, те данные, которые выводятся аттрибутами, целесообразней выводить именно таблицей, но Вы можете сверстать и свой собственный макет):
{$options_data.NAME}: |
А в файл стилей добавляем классы
.calculator {width: 100%;}
.calc1 {background-color: #fffacd;}
.calc2 {background-color: #f5deb3;}
.dataname {width: 35%; font-weight: bold;}
.datavalue {width: 65%;}
.assortiment-color, .options {font-weight: bold;}
.options_color {float: left; width: 50px; height: 50px; border: 1px #444 solid;}
В результате, мы получим на странице карточки товара, примерно такой вывод аттрибутов товара, как на картинке ниже. Разумеется, вариантов оформления может быть множество. Если Вы достаточно разбираетесь в html и css, с этим не возникнет никаких сложностей.
Ну а если Вы в них не разбираетесь, возможно, Вам лучше обратиться к специалисту. Я выполню для Вас эту доработку за определённую плату. Причём, я даже её усовершенствую. Дело в том, что приведённый мной способ имеет один существенный недостаток. Если у Вас в магазине есть несколько групп аттрибутов, каждая из которых включает в себя картинки, то изображения аттрибутов будут выводиться одной общей массой. То есть, если например у Вас тоже магазин дверей и есть аттрибут «Цвет внешней панели» и аттрибут «Цвет внутренней панели» и для каждого из них заданно множество аттрибутов цвета, каждый из которых содержит картинку, и Вы задаёте для некоего товара три цвета внутренней панели и два цвета внешней панели, в итоге, в карточке товара, аттрибуты у Вас будут показываться раздельно, как и положено, но картинки будут идти одна за другой — все пять.
Так вот, я могу выполнить доработку, для вывода картинок аттрибутов, сгруппированных по группам аттрибутов. Всего я могу выполнить три вариации данной доработки.
1. Доработка в том виде, в каком она представлена здесь. То есть, если упомянутый недостаток для Вас несущественен, но выполнить её самостоятельно Вы не можете, я выполню её для Вас за 500 рублей.
2. Доработка с нормальным разделением картинок по отдельным группам аттрибутов. Такую доработку я выполню за 1500 рублей (до 5 групп аттрибутов. Если нужно больше, то +200 рублей за каждую группу аттрибутов, сверх пяти.
3. Доработка, аналогичная предыдущей, но с возможностью выводить картинки аттрибутов не только в карточке товара, но и в общем списке товаров категории. Такая доработка обойдётся в 2500 рублей.