И так по умолчанию компонент bitrix:catalog.section умеет сортировать только по одному из полей например по цене catalog_PRICE_1 или по наличию IS_AVAILABLE однако стоит отредактировать файл компонента /bitrix/components/bitrix/catalog.section/component.php А конкретно заменить строку
[CODE]$arSort = array(
$arParams["ELEMENT_SORT_FIELD"] => $arParams["ELEMENT_SORT_ORDER"],
"ID" => "DESC",
); [/CODE]
На
[CODE] if(is_array($arParams["ELEMENT_SORT_FIELD"])):
$arSort = array();
foreach($arParams["ELEMENT_SORT_FIELD"] as $field):
$arSort[$field] = $arParams["ELEMENT_SORT_ORDER"];
endforeach;
else:
$arSort = array(
$arParams["ELEMENT_SORT_FIELD"] => $arParams["ELEMENT_SORT_ORDER"],
"ID" => "DESC",
);
endif;
[/CODE]Он станет фильтровать по нескольким полям переданным в виде массива
Например: "ELEMENT_SORT_FIELD" => array("catalog_PRICE_1","IS_AVAILABLE",),
Однако сортировка этих самых полей останется $arParams["ELEMENT_SORT_ORDER"]
менять сортировку мне было без надобности но грамотные и так догадались куда копать дальше.
[CODE]$arSort = array(
$arParams["ELEMENT_SORT_FIELD"] => $arParams["ELEMENT_SORT_ORDER"],
"ID" => "DESC",
); [/CODE]
На
[CODE] if(is_array($arParams["ELEMENT_SORT_FIELD"])):
$arSort = array();
foreach($arParams["ELEMENT_SORT_FIELD"] as $field):
$arSort[$field] = $arParams["ELEMENT_SORT_ORDER"];
endforeach;
else:
$arSort = array(
$arParams["ELEMENT_SORT_FIELD"] => $arParams["ELEMENT_SORT_ORDER"],
"ID" => "DESC",
);
endif;
[/CODE]Он станет фильтровать по нескольким полям переданным в виде массива
Например: "ELEMENT_SORT_FIELD" => array("catalog_PRICE_1","IS_AVAILABLE",),
Однако сортировка этих самых полей останется $arParams["ELEMENT_SORT_ORDER"]
менять сортировку мне было без надобности но грамотные и так догадались куда копать дальше.