Меню

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

RSS
Сортировать товары по названию, цене и дате поступления в каталоге Битрикс
 
Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию в каталоге товаров работающего на Битрикс.
Сделать это достаточно просто, тем более можно подсмотреть в пример реализации в типовом интернет магазине, что идет в комплекте со старшими редакциями системы у правления.
 
Здравствуйте!
А если мне нужно фильтр и сортировку вывести после описания раздела, то придется в шаблон (в файл template.php) catalog.section нужно перенести код шаблона template.php компонента catalog.smart.filter ? А то я ничего умнее не придумала.
Спасибо.
 
Цитата
Анна пишет:
Здравствуйте!
А если мне нужно фильтр и сортировку вывести после описания раздела, то придется в шаблон (в файл template.php) catalog.section нужно перенести код шаблона template.php компонента catalog.smart.filter ? А то я ничего умнее не придумала.
Спасибо.
Если я првильно понял суть задачки- то лучше было вставить вызов фильтра в section.php (лежит в корне шаблона комплексного компанента "каталог"

Хотя конечно без особой разницы, просто немного не по "фен шую", если кто-то после Вас, однажды будет дорабатывать или переделывать- немножко поматериться. Вообще часто сталкиваюсь с доработками сайтов- после вот такого "а работает и фиг с ним )" - немного дороже беру, за трату времени на понимание, но чаще проще переделать чем понять.
 
Цитата
Михаил Базаров пишет:
Цитата
Анна пишет:
Здравствуйте!
А если мне нужно фильтр и сортировку вывести после описания раздела, то придется в шаблон (в файл template.php) catalog.section нужно перенести код шаблона template.php компонента catalog.smart.filter ? А то я ничего умнее не придумала.
Спасибо.
Если я првильно понял суть задачки- то лучше было вставить вызов фильтра в section.php (лежит в корне шаблона комплексного компанента "каталог"

Хотя конечно без особой разницы, просто немного не по "фен шую", если кто-то после Вас, однажды будет дорабатывать или переделывать- немножко поматериться. Вообще часто сталкиваюсь с доработками сайтов- после вот такого "а работает и фиг с ним )" - немного дороже беру, за трату времени на понимание, но чаще проще переделать чем понять.
Вызываю я его по фен шую, в section.php
А вот выводить хочу после названия и описания подкаталога.

Т.е. так:

----------------------------------------------------
Юбки (заголовок)
Наши юбки бла бла бла...(описание)

фильтр и сортировка

элементы каталога.
----------------------------------------------------

Если вызываю фильтр в section.php, и его шаблон храню, как положено в мой_шаблонcomponents/bitrix/catalog.smart.filter/visual_horiz/template.php

То фильтр выводится на сайте над название и описанием.
Может  я не там вывожу название и описание подкаталога?
я вывожу его в catalog.section/.default/template.php
 
День добрый
а если надо сортировать по какому то свойству?
 
Цитата
Игорь пишет:
День добрый
а если надо сортировать по какому то свойству?
$_GET["sort"] == "property_PRODUCT_TYPE" - где PRODUCT_TYPE имя свойства
 
Добрый день, а как вывести сортировку, если мы находимся на странице выдачи результатов поиска и компонент  каталога комплексный? Ведь при таком вызове мы потеряем параметры в GET типа &how=r&q=строка_запроса
 
Здравствуйте!
Спасибо за вариант.
Одно но: Ваша сортировка работает только в один конец, т.е. asc или desc.
Не подскажете, как сделать на одной кнопке по цене, чтобы она меняла направление после каждого нажатия?
 
Здравствуйте, сделал все как указанно, но у меня почему то не работает. при нажатии на сортировку, например, по цене, исчезают все товары. В чем может быть проблема подскажите пожалуйста
 
Цитата
Владимир пишет:
Здравствуйте, сделал все как указанно, но у меня почему то не работает. при нажатии на сортировку, например, по цене, исчезают все товары. В чем может быть проблема подскажите пожалуйста
Перепроверьте все еще раз внимательно, должно работать.
 
Цитата
Михаил Базаров пишет:
Цитата
Владимир пишет:
Здравствуйте, сделал все как указанно, но у меня почему то не работает. при нажатии на сортировку, например, по цене, исчезают все товары. В чем может быть проблема подскажите пожалуйста
Перепроверьте все еще раз внимательно, должно работать.
Перепроверил несколько раз, никак не могу понять в чем причина, сможете помочь? Вот участок кода который отвечает за цену и передачу товара в корзину:

[td]
<?if($arPrice = $arElement["PRICES"][$code] ;) :?>
<?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"] ;) :?>
<?=$arPrice["PRINT_VALUE"]?><br /><span class="catalog-price"><?=$arPrice["PRINT_DISCOUNT_VALUE"]?></span>
<?else:?>
<span class="catalog-price"><?=$arPrice["PRINT_VALUE"]?></span>
<?endif?>
<?else:?>
 
<?endif;?>
<?endforeach;?>
<?if(count($arResult["PRICES"] ;)  > 0):?>
<?if($arElement["CAN_BUY"] ;) :?>
"title="купить">

 
<?elseif((count($arResult["PRICES"] ;)  > 0) || is_array($arElement["PRICE_MATRIX"] ;) ):?>
<?=GetMessage("CATALOG_NOT_AVAILABLE" ;) ?>
<?endif?> 
[/td]
<?endif;?>
[/tr]
 
Как я понимаю о кэше можно забыть с таки вариантом?
 
Цитата
Guest пишет:
Как я понимаю о кэше можно забыть с таки вариантом?
записка достаточно древняя. Глянте в новом типовом решении магазин, что ставится с битрикс- там это уже реализовно с кешем :)
 
Подскажите пожалуйста как сделать сортировку по полю количество товаров?
 
Подскажите пожалуйста, почему при нажатии на ссылку для сортировки переводит на главную страницу?
 
Цитата
Guest пишет:
Подскажите пожалуйста, почему при нажатии на ссылку для сортировки переводит на главную страницу?
Видимо в начале ссылки на сортировку оставили "/" - уберите его
 
Возник вопрос а как сделать сортировку в news.list
пытался так
В /bitrix/news/novnov/section.php
Код
<?
$arParams["SORT_BY1"] = !empty(trim($arParams["SORT_BY1"]))? trim($arParams["SORT_BY1"]) : "NAME";$arParams["SORT_ORDER1"] = !empty(trim($arParams["SORT_ORDER1"]))? trim($arParams["SORT_ORDER1"]) : "ASC";   

?>

а в /news/novnov/bitrix/news.list/template.php
Код
<p class="sort">Сортировка:

    <a <?if ($_GET["sort"] == "NAME"):?> class="active" <?endif;?>       href="/novosti/?sort=NAME&method=asc">название</a>       
 
      
</p>
Не работает
 
Добрый вечер, Михаил.
Подскажи как отсортировать товар со скидками что бы товар со скидкой оказался вверху страницы?  
 
Добрый день!
Подскажите пожалуйста как реализовать эту сортировки чтоб не было проблем с кешем?
Также сортировка по цене не работает для товаров с торговыми предложениями, есть ли какое-то решение для такой проблемы?
Спасибо :)
 
