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

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

Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элементы внутри карточки товара.
Данный блок, может называться как угодно и преследовать различные маркетинговые цели. Например, для блоков: Рекомендуем посмотреть, Аналоги, похожие товары итд.
 
Спасибо за то что делитель опытом. Хотелось бы понимать как можно сортировать элементы согласно иерархии выставленной в поле "привязка к элементам с автозаполнением" Конечно можно и через свойство сортировки попробовать унифицировать сортировку ( в моем случае это возможно) но может есть еще решение?
 
А что делать в ситуации, есть элемент, являющийся серией (например, гостиная) и в нее входят элементы, у которых указано свойство, что-то типа "Входит в комплект", равное символьному коду элемента, который является серией.

И в карточке серии нужно вывести все элементы, свойство которых равно символьному коду серии.

Туплю, похоже, но не могу понять, как это сделать.

Подскажите, если не сложно. :-)
 
Можно добавить в component_epilog.php
Код
$GLOBALS['arrFilter'] = array("PROPERTY_VHODIT_V_KOMPLEKT_VALUE"=> $arResult['ID']);

И вывести catalog.section с этим фильтром
Код
"USE_FILTER" => "Y",
"FILTER_NAME" => "arrFilter",


А, не дочитал. Связка по символьному коду, тогда:
Код
$GLOBALS['arrFilter'] = array("PROPERTY_VHODIT_V_KOMPLEKT_VALUE"=> $arResult['CODE']);
Изменено: Михаил Базаров - 28.04.2020 09:37:47
 
Не работает у меня! Выводит все товары а не указанные!
 
Здравствуйте, инструкция -просто огонь. именно то, что надо. у меня несколько вопросов по описанному способу:
1. если несколько полей и соответственно, блоков связанных товаров, то нужно эту операцию проделывать для каждого блока? или как-то их объединить?
2. у меня все равно вывалились все товары, а если ставить условие Если не пустая переменная, то пустое выдаётся. бьюсь второй день.
 
Цитата
Елена написал:
Здравствуйте, инструкция -просто огонь. именно то, что надо. у меня несколько вопросов по описанному способу:
1. если несколько полей и соответственно, блоков связанных товаров, то нужно эту операцию проделывать для каждого блока? или как-то их объединить?
2. у меня все равно вывалились все товары, а если ставить условие Если не пустая переменная, то пустое выдаётся. бьюсь второй день.

Немного улучшил заметку.
Проверьте, если вообще что-нибудь в массиве для фильтра.
Код
print_r($arrayLinks);
 
все-таки пришло время добить эту задачу на проекте. и в списке по проверке print_r($arrayLinks); не выводится ничего, в то же время при запросе

<?foreach($arResult["PROPERTIES"]["ANALOG"]["VALUE"] as $analog):?>
<?$res = CIBlockElement::GetByID($analog);?>
<?if($ar_res = $res->GetNext())?>
<li><b><a href='<?=$ar_res["DETAIL_PAGE_URL"];?>'><?=$ar_res["NAME"];?></a></b></li>
<?endforeach;?>

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

я уже всякое попробовала. даже переименовала свойство в исходное как в примере - не работает. может быть, не в компонент эпилог это надо ставить? в общем, я грущу. у кого-то все товары выводит, у меня - вообще ни одного. хз как так.  
 
Цитата
Елена написал:
я уже всякое попробовала. даже переименовала свойство в исходное как в примере - не работает. может быть, не в компонент эпилог это надо ставить? в общем, я грущу. у кого-то все товары выводит, у меня - вообще ни одного. хз как так.  


Скиньте прямо сюда весь шаблон, посмотрю - может быть увижу что-то.
Буквально вчера этим же способом воспользовался, все работает.
 
хочу загрузить, но и на архив zip, и на php пишут мне - неверный тип файла. и txt не грузится. отправила на почту)  
 
Добрый день. Подскажите, где находится шаблон вывода. Все связанные элементы отображаются в одну колонку
 
Цитата
Гость написал: Добрый день. Подскажите, где находится шаблон вывода. Все связанные элементы отображаются в одну колонку

Просто используете любой из своих шаблонов или создайте новый на основе встроенных.
 
Все работает, спасибо, только не понял почему мы весь код пишем в component_epilog.php, ведь тогда этот блок выведется в конце сайта, а мне надо было где-то по середине. Поэтому весь код вставил в template.php детальной страницы.
Делал на компоненте news.detail, работает)))
 
