Меню

Часть 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С

Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей, нужно увидеть xml файл с зака...

Заполнить инфоблок брендов из свойства инфоблока с товарами

Задача: в интернет-магазине есть инфоблок с товарами, загружаемый из 1С, у которого заполнено свойство "Производите...

Отключить поиск по описаниям товаров в Битрикс

Иногда, нужно отключить поиск по описаниям анонсов и детальному описанию товаров, при разработке сайтов на Битрикс. Сдел...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Вывести все товары, с постраничной навигацией, из всех разделов инфоблока

По сути, эта заметка, небольшой лайфхак. Достаточно часто нужно, в корне каталога, в ТОП-е товаров вывести все товары вс...

Установить цену товара из свойства инфоблока

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

Подключение SSL на Битрикс виртуальная машина

С первого января 2017 года, наличие безопасного соединения HTTPS становится практически обязательным. Ваши сайты будут з...

Получить и вывести все цены товара в 1С-Битрикс

Задача: получить и вывести все цены товара по его ID в каталоге 1С-Битрикс (например, в детальной карточке catalog.e...

Малая корзина Битрикс, упрощенный шаблон

Шаблон малой корзины битрикс, который можно вывести в боковом разделе шаблона или в шапке интернет-магазина. Код окульту...