Minishop2 - товары неправильно сортируются по опциям

Нужна сортировка по мощности(power) от меньшего к большему,
Поле делаем числовое prnt.sc/pge00i

Вызываем mFilter2
[[!mFilter2?
    					&parents=`[[*id]]`
    					&element=`msProducts`
    				
    					&leftJoin=`{
                            "Power": {
                                "class": "msProductOption",
                                "on": "Power.key = 'power' and Power.product_id = msProduct.id"
                            }
                        }`
                        &sortAliases=`{"power":"Power"}`
    				    &sort = `power|value:desc`
                    
                        
    					&filters=`
    					    ms|price:number,
    					    msoption|power,
    						msoption|avr,
    						msoption|type-execution
    						
    					`
    					&tpls=`tpl.msProducts.row`
    					&class=`msProduct`
    					&limit=`30`
    					&includeTVs=`pdf`
Получаем результат сортировки — prnt.sc/pge1p0
Могу предположить что все из-за того что в базе поле все равно пишется как текстовое prnt.sc/pge0r2
Кто нибудь сталкивался с подобным?
Михаил
08 октября 2019, 13:36
modx.pro
646
0

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

Володя
09 октября 2019, 09:33
0
CAST(`power`.`value` AS DECIMAL(12,2))
    Михаил
    09 октября 2019, 09:55
    0
    Куда это писать?
      Кирилл Киселев
      22 апреля 2020, 08:26
      0
      Спасибо, помогло.
      'select' => '{
        "Rent": "CAST(Rent.value AS DECIMAL(12,2)) as rent"
       }',
      Алексей Шумаев
      09 октября 2019, 12:49
      0
      Могу посоветовать новые опции сделать плагином:
      docs.modx.pro/komponentyi/minishop2/razrabotka/plaginyi-tovarov
      Так будет намного быстрее работать (если товаров много) и типы полей вы определите сами.
        Кирилл Киселев
        22 апреля 2020, 08:10
        0
        Точно такая же ситуация. Опция как числовое поле.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5