
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 | Название переменной в опциях |
