Меню

Часть 16: Вывод топов товаров на главную страницы, с фильтрацией по свойству

Часть 16: Вывод топов товаров на главную страницы, с фильтрацией по свойству

Выводим отфильтрованные товары на главную страницу сайта, через компонент "Топ элементов"
Михаил, спасибо за отличные уроки! Они реально на уровне. Просмотрев все Ваши видео не нашел как выводить отдельно товары с скидками.
Можете подсказать как реализовать раздел "Распродажа" где будут выводиться все товары у которых есть скидка.
Пробовал следующий вариант, но ничего не получилось. Выводит только весь товар, а фильтр не применяется.


Код
<div class="h2">Акции</div>    
<?   $dbProductDiscounts = CCatalogDiscount::GetList(     
   array("SORT" => "ASC"),     
   array("ACTIVE" => "Y"),    
    false,    
    false,    
    array("ID", "PRODUCT_ID")    );    
   while ($arProductDiscounts = $dbProductDiscounts->Fetch()) { 
      $akcii_arr[] = $arProductDiscounts["PRODUCT_ID"];    
   }    
   foreach($akcii_arr as $ID) { 
       $akcii_arr_[] = $ID;   }    
   $GLOBALS['arrFilterAkcii'] = array("ID"=>$akcii_arr_);    
?>    
<?$APPLICATION->IncludeComponent("bitrix:catalog.top", "hit_on_main", 
    Array(    
   "COMPONENT_TEMPLATE" => ".default",       
   "IBLOCK_TYPE" => "1c_catalog",   // Тип инфоблока       
   "IBLOCK_ID" => "12",   // Инфоблок       
   "ELEMENT_SORT_FIELD" => "sort",   // По какому полю сортируем элементы       
   "ELEMENT_SORT_ORDER" => "asc",   // Порядок сортировки элементов       
   "ELEMENT_SORT_FIELD2" => "id",   // Поле для второй сортировки элементов       
   "ELEMENT_SORT_ORDER2" => "desc",   // Порядок второй сортировки элементов       
   "FILTER_NAME" => "arrFilterAkcii",   // Имя массива со значениями фильтра для фильтрации элементов       
"HIDE_NOT_AVAILABLE" => "Y",   // Товары, которых нет на складах       
"ELEMENT_COUNT" => "10",   // Количество выводимых элементов       
"LINE_ELEMENT_COUNT" => "1",   // Количество элементов выводимых в одной строке таблицы       
"PROPERTY_CODE" => array(   // Свойства          
   0 => "",          
   1 => "",      ),       
"OFFERS_FIELD_CODE" => array(   // Поля предложений          
   0 => "",          
   1 => "",      ),       
"OFFERS_PROPERTY_CODE" => array(   // Свойства предложений          
   0 => "",          
1 => "",      ),       
"OFFERS_SORT_FIELD" => "sort",   // По какому полю сортируем предложения товара       
"OFFERS_SORT_ORDER" => "asc",   // Порядок сортировки предложений товара       
"OFFERS_SORT_FIELD2" => "id",   // Поле для второй сортировки предложений товара       
"OFFERS_SORT_ORDER2" => "desc",   // Порядок второй сортировки предложений товара       
"OFFERS_LIMIT" => "5",   // Максимальное количество предложений для показа (0 - все)       
"VIEW_MODE" => "SECTION",   // Показ элементов       
"TEMPLATE_THEME" => "blue",   // Цветовая тема       
"PRODUCT_DISPLAY_MODE" => "N",   // Схема отображения       
"ADD_PICT_PROP" => "-",   // Дополнительная картинка основного товара       
"LABEL_PROP" => "-",   // Свойство меток товара       
"SHOW_DISCOUNT_PERCENT" => "N",   // Показывать процент скидки       
"SHOW_OLD_PRICE" => "N",   // Показывать старую цену       
"SHOW_CLOSE_POPUP" => "N",   // Показывать кнопку продолжения покупок во всплывающих окнах       
"MESS_BTN_BUY" => "Купить",   // Текст кнопки "Купить"       
"MESS_BTN_ADD_TO_BASKET" => "В корзину",   // Текст кнопки "Добавить в корзину"       
"MESS_BTN_COMPARE" => "Сравнить",   // Текст кнопки "Сравнить"       
"MESS_BTN_DETAIL" => "Подробнее",   // Текст кнопки "Подробнее"       
"MESS_NOT_AVAILABLE" => "Нет в наличии",   // Сообщение об отсутствии товара       
"SECTION_URL" => "",   // URL, ведущий на страницу с содержимым раздела       
"DETAIL_URL" => "",   // URL, ведущий на страницу с содержимым элемента раздела       
"SECTION_ID_VARIABLE" => "SECTION_ID",   // Название переменной, в которой передается код группы       
"PRODUCT_QUANTITY_VARIABLE" => "",   // Название переменной, в которой передается количество товара       
"SEF_MODE" => "N",   // Включить поддержку ЧПУ       
"SEF_RULE" => "",   // Правило для обработки       
"CACHE_TYPE" => "N",   // Тип кеширования       
"CACHE_TIME" => "36000000",   // Время кеширования (сек.)       
"CACHE_GROUPS" => "Y",   // Учитывать права доступа       
"CACHE_FILTER" => "N",   // Кешировать при установленном фильтре       
"ACTION_VARIABLE" => "action",   // Название переменной, в которой передается действие       
"PRODUCT_ID_VARIABLE" => "id",   // Название переменной, в которой передается код товара для покупки       
"PRICE_CODE" => array(   // Тип цены          
0 => "BASE",      ),       
"USE_PRICE_COUNT" => "N",   // Использовать вывод цен с диапазонами       
"SHOW_PRICE_COUNT" => "1",   // Выводить цены для количества       
"PRICE_VAT_INCLUDE" => "Y",   // Включать НДС в цену       
"CONVERT_CURRENCY" => "N",   // Показывать цены в одной валюте       
"BASKET_URL" => "/personal/basket.php",   // URL, ведущий на страницу с корзиной покупателя       
"USE_PRODUCT_QUANTITY" => "N",   // Разрешить указание количества товара       
"ADD_PROPERTIES_TO_BASKET" => "Y",   // Добавлять в корзину свойства товаров и предложений       
"PRODUCT_PROPS_VARIABLE" => "prop",   // Название переменной, в которой передаются характеристики товара    
   "PARTIAL_PRODUCT_PROPERTIES" => "N",   // Разрешить добавлять в корзину товары, у которых заполнены не все характеристики       
"PRODUCT_PROPERTIES" => "",   // Характеристики товара       
"OFFERS_CART_PROPERTIES" => "",   // Свойства предложений, добавляемые в корзину       
"ADD_TO_BASKET_ACTION" => "ADD",   // Показывать кнопку добавления в корзину или покупки       
"DISPLAY_COMPARE" => "N",   // Разрешить сравнение товаров       
"ROTATE_TIMER" => "30"   ),    
false);?> 
Может Вы как-то по другому реализуете данную задачу.  Подскажите плиз)
Цитата
Евгений написал:
Михаил, спасибо за отличные уроки! Они реально на уровне. Просмотрев все Ваши видео не нашел как выводить отдельно товары с скидками.
Можете подсказать как реализовать раздел "Распродажа" где будут выводиться все товары у которых есть скидка.
Пробовал следующий вариант, но ничего не получилось. Выводит только весь товар, а фильтр не применяется.
Код
 <div class="h2">Акции</div>    
