Кто-то может уже столкнулся с тем, что в стандартном каталоге интернет-магазина Битрикса не работает сортировка товаров.
Решение есть, нужно немного модифицировать код.
В шаблоне eshop сортировка задается в файле /bitrix/templates/eshop_blue/components/bitrix/catalog/.default/section.php в коде:
Array ("name", "asc"),
"price" => Array ('PROPERTY_MINIMUM_PRICE', "asc"),
"date" => Array ('PROPERTY_NEWPRODUCT', "desc"),
);
Нужно переопределить переменные $sort и $sort_order следующим образом:
Array ("sort", "desc"),
"name" => Array ("name", "asc"),
"price" => Array ('PROPERTY_MINIMUM_PRICE', "asc"),
"date" => Array ('PROPERTY_NEWPRODUCT', "desc"),
);
Добрый день, в каталоге не работает сортировка товара по цене:
/catalog/index.php -> . вызов компонента catalog
Почему может не работать, всю голову уже сломал, пробовал уже по разному, все равно не выходит?
- Вопрос задан более года назад
- 211 просмотров
В вашем случае нужно узнать тип цены и написать примерно так
"ELEMENT_SORT_FIELD" => "catalog_PRICE_1",
"ELEMENT_SORT_ORDER" => "asc",
catalog__ — по полю CATALOG_FIELD (может быть PRICE — цена или CURRENCY — валюта) из цены с типом PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3). С версии 16.0.3 модуля Торговый каталог сортировка по цене также идет с учетом валюты.
После обновления Битрикс со старых версий на 16-ую может возникнуть ситуация с нерабочей сортировкой по цене в CIBlockElement::GetList и компонентах каталога.
С версии catalog 16.0.3 сортировка идет по столбцу b_catalog_price.PRICE_SCALE, который может не заполниться при конвертации магазина. Если такое случилось и у вас этот столбец пустой для всех товаров, сделайте следующее:
- Зайдите в редактирование валют и просто пересохраните вашу базовую валюту.
- Запустите SQL-запрос