Фильтрация в mFilter2 по модификациям msOptionsPrice2

Привет!

Хочу сделать, чтобы фильтр по цене учитывал стоимость модификаций товара (msOptionsPrice2).

В описании к дополнению msOptionsPrice2 есть такая наводка:

Для вывода слайдера цен с учетом модификаций необходимо положить кастомный класс фильтрации в папку и указать в настройке mse2_filters_handler_class класс msopFilters
Поделитесь кодом класса, пожалуйста, если у кого-то есть.
Мартин Очоа
23 июня 2019, 01:30
modx.pro
294
0

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

Мартин Очоа
23 июня 2019, 19:00
0
Может хотя бы есть пример кастомного класса фильтрации, но не по модификациям?
    Андрей
    24 июня 2019, 02:25
    0
    Класс лежит здесь — core/components/msoptionsprice/custom/msopfilters.class.php
      Мартин Очоа
      24 июня 2019, 15:33
      0
      Спасибо! Обожаю документацию на modstore :)
    webmagnit
    22 сентября 2019, 15:28
    0
    Здравствуйте. Тестирую фильтрацию в mFilter2 по модификациям msOptionsPrice2.

    Хостинг modhost.pro
    MODX Revolution 2.7.1-pl
    Версия PHP 7.1
    miniShop2 — 2.5.0-pl
    mSearch2 — 1.13.2-pl
    msOptionsPrice2 — 2.5.20-beta
    pdoTools — 2.12.3-pl

    Создал опции товаров (miniShop2):
    option-01, option-02, option-03
    Тип свойства «Список с автодополнением»


    В шаблоне категории:

    [[!msOptionsPrice.initialize?]]
    [[!mFilter2?
    &limit=`5`
    &parents=``
    &element=`msProducts`
    &class=`msProduct`
    &setMeta=`1`
    &filters=`
    msop|option-01,
    msop|option-02,
    msop|option-03,
    msop|price:number
    `
    &tplOuter=`tpl.mFilter2.outer`
    &tpls=`tpl.msProducts.row,tpl.msProducts.row`
    &sort=`ms|price:desc`

    &tplFilter.outer.msop|option-01=`tpl.mFilter2.filter.select`
    &tplFilter.row.msop|option-01=`tpl.mFilter2.filter.option`
    &tplFilter.outer.msop|option-02=`tpl.mFilter2.filter.select`
    &tplFilter.row.msop|option-02=`tpl.mFilter2.filter.option`
    &tplFilter.outer.msop|option-03=`tpl.mFilter2.filter.select`
    &tplFilter.row.msop|option-03=`tpl.mFilter2.filter.option`
    &tplFilter.outer.msop|price=`tpl.mFilter2.filter.slider`
    &tplFilter.row.msop|price=`tpl.mFilter2.filter.number`
    ]]


    У товаров в модификациях (msOptionsPrice2) прописано:
    Product-01:
    модификация 1:
    Option-01 Ford
    Option-02 Focus
    Option-03 2001,2002,2003

    Модификация 2:
    Option-01 Hyundai
    Option-02 Accent
    Option-03 2002,2003,2004

    Product-02:
    модификация 1:
    Option-01 Audi
    Option-02 100
    Option-03 2001,2002,2003

    Модификация 2:
    Option-01 BMW
    Option-02 3
    Option-03 2002,2003,2004


    Скопировал файл msopfilters.class.php в папку /core/components/msearch2/custom/filters


    В системных настройках msearch2 указал Класс-обработчик фильтров «msopFilters»


    В системных настройках msoptionsprice указал Активные опции модификаций «option-01,option-02,option-03»


    В итоге:
    Фильтр (mFilter2) по модификациям (msOptionsPrice2) пустой

    В журнале ошибок
    [2019-09-22 14:14:58] (ERROR @ /core/components/msearch2/custom/filters/msopfilters.class.php: 52) [mSearch2] Error on get filter params.
    Query: SELECT msProductData.id, msopModification.option-01, msopModification.option-02, msopModification.option-03, msopModification.price FROM `modx_ms2_products` AS `msProductData` LEFT JOIN `modx_msop_modifications` `msopModification` ON msProductData.id = msopModification.rid AND msopModification.type = 1 AND msopModification.active = 1 WHERE `msProductData`.`id` IN (3,4) GROUP BY msopModification.id
    Response: Array
    (
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'msopModification.option' in 'field list'
    )

    Подскажите, что я сделал неправильно?
      Володя
      23 сентября 2019, 06:51
      0
      Подскажите, что я сделал неправильно?
      Опции модификаций лежат в отдельной таблице.
      &filters=`
      msopoption|option-01,
      msopoption|option-02,
      msopoption|option-03,
      msop|price:number
      `
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5