<?   $dbProductDiscounts = CCatalogDiscount::GetList(     
   
?>    
<?$APPLICATION->IncludeComponent("bitrix:catalog.top", "hit_on_main", 
    Array(    
  
"ROTATE_TIMER" => "30"   ),    
false);?>  
Может Вы как-то по другому реализуете данную задачу.  Подскажите плиз)

Как правило, из 1С передается (очень давно не делал сайты без 1С) свойства "Скидка"
Это просто число, можно и строкой передавать, но число удобнее. Можно, например, использовать в умном фильтре с ползунками От-До
И навесить бирку с величиной скидки

В нужном месте сайта вызываю catalog.section и навешиваю фильтр, который просто проверяет свойство "Скидка" на пустоту (отфильтрует не пустые)
Пример тут http://copy.baby-shoes.su/sales/
Код
<?
$GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', '!PROPERTY_DISCOUNTS' => false);
?>
<? $APPLICATION->IncludeComponent(
.....
"FILTER_NAME" => "arrFilter",
.....
?>


Михаил, спасибо за ответ.
Михаил,добрый день. попробовал реализовать таб меню,вроде получилось, но при переключении табов предыдущие вкладки не пропадают( шаблон компонента не трогал )
вот код :            подскажите что я мог упустить? как прописать условие,чтобы при переключении не происходило выпадания предыдущей вкладки?
Скрытый текст
Тут, вам, скорее- нужно смотреть свою верстку и скрипты. Что-то с чем-то конфликтует
Здравствуйте, подскажите возможно ли вывести "топ товаров" в детальной карте товара по аналогичному значению заполненного свойства???
к примеру зашли мы в карточку товара "Телевизор" у него есть свойство "Модель - ИЗОГНУТЫЙ"
и тут же вывести топ телевизоров со свойством "Модель - ИЗОГНУТЫЙ"
Цитата
Артур написал:
Здравствуйте, подскажите возможно ли вывести "топ товаров" в детальной карте товара по аналогичному значению заполненного свойства???
к примеру зашли мы в карточку товара "Телевизор" у него есть свойство "Модель - ИЗОГНУТЫЙ"
и тут же вывести топ телевизоров со свойством "Модель - ИЗОГНУТЫЙ"
Да, в настройках топа задайте правило сотритровки, с выбором "другое" property_ВАШЕ_СВОЙСТВО
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки
 

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

Массово: применить наценку ко всем товарам каталога с пересчетом от базовой.

Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все товары каталога. Устанавливать буд...

Связанные элементы в карточке товара, с помощью catalog.section

Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элементы внутри карточки товара. Д...

Вывести разделы инфоблока в которых находится элемент Битрикс

Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это у...

Базовая защита "Битрикс виртуальная машина" от DDoS атак.

Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, когда ваш сервер на CentOS под...

Дать пользователю возможность быстро отредактировать материал

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

Помечаем новинки лейблом в каталоге битрикс

Достаточно часто, при разработке каталога товаров или интернет магазина на системе управления Битрикс, встает задача как...

Изменить размер картинок по ID файла, в 1C-Битрикс

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

Кастомизация поля input type file, свой внешний вид

Задача: Поле input type="file" предоставляет возможность загрузки файлов на веб-странице. Однако стандартный в...

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...