Как настроить сортировку товара по цене

Здравствуйте! Подскажите как правильно настроить сортировку товара по цене, к примеру от 2000?
Уже имеется сортировка по 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>
Сергей
27 декабря 2017, 12:20
modx.pro
2 552
0

Комментарии: 3

Андрей
27 декабря 2017, 22:19
0
Добавить в вызов mFilter2 параметр:

&where=`{"Data.price:>=":2000}`
    Сергей
    28 декабря 2017, 09:08
    0
    Спасибо за ответ, про этот параметр я знал, у меня есть фильтр такого вида:
    [[!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>
    Но что-то я пока не пойму как это применить…
    Алекс Назаренко
    09 августа 2018, 15:31
    1
    0
    <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>
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3