Как настроить сортировку товара по цене
Здравствуйте! Подскажите как правильно настроить сортировку товара по цене, к примеру от 2000?
Уже имеется сортировка по price:asc и price:desc, но нужно от конкретного значения.
Уже имеется сортировка по price:asc и price:desc, но нужно от конкретного значения.
<div class="sort" id="mse2_sort">
<span class="sort__text">Показать сначала</span>
<a href="/" data-sort="ms|old_price:desc" data-dir="" class="sort__link active"><span class="link-span">Со скидкой</span></a>
<a href="/" data-sort="ms|price:asc" data-dir="" class="sort__link"><span class="link-span">Дешевые</span></a>
<a href="/" data-sort="ms|price:desc" data-dir="" class="sort__link"><span class="link-span">Дорогие</span></a>
<a href="/" data-sort="resource|publishedon:desc" data-dir="" class="sort__link"><span class="link-span">Новинки</span></a>
</div>
Комментарии: 3
Добавить в вызов mFilter2 параметр:
&where=`{"Data.price:>=":2000}`
Спасибо за ответ, про этот параметр я знал, у меня есть фильтр такого вида:
[[!mFilter2?
&limit=`9`
&parents=`[[*id]]`
&class=`msProduct`
&element=`msProducts`
&tpl=`product_list_discount`
&includeThumbs=`300x300`
&tplCondition=`old_price`
&tplOperator=`empty`
&conditionalTpls=`["product_list"]`
&filters=`
ms|price:number
,msoption|flowers:default
,msoption|whom:default
,msoption|events:default
,msoption|colors:default
`
&toPlaceholders=`my.`
&sortby=`price`
&sortdir=`ASC`
&ajaxMode=`button`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
&tplFilter.outer.msoption|colors=`tpl.mFilter2.filter.outer`
&tplFilter.row.msoption|colors=`tpl.mFilter2.filter.checkbox-color`
]]
Если добавить параметр &where=`{"Data.price:>=":2000}`
то будет выводиться товар где у нас цена > 2000, что мне не подходит, (точнее подходит), но мне нужно чтобы этот параметр для сортировки отрабатывал по клику по ссылке. Как реализовано здесь <div class="sort" id="mse2_sort">
<span class="sort__text">Показать сначала</span>
<a href="/" data-sort="ms|old_price:desc" data-dir="" class="sort__link active"><span class="link-span">Со скидкой</span></a>
<a href="/" data-sort="ms|price:asc" data-dir="" class="sort__link"><span class="link-span">Дешевые</span></a>
<a href="/" data-sort="ms|price:desc" data-dir="" class="sort__link"><span class="link-span">Дорогие</span></a>
<a href="/" data-sort="resource|publishedon:desc" data-dir="" class="sort__link"><span class="link-span">Новинки</span></a>
</div>
Я так понимаю исходя из документации к компоненту нужно что-то такого вида:[[!mFilter2?
&parents=`0`
&element=`msProducts`
&leftJoin=`{
"Test1": {
"class": "msProductOption",
"on": "Test1.key = 'test1' and Test1.product_id = msProduct.id"
}
}`
&sortAliases=`{"test1":"Test1"}`
&aliases=`test1|value==test1`
&sort=`test1:desc`
]]
Присоединяем опцию test1, добавляем для этой таблицы псевдоним и сортируем по значению присоединённой опции.Ссылка для сортировки в чанке tpl.mFilter2.outer в данном случае должна быть примерно такой:<a href="#" class="sort [[+mse2_sort:is=``:then=`active`]]"
data-sort="test1"
data-dir="[[+mse2_sort:is=``:then=`desc`]]"
data-default="desc">Test1 <span></span></a>
Но что-то я пока не пойму как это применить… <a href="#"
data-sort="ms|price:desc"
data-dir="[[+mse2_sort:is=`ms|price:desc`:where=`{'Data.price:>=':2000}`]]"
class="sort__link">
<span class="link-span">Дорогие от 2000 р.</span>
</a>
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.