И в самом конце проверка
if (count($arrayLinks) > 0) {
... Фильтр и catalog.section...
}
У меня почему-то если нет связанных товаров, в массиве одно значение:
array(1) { [0]=> NULL }

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

Код
if (count($arrayLinks) > 1) {
... Фильтр и catalog.section...
}
 
Здравствуйте! Вот страница https://mypricep.ru/novaya-stranitsa.php на которой пытаюсь вывести сопутствующие товары. Массив с ID сопутсвующих товаров выводит Array ( [0] => 3163 [1] => 3164 [2] => 3165 [3] => 3166 [4] => 3167 [5] => 3168 [6] => 3136 [7] => 3148 [8] => 3149 [9] => 3150 [10] => 3151 [11] => 3152 [12] => 3153 [13] => 3154 [14] => 3155 [15] => 3156 [16] => 3157 [17] => 3158 [18] => 3159 [19] => 3160 [20] => 3161 [21] => 3140 [22] => 3162 ), но фильтр к компоненту section не применяется. В чем может быть проблема?
 
Цитата
Гость написал:
Здравствуйте! Вот страница https://mypricep.ru/novaya-stranitsa.php на которой пытаюсь вывести сопутствующие товары. Массив с ID сопутсвующих товаров выводит

Array ( [0] => 3163 [1] => 3164 [2] => 3165 [3] => 3166 [4] => 3167 [5] => 3168 [6] => 3136 [7] => 3148 [8] => 3149 [9] => 3150 [10] => 3151 [11] => 3152 [12] => 3153 [13] => 3154 [14] => 3155 [15] => 3156 [16] => 3157 [17] => 3158 [18] => 3159 [19] => 3160 [20] => 3161 [21] => 3140 [22] => 3162 ), но фильтр к компоненту section не применяется. В чем может быть проблема?                
На странице вывел компонент таким образом.
Код
<?
$GLOBALS['arrFilterLinked'] = array('=ID' => $arrayLinks);
$APPLICATION->IncludeComponent(
   "bitrix:catalog.section", 
   ".default", 
   array(
      "COMPONENT_TEMPLATE" => ".default",
      "IBLOCK_TYPE" => "catalog",
      "IBLOCK_ID" => "5",
      "SECTION_ID" => $_REQUEST["SECTION_ID"],
      "SECTION_CODE" => "",
      "SECTION_USER_FIELDS" => array(
         0 => "",
         1 => "",
      ),
      "FILTER_NAME" => "arrFilterLinked",
      "INCLUDE_SUBSECTIONS" => "A",
      "SHOW_ALL_WO_SECTION" => "N",
      "CUSTOM_FILTER" => "{\"CLASS_ID\":\"CondGroup\",\"DATA\":{\"All\":\"AND\",\"True\":\"True\"},\"CHILDREN\":[]}",
      "HIDE_NOT_AVAILABLE" => "N",
      "HIDE_NOT_AVAILABLE_OFFERS" => "N",
      "ELEMENT_SORT_FIELD" => "sort",
      "ELEMENT_SORT_ORDER" => "asc",
      "ELEMENT_SORT_FIELD2" => "id",
      "ELEMENT_SORT_ORDER2" => "desc",
      "OFFERS_SORT_FIELD" => "sort",
      "OFFERS_SORT_ORDER" => "asc",
      "OFFERS_SORT_FIELD2" => "id",
      "OFFERS_SORT_ORDER2" => "desc",
      "PAGE_ELEMENT_COUNT" => "18",
      "LINE_ELEMENT_COUNT" => "3",
      "PROPERTY_CODE" => array(
         0 => "",
         1 => "",
      ),
      "PROPERTY_CODE_MOBILE" => array(
      ),
      "OFFERS_FIELD_CODE" => array(
         0 => "",
         1 => "",
      ),
      "OFFERS_PROPERTY_CODE" => array(
         0 => "",
         1 => "",
      ),
      "BACKGROUND_IMAGE" => "-",
      "TEMPLATE_THEME" => "blue",
      "PRODUCT_ROW_VARIANTS" => "[{&#39;VARIANT&#39;:&#39;2&#39;,&#39;BIG_DATA&#39;:false},{&#39;VARIANT&#39;:&#39;2&#39;,&#39;BIG_DATA&#39;:false},{&#39;VARIANT&#39;:&#39;2&#39;,&#39;BIG_DATA&#39;:false},{&#39;VARIANT&#39;:&#39;2&#39;,&#39;BIG_DATA&#39;:false},{&#39;VARIANT&#39;:&#39;2&#39;,&#39;BIG_DATA&#39;:false},{&#39;VARIANT&#39;:&#39;2&#39;,&#39;BIG_DATA&#39;:false}]",
      "ENLARGE_PRODUCT" => "STRICT",
      "PRODUCT_BLOCKS_ORDER" => "price,props,sku,quantityLimit,quantity,buttons",
      "SHOW_SLIDER" => "Y",
      "SLIDER_INTERVAL" => "3000",
      "SLIDER_PROGRESS" => "N",
      "PRODUCT_DISPLAY_MODE" => "N",
      "ADD_PICT_PROP" => "-",
      "LABEL_PROP" => array(
      ),
      "PRODUCT_SUBSCRIPTION" => "Y",
      "SHOW_DISCOUNT_PERCENT" => "N",
      "SHOW_OLD_PRICE" => "N",
      "SHOW_MAX_QUANTITY" => "N",
      "SHOW_CLOSE_POPUP" => "N",
      "MESS_BTN_BUY" => "Купить",
      "MESS_BTN_ADD_TO_BASKET" => "В корзину",
      "MESS_BTN_SUBSCRIBE" => "Подписаться",
      "MESS_BTN_DETAIL" => "Подробнее",
      "MESS_NOT_AVAILABLE" => "Нет в наличии",
      "MESS_NOT_AVAILABLE_SERVICE" => "Недоступно",
      "RCM_TYPE" => "personal",
      "RCM_PROD_ID" => $_REQUEST["PRODUCT_ID"],
      "SHOW_FROM_SECTION" => "N",
      "SECTION_URL" => "",
      "DETAIL_URL" => "",
      "SECTION_ID_VARIABLE" => "SECTION_ID",
      "SEF_MODE" => "N",
      "AJAX_MODE" => "N",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "AJAX_OPTION_ADDITIONAL" => "",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "36000000",
      "CACHE_GROUPS" => "Y",
      "SET_TITLE" => "Y",
      "SET_BROWSER_TITLE" => "Y",
      "BROWSER_TITLE" => "-",
      "SET_META_KEYWORDS" => "Y",
      "META_KEYWORDS" => "-",
      "SET_META_DESCRIPTION" => "Y",
      "META_DESCRIPTION" => "-",
      "SET_LAST_MODIFIED" => "N",
      "USE_MAIN_ELEMENT_SECTION" => "N",
      "ADD_SECTIONS_CHAIN" => "N",
      "CACHE_FILTER" => "N",
      "ACTION_VARIABLE" => "action",
      "PRODUCT_ID_VARIABLE" => "id",
      "PRICE_CODE" => array(
      ),
      "USE_PRICE_COUNT" => "N",
      "SHOW_PRICE_COUNT" => "1",
      "PRICE_VAT_INCLUDE" => "Y",
      "CONVERT_CURRENCY" => "N",
      "BASKET_URL" => "/personal/basket.php",
      "USE_PRODUCT_QUANTITY" => "N",
      "PRODUCT_QUANTITY_VARIABLE" => "quantity",
      "ADD_PROPERTIES_TO_BASKET" => "Y",
      "PRODUCT_PROPS_VARIABLE" => "prop",
      "PARTIAL_PRODUCT_PROPERTIES" => "N",
      "PRODUCT_PROPERTIES" => array(
      ),
      "OFFERS_CART_PROPERTIES" => array(
      ),
      "ADD_TO_BASKET_ACTION" => "ADD",
      "DISPLAY_COMPARE" => "N",
      "USE_ENHANCED_ECOMMERCE" => "N",
      "PAGER_TEMPLATE" => ".default",
      "DISPLAY_TOP_PAGER" => "N",
      "DISPLAY_BOTTOM_PAGER" => "Y",
      "PAGER_TITLE" => "Товары",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_DESC_NUMBERING" => "N",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "N",
      "PAGER_BASE_LINK_ENABLE" => "N",
      "LAZY_LOAD" => "N",
      "MESS_BTN_LAZY_LOAD" => "Показать ещё",
      "LOAD_ON_SCROLL" => "N",
      "SET_STATUS_404" => "N",
      "SHOW_404" => "N",
      "MESSAGE_404" => "",
      "COMPATIBLE_MODE" => "N",
      "DISABLE_INIT_JS_IN_COMPONENT" => "N"
   ),
   false
);?>
Изменено: Михаил Базаров - 22.09.2023 16:55:58
 
Попробовал echo '<pre>'.print_r($GLOBALS['arrFilterLinked'], true).'</pre>'; выводит пустоту. т.е id не в global не уходят.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе