• г. Хабаровск, ул. Хабаровская, д. 15в, оф. 417

+7 (4212) 93-55-35

Сортировка по цене и названию в 1С-Битрикс 22.11.2019

Сортировка по цене и названию в 1С-Битрикс

Старая проблема, которую Битрикс так и не намеревается решать удобным для пользователей способом - сортировки по цене и названию. Данный тип сортировки особенно популярен у посетителей, привыкших к функционалу VirtueMart и WebAsyst Shop-Script. 
Как сделать сортировку по цене или названию в 1С-Битрикс? C помощью админ панели Вашего сайта или любимого редактора открываем файл
"/bitrix/templates/ваш_сайт/components/bitrix/catalog/шаблон_каталога/section.php;"
Находим место подключения компонента - список категорий каталога - bitrix:catalog.section
<?$APPLICATION->IncludeComponent(
"bitrix:catalog.section
вставляем перед ним
<?if ($_GET["sort"] == "price")
{
$arParams["ELEMENT_SORT_FIELD"] = "catalog_PRICE_2";
}
if ($_GET["sort"] == "name")
{
$arParams["ELEMENT_SORT_FIELD"] = "NAME";
}
?> 
Сортировать по: <a href="?sort=price">цене</a> | <a href="?sort=name">названию</a>
В представленном примере, значение: catalog_PRICE_2 - это базовая цена, имеющая id=2 в списке типов цен Битрикс Сортировка по убыванию или возрастанию цены При желании можно пойти еще дальше и добавить возможность сортировать по возрастанию или убыванию стоимости. Для этого, добавить в представленный выше код простое условие
<?if ($_GET["sort"] == "price")
{
$arParams["ELEMENT_SORT_FIELD"] = "catalog_PRICE_2";
}
if ($_GET["order"] == "vozvr") $arParams["ELEMENT_SORT_ORDER"]= "asc";
if ($_GET["order"] == "ubiv") $arParams["ELEMENT_SORT_ORDER"]= "desc";
?> 
<div  class="sort">
Сортировать по цене: 
<a  href="?sort=price&order=ubiv">по убыв.</a> | <a  href="?sort=price&order=vozvr">по возвр.</a></div>

Возврат к списку