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

Сортировка по цене и названию в 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>
В случае использования мультиязычности, не забудьте вынести языковые константы Сортировать по, Цене, ... и т.д в соответствующие файлы.

Комментарии
Полезность статьи
0 / 5 5 5 1
На основе 0 оценок
0%
0%
0%
0%
0%
Понравилась статья?
Отлично
Комментарий*
Представьтесь

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