Битрикс - сортировка товаров по цене, наименованию

Для того, чтобы вывести  на странице списка товаров сортировку по цене и наименованию, необходимо в файле /bitrix/templates/ваш_сайт/components/bitrix/catalog/шаблон_каталога/section.php перед вызовом компонента списка товаров
<?$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, то есть, если у Вас в каталоге выводится, например, базовая цена и в списке типов цен она имеет id 2, то пишем catalog_PRICE_2, если id=3, то catalog_PRICE_3

Если необходимо сделать сортировку по цене  по возврастанию или по убыванию, то пишем код

<?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>

Комментарии 

 
# Дмитрий 31.05.2012 07:19
Спасибо, то что нужно...
Ответить | Ответить с цитатой | Цитировать
 
 
# Костя 08.08.2012 22:31
Спасибо большое
Ответить | Ответить с цитатой | Цитировать
 
 
# Виталий 30.08.2012 15:35
При указании поля сортировки catalog_PRICE_2 двойка в конце - ID типа цен, по которому необходимо осуществить сортировку. Эта сортировка работает также если делать выборку товаров с помощью API битрикса, например, CIBlockElement: :GetList. В таком случае первым параметром в эту функцию надо передавать следующий массив: $arOrder = array("catalog_PRICE_2 "=>"ASC");
Ответить | Ответить с цитатой | Цитировать
 
 
# Георгий 07.09.2012 10:06
Здравствуйте, что то у меня не получается отсортировать.. Код




Фото
Автомобиль
КПП
Двигатель
Год
Пробег
Цена (руб)
Ответить | Ответить с цитатой | Цитировать
 
 
# Влад 09.09.2012 09:10
Спасибо, статья помогла разобраться в принципах работы сортировки
Ответить | Ответить с цитатой | Цитировать
 
 
# Валера 12.11.2012 06:39
Отличный пост,на сайте битрикса ответа на эти вопросы нет)))
Ответить | Ответить с цитатой | Цитировать
 
 
# Антон 08.04.2013 16:03
Спасибо огромное!
Ответить | Ответить с цитатой | Цитировать
 
 
# Любовь 15.05.2013 11:51
Если б не вы, провозилась бы еще пол дня с этой сортировкой с:

Спасибо!
Ответить | Ответить с цитатой | Цитировать
 
 
# Дмитрий 10.06.2013 15:43
Низкий поклон) просто и понятно!
Ответить | Ответить с цитатой | Цитировать
 
 
# Артём 24.02.2014 17:24
А как привязать к $arParams["ELEMENT_SORT_FI ELD"] = "PROPERTY_" значение???
То есть мне нужно отсортировать по строке BRAND и значением SONY допустим???
Заранее спасибо за помощь!
Ответить | Ответить с цитатой | Цитировать
 
 
# IraSka 24.02.2014 17:52
никак, тут нужно уже использовать фильтры как-то так global $arrFilter;
$arrFilter['PROPERTY_TOPDAY '] = 'x';
ищите в этом направлении
Ответить | Ответить с цитатой | Цитировать
 
 
# Антон 12.04.2014 14:20
Супер, спасибо!!
Ответить | Ответить с цитатой | Цитировать
 
 
# Яна 25.04.2014 11:15
Спасибо за пример реализации сортировки,
такой вопрос: а где посмотреть свой список типов цен?
catalog_price_1
catalog_price_2
catalog_price_3
у меня или что вообще?
Ответить | Ответить с цитатой | Цитировать
 
 
# SkarIra 25.04.2014 11:19
во вкладке Магазин - Типы цен /bitrix/admin/cat_group_admin .php?lang=ru
1, 2, 3.. - это ID типов цен
Ответить | Ответить с цитатой | Цитировать
 
 
# Ann 04.07.2014 09:19
Здравствуйте!
А если в каталоге есть базовые цены и цены со скидкой?
в таком случае как оформляется сортировка?
Ответить | Ответить с цитатой | Цитировать
 
 
# SkarIra 04.07.2014 22:40
неуверенна, но по-моему скидка должна учитываться в сортировке
Ответить | Ответить с цитатой | Цитировать
 
 
# Михаил 04.09.2014 13:39
а если цены в разной валюте введены в товар, но насайте в рублях то не сортирует правильно
Ответить | Ответить с цитатой | Цитировать
 
 
# Сергей 28.01.2015 10:20
Да работает и в 15 версии.
Подскажите а как в сортировке вывести селект с выбором количества товара на странице (например 10, 15, 20)?
Ответить | Ответить с цитатой | Цитировать
 
 
# Алексей 04.03.2015 02:52
Здравствуйте, подскажите, что делать если используется не комплексный компонент - каталог, а на странице вызывается bitrix:catalog.section.
Ответить | Ответить с цитатой | Цитировать
 
 
 
 
# Андрей 20.11.2015 12:17
Скажите пожалуйста, а как сделать сорт по цене
с учетом работы умного фильтра?
Т.е., я делаю сорт умного фильтра по свойству, скажем, "производитель" - потом, нажимаю на "сорт по цене" - он сортирует весь каталог снова, сбрасывая включенный фильтр производителя. Как исправить?
Ответить | Ответить с цитатой | Цитировать
 
 
# SkarIra 20.11.2015 12:27
тогда надо писать ссылки в таком виде:
<a href="<?=$APPLICATION->GetCurPageParam ('sort=price&order=asc', array('sort', 'order'))?>" >Цена по возрастанию</a>
Ответить | Ответить с цитатой | Цитировать
 
 
# Андрей 20.11.2015 12:56
Огромное спасибо, в вашей статье и в ваших ответа конкретики и пользы больше, чем на всем форуме битрикса. Низкий поклон
Ответить | Ответить с цитатой | Цитировать
 
 
# SkarIra 20.11.2015 14:15
=) спасибо большое
Ответить | Ответить с цитатой | Цитировать
 
 
# Олег 10.12.2015 17:46
Добрый вечер. Не могли бы Вы подсказать, почему не срабатывает обратная сортировка по названию?
Ответить | Ответить с цитатой | Цитировать
 
 
# Олег 10.12.2015 18:11
"
Сортировать

Цены по убыванию
Цены по возрастанию
А-Я
Я-А

"
Ответить | Ответить с цитатой | Цитировать
 
 
# Андрей 25.01.2016 00:03
Здравствуйте, а как быть в ситуации, когда есть свойство "Метка" типа "Список" с тремя значениями "Новинка", "Хит", "Скидка". Каталог нужно выводить так, чтобы именно ХИТЫ шли первыми, а все другие товары сортировались по цене. property_MARK (MARK - символьный код моего свойства) выводит вперед товары со всеми тремя метками?
Ответить | Ответить с цитатой | Цитировать
 
 
# SkarIra 25.01.2016 13:05
так не получится, только если сделать три отдельных свойства Новинка, Хит, Скидка
prntscr.com/9uj0f3
Ответить | Ответить с цитатой | Цитировать