Сегодня небольшой урок, о дополнительных опциях minishop2, а именно разберем: как создавать, выводить доп опции, как кастомизировать (изменить) вывод дополнительных и как вывести единицы измерения этих опций.
Создание дополнительных опций
Идем в Приложения — miniShop2 — Настройки, вкладка Опции и жмем на кнопку Создать.
Далее заполняем нужные свойства и сохраняем.
Главное заполнить Ключ — на английском, без пробелов, запятых и Название на русском, так же если есть единицы измерения, то еще заполняем их.
Кастомизация вывода дополнительных опций
По умолчанию за вывод доп опций отвечает чанк tpl.msProductOptions, делаем его копию с именем tpl.msProductOptions.custom и меняем вывод под себя, например у меня bootstrap 4 и вывод изменен так:
{foreach $options as $option} <div class="row"> <div class="col-7"><strong>{$option.caption}:</strong></div> <div class="col-5"> {if $option.value is array} {$option.value | join : ', '} {else} {$option.value} {/if} </div> </div> {/foreach}
Далее в чанке msProduct.content (лучше тоже создать его копию), заменяем вызов [[msProductOptions]] на
[[msProductOptions? &tpl=`tpl.msProductOptions.custom`]]
Вывод единиц измерения доп опций
Для того чтобы вывести единицы измерения, достаточно в чанк tpl.msProductOptions.custom прописать:
{$option.measure_unit}
получаем.
{foreach $options as $option} <div class="row"> <div class="col-7"><strong>{$option.caption}:</strong></div> <div class="col-5"> {if $option.value is array} {$option.value | join : ', '} {$option.measure_unit} {else} {$option.value} {/if} </div> </div> {/foreach}
Если остались вопросы, спрашиваем в комментариях.
Переименовываю опции товара, а на странице выводятся старые названия, что сделать?
Кэш скорее всего нужно очистить)