Меню

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

RSS
Часть 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: заметки разработчика

Обновление цен и остатков из текстового файла, в каталоге 1C-Битрикс.

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

Установка Битрикс24 "Интернет-Магазин + CRM" на один домен и настройка работы почты.

Задача: установить лицензию "Интернет-Магазин + CRM" на один домен. Что бы crm была доступна по адресу crm...

Постраничная навигация в списке разделов Битрикс- catalog.section.list

Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно воспользоваться методами CDBR...

Заполнение множественного пользовательского свойства типа "строка" через API

Задача: когда пользователь заходит в мобильное приложение, нужно сохранить FCM токен устройства в пользовательское поле ...

Умный фильтр во всплывающей панели на мобильных.

Шаблон умного фильтра в Битриксе достаточно сложный, с точки зрения верстки и не очень красиво отображается на мобильных...

Получить список элементов инфоблока с ценами с помощью D7

Задача: использовать D7 в 1С-Битрикс для получения списка элементов инфоблока вместе с их ценами. Это может быть полезно...

Как получить свойства заказа в 1С-Битрикс: старые методы и современный API D7

Задача: Получить все доступные свойства заказа для всех активных типов плательщика из модуля магазина.

Очистка корзины в 1С-Битрикс одним нажатием

В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием. Требуется это довольно редко,...

Обновление 1С-Битрикс с PHP 7, до поддержки версии PHP 8.3

Задача: обновить устаревший сайт на платформе 1С-Битрикс, который не получал обновлений уже более 4 лет и работает на PH...