Цитата
svetlana.sukova написал:
Добрый день!
Подскажите пожалуйста как реализовать эту сортировки чтоб не было проблем с кешем?
Также сортировка по цене не работает для товаров с торговыми предложениями, есть ли какое-то решение для такой проблемы?
Спасибо
ПРоблем с кешем, быть не должно (во всяком случае не сталкивался)
По предложениям, вот так не "рассказать" в рамках ответа. Быть может запишу видео, следите на ютуб канале
 
А подскажите как сделать сортировку вверх-вниз при клике на одну ссылку?
 
Цитата
Jekas написал:
А подскажите как сделать сортировку вверх-вниз при клике на одну ссылку?
Можно по простому, меняя порядок сортировки asc / desc
Типа того
Код
<a <?if ($_GET["sort"] == "catalog_PRICE_3"):?> class="actived" <?endif;?> 
href="<?=$arResult["SECTION_PAGE_URL"]?>?sort=catalog_PRICE_3&method=asc"> 
Цене от дешевых
</a> 

<a <?if ($_GET["sort"] == "catalog_PRICE_3"):?> class="actived" <?endif;?> 
href="<?=$arResult["SECTION_PAGE_URL"]?>?sort=catalog_PRICE_3&method=desc"> 
Цене от дорогих
</a> 
У той, которая нажатая, будет класс actived - с помощью него, просто прятать ее в display:none
 
