msAddLinked
Описание
Добавление связанных товаров в виде дополнительных опций с увеличением цены добавляемого товара. В любой форме добавления товара в корзину можно выводить дополнительные товары, которые будут добавлены в качестве опций с последующим увеличением цены. В корзине и письмах возле товара выводятся добавленные опции.
Важно
В списке связанных выводятся только те товары, для которых в связях текущий товар или указанный сниппету msAddLinked.input является главным.
Сниппет msAddLinked.input
Предназначен для вывода списка связанных товаров и полей ввода. По умолчанию выводятся чекбоксы, но, в теории, можно задать любой тип, поддерживаемый атрибутом type тэга input. Проверена корректная работа типов text, number. Если в этих полях ввода указывать число, опции к товару в корзине будут добавлены в соответствующем количестве.
Параметры msAddLinked.input
Название | Значение по умолчанию | Описание |
---|---|---|
&tpl | tpl.msAddLinked.input | Чанк оформления |
&product | 0 (Текущий товар) | ID главного товара |
&link | 0 (Все связи) | ID связи |
&inputType | checkbox | Тип поля ввода для каждого связанного товара |
&priceTarget | #price | Селектор HTML элемента для вставки измененной цены |
&priceOrigTarget | #msal_price_original | Селектор HTML элемента для получения изначальной цены |
&fieldName | pagetitle | Поле ресурса для вывода названия |
&toPlaceholder | 0 | Если указан этот параметр, то результат будет сохранен в плейсхолдер, вместо прямого вывода на странице |
Сниппет msAddLinked.info
Предназначен для вывода в корзине и в письмах списка добавленных к товару опций.
Параметры msAddLinked.info
Название | Значение по умолчанию | Описание |
---|---|---|
&tpl | tpl.msAddLinked.input | Чанк оформления |
&option | {} | Значение опции товара со связями в JSON |
&fieldName | pagetitle | Поле ресурса для вывода названия |
Пример вызова:
[[!msAddLinked.info? &option=`[[+option.msal]]`]]
В синтаксисе Fenom:
{$_modx->runSnippet('msAddLinked.info', ['option' => $product.options.msal])}
Если в корзине выводятся другие опции товаров, тогда следующий блок:
{foreach $product.options as $option}
{var $options = $options ~ $option ~ '; '}
{/foreach}
необходимо заменить на такой:
{foreach $product.options as $k => $option}
{if $k != 'msal'}
{var $options = $options ~ $option ~ '; '}
{/if}
{/foreach}
Помимо этого, стандартные опции выводятся таким образом:
<div class="small">
{$product.options | join : '; '}
</div>
Для исключения вывода сырого JSON необходимо обрамить следующим образом:
{if $product.options.msal?}
{var $msal = $product.options.msal}
{unset $product.options.msal}
{/if}
<div class="small">
{$product.options | join : '; '}
</div>
{if $msal?}
{$_modx->runSnippet('msAddLinked.info', ['option' => $msal])}
{unset $msal}
{/if}
Системные настройки
Название | Значение по умолчанию | Описание |
---|---|---|
&msal_frontend_js | [[+jsUrl]]web/default.js | Путь к файлу JS |
&msal_variable | msal | Название переменной в опциях |