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

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс
Данный форум не является официальным и не преследует ни каких целей. Владелец сайта оставляет за собой право удалять, перемещать и закрывать темы и посты по своему усмотрению. Рекламные темы и сообщения только с согласия администратора.

Вход Регистрация
Быстрый вход / регистрация, через социальную сеть
Регистрируясь на форуме, Вы безоговорочно принимаете условия политики конфеденциальности и обработки персональных данных
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{}?>
 
А можете показать на примере, если конечно Вам не сложно )
Читают тему