Цитата
Михаил Базаров пишет:
Цитата
Jekas написал:
А подскажите как сделать сортировку вверх-вниз при клике на одну ссылку?
Можно по простому, меняя порядок сортировки asc / desc
Типа того
Код
 <a <?if ($_GET["sort"] == "catalog_PRICE_3"):?> class="actived" <?endif;?> 
href="<?=$arResult["SECTION_PAGE_URL"]?>?sort=catalog_PRICE_3&method=asc"> 
Цене от дешевых
</a> 

<a <?if ($_GET["sort"] == "catalog_PRICE_3"):?> class="actived" <?endif;?> 
href="<?=$arResult["SECTION_PAGE_URL"]?>?sort=catalog_PRICE_3&method=desc"> 
Цене от дорогих
</a> 
 
У той, которая нажатая, будет класс actived - с помощью него, просто прятать ее в display:none
Только оно будет для двух случаев одинаково и тут не проверить (
 
Цитата
Jekas написал:
Только оно будет для двух случаев одинаково и тут не проверить (

Ну да, что то не подумал  :)
Тогда, надо подумать. Можно изначальные параметры переписать и для каждого направления сортировки создать отдельную логику в
Код
<?if ($_GET["sort"] == "name" || 
$_GET["sort"] == "catalog_PRICE_3" || 
$_GET["sort"] == "property_PRODUCT_TYPE" || 
$_GET["sort"] == "timestamp_x"){ 
$arParams["ELEMENT_SORT_FIELD"] = $_GET["sort"]; 
$arParams["ELEMENT_SORT_ORDER"] = $_GET["method"]; 
}else{}?>
 
Цитата
Михаил Базаров пишет:
Цитата
Jekas написал:
Только оно будет для двух случаев одинаково и тут не проверить (
Ну да, что то не подумал
Тогда, надо подумать. Можно изначальные параметры переписать и для каждого направления сортировки создать отдельную логику в
Код
 <?if ($_GET["sort"] == "name" || 
$_GET["sort"] == "catalog_PRICE_3" || 
$_GET["sort"] == "property_PRODUCT_TYPE" || 
$_GET["sort"] == "timestamp_x"){ 
$arParams["ELEMENT_SORT_FIELD"] = $_GET["sort"]; 
$arParams["ELEMENT_SORT_ORDER"] = $_GET["method"]; 
}else{}?>
 
А можете показать на примере, если конечно Вам не сложно )
 
Добрый день Михаил.
Подскажите пожалуйста - используя вашу сортировку в уроке - как выставить еще правило дял сортировки по умолчанию (к примеру по свойству)?
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Создание раздела инфоблока при регистрации пользователя в Битрикс

Например вам нужно выводить информацию исключительно для определенного пользователя. Само собой, это можно сделать с пом...

Автоматическая загрузка каталогов из csv файлов в Битрикс

Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В 1С-Битрикс, уже есть весь не...

Ссылки для добавления и удаления товара из сравнения в Битрикс

Просто оставляю это здесь, вставка ссылок на добавление и удаление товара из сравнения, если уже добавлен. Чуть позже до...

ORM в инфоблоках, получение информации об элементах инфоблока на D7

Задача: собрать полные данные об элементах инфоблока, применяя ORM/D7, который пришел на смену устаревшему CIBlockEleme...

Установка вебсервера на Apple Silicon (нативный ARM стек), оптимизированный для 1С-Битрикс.

Появилась задачка, установить стек MAMP (macOS, Apache, MYSQL, PHP) на рабочий ноутбук с процессором Apple Silicon M1. В...

Как вывести свойства инфоблока по отдельности и немного плюшек не в тему

Если у инфоблока несколько свойств- то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе...

Глобальные фильтры на всякие случаи жизни

Глобальный фильтр, нужен чаще всего, для вывода определенных элементов, из общего массива, инфорблока. Спектр применяем...

Моментальная фильтрация на AJAX в умном фильтре 1С-Битрикс

При штатной установке, интернет-магазина на 1С Битрикс, умный фильтр по товарам, показывает колличество найденных товаро...

Подключение мобильной версии шаблона Битрикс сайта, с автопереключением

Предпочитаю, что бы сайт не грузил кучу скриптов и стилей. При загрузке адаптивного шаблона за ним тянется очень много ф...