Иногда в интернет-магазине созданном на битрикс, нужно вывести рекомендуемые или дополнительные товары в карточке товара с названиями и изображениями. Например: в описании товара "Платье розовое" нужно предложить покупательнице приобрести "Босоножки розовые" и "Сумочка розовая", то есть прямо в карточке товара смотивировать дальнейшую покупку. Давайте сделаем это через свойство "Привязка к элементам в виде списка"- таким образом контент-менеджер сможет вручную присваивать товарам рекомендуемые товары
Создание свойства в инфоблоке каталог
Начнем с создания свойства "привязка к элементам в виде списка". Для этого идем в настройки нужного инфоблока и заполняем как на нижеприведенной картинке: Название свойства- "Рекомендуемые товары", тип-"Привязка к элементам в виде списка", ставим чекбоксы- "Акт." и "Множ.", и Тип "ATT_SVYAZKA". Сортировку можно оставить по умолчанию 500, в моем примере нужно было чтобы свойство было в самом низу редактора элемента
Далее идем в настройки этого свойства и указываем тип и инфоблок элементы которого будут доступны для связывания. В моем случае нужно было привязывать элементы того же самого инфоблока.
Настройка компонента
Идем в публичную часть сайта, в раздел где выведен компонент каталога, проходим в его настройки (например двойным кликом в режиме правки) прокручиваем колесико до секции "Настройки детального просмотра" и в списке доступных свойств выбираем наше свеже созданное "ATT_SVYAZKA" и сохраняемся.
Выводим свойство в шаблоне компонента
Идем в редактирование шаблона компонента каталог- детальный просмотр элемента и вставляем в нужное место- где планируется выводить связанные товары- вот такой код. Допускаю, что он не очень аккуратен, однако вы всегда можете его "окультурить" самостоятельно
<? if($pid =="ATT_SVYZKA"): ?>
<?if(is_array($arProperty["DISPLAY_VALUE"])):?>
<?
$st = 2;
echo '<table cellspacing=5 cellpadding=2 border=0>';
for ($i = 0; $i < ceil(count($arProperty["VALUE"])/$st); $i++) {
echo '<tr>';
for ($j = 0; $j < $st; $j++) {
if (isset($arProperty["VALUE"][(($i*$st)+$j)])) {
$ar_res = CCatalogProduct::GetByIDEx($arProperty["VALUE"][(($i*$st)+$j)]);
echo '<td align=center><p>'.$arProperty["DISPLAY_VALUE"][(($i*$st)+$j)].'</p><br />'; //название
$picture = CFile::ShowImage($ar_res['PREVIEW_PICTURE'], 200, 200, "border=0", "", true); //картинка
echo $picture;
echo '</td>';
} else {
echo '<td> </td>';
}
}
echo '</tr>';
}
echo '</table>';
?>
<?endif?>
<?endif?>
<?endforeach?>
В общем то все готово осталось привязать элементы к конкретному товару и посмотреть как это сработало.
Привязываем товары к....товару
Идем в редактирование любого товара нашего инфоблока. Находим свойство "Рекомендуемые товары" и в выпадающих списках, где отобразятся все доступные для связывания товары, выбираем пару тройку товаров:
Сохраняемся и смотрим что получилось. Лично у меня вот так вывелись связанные элементы на одном из разрабатываемых на битрикс интернет-магазине одежды
Успехов