Поправить сортировку на Bitrix
Примерно, то что потребуется сделать:
Есть код
if(!$_GET["sort"]){
$sorter = [
'PROPERTY_KHIT_PRODAZH_1_VALUE' => 'ASC,NULLS',
'PROPERTY_NOVINKA_1_VALUE' => 'ASC,NULLS',
'PROPERTY_AKTSIYA_1_VALUE' => 'ASC,NULLS',
'CATALOG_STORE_AMOUNT_3' => 'DESC,NULLS',
'CATALOG_STORE_AMOUNT_49' => 'DESC,NULLS',
'CATALOG_PRICE_3' =>'ASC',
];
}
$query = $this->elementModel->query();
$page = $this->arParams['PAGE'] ?: 1;
$elements = $query
->setPagerTemplate('.default')
->where($filter)
->where($arrFilter ?: [])
->orderBy($sorter, true)
->page($page, $this->arParams['PAGE_ELEMENT_COUNT'])
->fetchAll();
Собственно в $sorter надо запихать что-то подобное:
ORDER BY CASE WHEN CATALOG_STORE_AMOUNT_3 > 0 THEN CATALOG_STORE_AMOUNT_3 = 1 END DESC