Как писалось в разделе установки, существует екстендер shop, предназначенный для обработки служебных плейсхолдеров сниппета. Его нужно вызвать при выводе товаров с помощью Ditto, чтобы получилось &extenders=`shop`.
Начиная с версии 4.8 rc модуля, функции экстендера расширены (для ранних версий был отдельный экстендер sortprice). Добавлена возможность сортировки товаров по цене или дополнительным параметрам товара. Данный экстендер добавляет к Ditto 2 новых параметра: sortDirPrice и sortByPrice.
sortByPrice - поле для сортировки: price (по цене) или param (по доп. параметрам)
sortDirPrice - порядок сортировки: ASC (по возрастанию) или DESC (по убыванию)
Например, нам нужно отсортировать все товары по цене в порядке убывания. Но поскольку цена может быть в виде формулы, напр., 1-10==100||90, то Ditto не сможет корректно отсортировать товары по цене. В таком случае делаем вызов:
[!Ditto? &tpl=`product` &sortDir=`ASC` &extеnders=`shop` &sortByPrice=`price` &sortDirPrice=`DESC`!]
и все товары будут отсортированы по цене в порядке убывания
Если же, например, у товаров есть дополнительный параметр Диаметр (с помощью плагина TSVsparam), и у каждого диаметра есть своя цена, а нам нужно отсортировать товары не по основной цене, а по цене диаметра. В таком случае делаем вызов:
[!Ditto? &tpl=`product` &sortDir=`ASC` &extеnders=`shop` &sortByPrice=`param` &sortDirPrice=`DESC`!]
и все товары будут отсортированы по цене диаметра в порядке убывания. Причем если у товара один из диаметоров будет активным, будет учитываться именно он, в противном случае учитывается первый по счету диаметр
С версии 5.4.1 у екстендера появилась еще одна возможность: выводить разные цены для разных веб-групп.
Также с помощью данного екстендера можно выводить разные цены в зависимости от того, к какой веб-группе относится авторизованный пользователь. Например, у вас есть 3 группы пользователей с названиями group1, group2, group2, для которых нужно показывать разные цены. Для этого нужно создать в Карточке товара дополнительно 3 TV-параметра с ценами для каждой из групп (помимо имеющегося price, в котором идет обычная цена для всех остальных), например, tvprice1, tvprice2, tvprice3
Затем в вызове Ditto воспользуемся новым параметром >p=``. Достаточно в него добавить простую конфигурацию, которая решит нашу задачу: >p=`group1=tvprice1;group2=tvprice2;group3=tvprice3`. Как видно, мы просто вписали наши группы и соответсвующие им TV с ценой для этих групп по такому принципу: имявебгруппы1=имяtvсценой1;имявебгруппы2=имяtvсценой2 с разделителем - точка с запятой.
Вот как может выглядеть вызов в этом случае:
[!Ditto? &tpl=`product` &sortDir=`ASC` &extеnders=`shop` >p=`group1=tvprice1;group2=tvprice2;group3=tvprice3`!]
В этом случае для пользователей, относящихся к группе group1 будет показываться цена из tv-параметра tvprice1 , для group2 - из tvprice2 и т.д. А для неавторизованного или для не относящегося ни к одной из упомянутых групп - из стандартного price
Форум
Получите помощь в решении возникших трудностей или поделитесь своим опытом в работе с TSVshop.
Помощь проекту
Вы можете оказать посильную материальную помощь проекту, пожертвовав некоторую сумму.
Подпишитесь с помощью этой формы на наши новости, и вы сможете на свой электронный адрес получать самую свежую информацию о модуле TSVshop и узнавать о выходе новых версий.
Здравствуйте, я Андрей Корнелевский , хочу выразить администраторам , авторам и руководителям сайта благодарность ! За хороший сайт и продукцию , моя компания пользуется услугами вашего сайта.