Сортировка по цене, по алфавиту и по количеству
При всей очевидности доработка сайта интернет-магазина битрикс с использованием документации по сортировке не так очевидна. Возникла у меня задача при внедрении редизайна сделать сортировку по цене, по алфавиту и по количеству. В итоге рабочий вариант выглядит так:
if (
$_GET[«sort»] == «catalog_PRICE_1» ||
$_GET[«sort»] == «catalog_QUANTITY» ||
$_GET[«sort»] == «NAME»
//где catalog_PRICE_1 базовая розничная цена, catalog_QUANTITY -сортировка по количеству, ну а NAME и так понятно.
)
{
$arParams[«ELEMENT_SORT_FIELD»] = $_GET[«sort»];
$arParams[«ELEMENT_SORT_ORDER»] = $_GET[«method»];
$arParams[«PAGE_ELEMENT_COUNT»] = $_GET[«limit»];
//для обычной сортировки по возрастанию/убыванию используется метод asc/desc
//для количества любой кастомный метод, у меня limit
}else{}
<div_ class=»sort-catalog»>
<select_ onchange=»window.location.href=this.options[this.selectedIndex].value»>
<option_ VALUE=»» hidden disabled selected>по возрастанию</option>
<option_ VALUE=»?sort=catalog_PRICE_1&method=asc» <?if ($_GET[«method»] == «asc»):?>selected<?endif;?> >по возрастанию</option>
<option_ VALUE=»?sort=catalog_PRICE_1&method=desc» <?if ($_GET[«method»] == «desc»):?>selected<?endif;?> >по убыванию</option>
</select>
<select_ onchange=»window.location.href=this.options[this.selectedIndex].value»>
<option_ VALUE=»» hidden disabled selected>По алфавиту</option>
<option_ VALUE=»?sort=NAME&method=asc» <?if ($_GET[«method»] == «asc»):?>selected<?endif;?> >По алфавиту (А-Я)</option>
<option_ VALUE=»?sort=NAME&method=desc» <?if ($_GET[«method»] == «desc»):?>selected<?endif;?> >По алфавиту (Я-А)</option>
</select>
<select_ onchange=»window.location.href=this.options[this.selectedIndex].value»>
<option_ VALUE=»» hidden disabled selected>27 на страницу</option>
<option_ VALUE=»?sort=catalog_QUANTITY&limit=27″ <?if ($_GET[«limit»] == «27»):?>selected<?endif;?> >27 на страницу</option>
<option_ VALUE=»?sort=catalog_QUANTITY&limit=54″ <?if ($_GET[«limit»] == «54»):?>selected<?endif;?> >54 на страницу</option>
<option_ VALUE=»?sort=catalog_QUANTITY&limit=81″ <?if ($_GET[«limit»] == «81»):?>selected<?endif;?> >81 на страницу</option>
</select>
</div>
Все это дела помещаем в файл section_vertical.php, это если стандартный компонент каталога. Код вставляем перед catalog.section

На выходе получаем:
Ещё статьи:
15.02.2024
История о жадности или как клиент свободное место искал на сервере
Случилась у меня одна история с клиентом, который свободное место искал на сервере, но на самом деле это больше о жадности, но в итоге всё равно пришл...
ID: 466
08.11.2023
Хроники БУС упадка
На днях произошли очередные изменения в БУС битрикс. Полезный модуль bitrix.xscan включили в состав проактивной защиты и убрали из бесплатного сегмента...
ID: 465
26.07.2023
Kwork.com закрыл доступ для резидентов РФ
Доступ к выставлению услуг теперь ограничен "К сожалению, вынуждены сообщить, что резиденты РФ в настоящее время не могут использовать сайт Kwork...
ID: 463
Новые статьи в блоге:
01.12.2025
Задача алфавитный указатель товаров
Интересная задача для тренировки навыков.
Суть такая:
Алфавитный указатель товаров, но не стандартный где обычно сортировка разделов по названию происходит,...
ID: 649
01.12.2025
Junior разработчик PHP 2025
Периодически бывает вижу вакансии для джунов, и немного прозреваю от того что я вижу.
Обязанности джуна Junior разработчик PHP
ID: 648
29.11.2025
Обзор на маркетплейс модулей города по IP адресу
Неделю назад повёлся на предложение клиента пойти вариантом платного модуля для замены модуля выбора города, хотя изначально сказал, что там ловить нечего....
ID: 647

