addComparison

21 августа 2017, 18:14

Сниппет добавления товара в список сравнения.

Параметры

Название По умолчанию Описание
&list default Имя конфигурации сравнения. Если у вас на сайте разные группы товаров, то нужно указывать для них разные конфигурации.
&list_id 0 Id ресурса, в котором вызван сниппет CompareList с конфигурацией, указанной в параметре list. Если пользователь может сравнить товары, то он увидит ссылку на этот ресурс. Обязательный параметр
&tpl tpl.Comparison.add Чанк, содержащий специальные ссылки для работы со списком сравнения. Содержит разные служебные плейсхолдеры, которые лучше не менять.
&minItems 2 Минимальное количество товаров для сравнения.
&maxItems 10 Максимальное количество товаров для сравнения.
&id [[*id]] Id товара, который будет добавляться к сравнению. По умолчанию - текущий ресурс.

Вызов на странице

Вы можете вызывать один сниппет на странице товара:

[[!addComparison?
    &list_id=`15`
]]

Или несколько, при выводе категории товаров, например в чанке tpl.msProducts.row:

[[!addComparison?
    &list_id=`15`
    &id=`[[+id]]`
]]

Если у вас на сайте есть разные типы товаров (холодильники и телефоны), во избежание их сравнения друг с другом, нужно указывать параметр &list.

[[!addComparison?
    &list_id=`15`
    &list=`mobile`
    &id=`[[+id]]`
]]

Имейте в виду, что для указанного &list должна быть прописана конфигурация при вызове сниппета CompareList.

Вывод количества добавленных к сравнению товаров отдельным блоком

Например, вам нужно вывести отдельно в шапке или плавающим блоком количество товаров для сравнения. Для этого отдельно вызываем некешируемый сниппет:

[[!addComparison?
    &list_id=`id вашего списка сравнения`
    &tpl=`tpl.Comparison.num`
]]

В чанке tpl.Comparison.num оставляем только оборачивающий

<div data-id="[[+id]]" data-list="[[+list]]"></div>

и саму ссылку c плейсхолдером и ВНИМАНИЕ! классом comparison-total

<a class="comparison-total">[[+total]]</a>

Логика работы

При нажатии на специальную ссылку, id товара добавляется в список сравнения, который хранится в сессии пользователя.

Если в списке достаточно товаров (больше одного, по умолчанию), то будет показана ссылка на страницу сравнения, указанную в параметре &list_id.

При переходе на эту страницу, сниппет CompareList получит переменную &list, загрузит указанную для неё конфигурацию и проведёт сравнение товаров списка.

Таким образом, вы сами определяете, какой товар с чем можно сравнивать - указанием &list при вызове.