Иногда в интернет-магазине созданном на битрикс, нужно вывести рекомендуемые или дополнительные товары в карточке товара с названиями и изображениями. Например: в описании товара "Платье розовое" нужно предложить покупательнице приобрести "Босонжки розовые" и "Сумочка розовая", то есть прямо в карточке товара смотивировать дальнейшую покупку. Давайте сделаем это через свойство "Привязка к элементам в виде списка"- таким образом контент-менеджер сможет вручную присваивать товарам рекомендуемые товары
Создание свойства в инфоблоке каталог
Начнем с создания свойства "привязка к элементам в виде списка". Для этого идем в настройки нужного инфоблока и заполняем как на нижеприведенной картинке: Название свойства- "Рекомендуемые товары", тип-"Привязка к элементам в виде списка", ставим чекбоксы- "Акт." и "Множ.", и Тип "ATT_SVYAZKA". Сортировку можно оставить по умолчанию 500, в моем примере нужно было чтобы свойство было в самом низу редактора элемента
Далее идем в настройки этого свойства и указываем тип и инфоблок элементы которого будут доступны для связывания. В моем случае нужно было привязывать элементы того же самого инфоблока.
Настройка компонента
Идем в публичную часть сайта, в раздел где выведен компонент каталога, проходим в его настроки (например двойным кликом в режиме правки) прокручиваем колесико до секции "Настройки детального просмотра" и в списке доступных свойств выбираем наше свежесозданное "ATT_SVYAZKA" и сохраняемся.
Выводим свойство в шаблоне компонента
Идем в редактирование шаблона компонента каталог- детальный просмотр элемента и вставляем в нужное место- где планируется выводить связанные товары- вот такой код. Допускаю, что он не очень аккуратен, однако вы всегда можете его "окультурить" самостоятельно
В общем то все готово осталось привязать элементы к конкретному товару и посмотреть как это сработало.
Привязываем товары к....товару
Идем в редактирование любого товара нашего инфоблока. Находим свойство "Рекомендуемые товары" и в выпадающих списках, где отобразятся все доступные для связывания товары, выбираем пару тройку товаров:
Сохраняемся и смотрим что получилось. Лично у меня вот так вывелись связанные элементы на одном из разрабатываемых на битрикс интернет-магазине одежды
Вывести название, цену и картинку связанного элемента в каталоге
Небольшая модификация данного решения, которая позволит вывести еще и цену связанного элемента. С настроками свойств и товаров проделываем все тоже самое, но код вставляем вот такой (в комментариях объяснения)
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<?if($pid =="VAZE"):?>
<?
$st = 2;
for ($i = 0; $i < ceil(count($arProperty["VALUE"])/$st); $i++)
for ($j = 0; $j < $st; $j++)
{
if (isset($arProperty["VALUE"][(($i*$st)+$j)]))
{
$ar_res = CCatalogProduct::GetByIDEx($arProperty["VALUE"][(($i*$st)+$j)]);
$picture = CFile::ShowImage($ar_res['PREVIEW_PICTURE'], 200, 200, "border=0", "", true);
Так как в комментариях многие жалуются, что способ не работает в новых редакциях битрикс, записал видео по реализации. Битрикс версии 16.0.2
Видео варится
13.11.2013
После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
Михаил 13.11.2013
Цитата
Константин пишет: После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
Попробуйте поиграться с размещением этого кода. Быть может где-то нарушаете условия самого компонента.
16.11.2013
Цитата
Константин пишет: После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
Спасибо Все нормально работает!
16.11.2013
Цитата
Константин пишет: После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
<?endforeach?> Добавьте в конце !
Михаил 17.11.2013
Цитата
Гость сайта пишет:
Цитата
Константин пишет: После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
<?endforeach?> Добавьте в конце !
Да, точно не хватает. Спасибо за наблюдение, поправил в тексте. Видимо спешил когда писал
17.11.2013
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Цитата
Константин пишет: После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
<?endforeach?> Добавьте в конце !
Да, точно не хватает. Спасибо за наблюдение, поправил в тексте. Видимо спешил когда писал
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Цитата
Константин пишет: После вставки кода на детальной стр все проподает возможно какието несовместимасти с кодом на моей стр=(
<?endforeach?> Добавьте в конце !
Да, точно не хватает. Спасибо за наблюдение, поправил в тексте. Видимо спешил когда писал
И еще кое что замените вот <? if($pid == ’ATT_SVYZKA’): ?> на <? if($pid == "ATT_SVYZKA " ): ?> То-есть кавычки не ' a "
17.11.2013
А как картинке присвоить url
20.11.2013
А если не в детальном просмотре, а в списке товаров выводить миниатюрой? Для ювелирного сайта было бы удобнее сразу в списке товаров видеть, что например у кольца есть комплект из серег.
Михаил 20.11.2013
Цитата
Гость сайта пишет: А если не в детальном просмотре, а в списке товаров выводить миниатюрой? Для ювелирного сайта было бы удобнее сразу в списке товаров видеть, что например у кольца есть комплект из серег.
Недавно презентовали версию Битрикс 14- рассказывали как раз о таких комплектах. Вроде бы как без особых лишних телодвижений можно реализовать такой вот функционал. Правда, пока не смотрел что это за зверь. Чуть позже если подвернется подобное реализовывать- напишу записку.
23.11.2013
Два дня мучаюсь, выводит ошибку: Fatal error: Class 'CCatalogProduct' not found in
Михаил 05.12.2013
Цитата
Дмитрий пишет: Два дня мучаюсь, выводит ошибку: Fatal error: Class 'CCatalogProduct' not found in
Нужно понимать вашу задачу и что делается для ее реализации. Так тяжело подсказать
11.12.2013
Здравствуйте, Михаил! Почему когда привязываю товар он виден из товаров к которому привязал, а из самого элемента не виден? Так реализовано, или можно переключить? Спасибо
Михаил 12.12.2013
Цитата
гость пишет: Здравствуйте, Михаил! Почему когда привязываю товар он виден из товаров к которому привязал, а из самого элемента не виден? Так реализовано, или можно переключить? Спасибо
Попробуйте в настройках компонента каталог, указать связанный с ним инфоблок. Так конечно тяжело что-то сказать, нужно видеть что у вас там.
05.05.2014
Добрый вечер, а можно ли вывести сопутствующие товары из разных инфоблоков? ТП битрикс на вопрос ответит не может, по стандартной схеме - не выводится.
Михаил 06.05.2014
Цитата
Виктория пишет: Добрый вечер, а можно ли вывести сопутствующие товары из разных инфоблоков? ТП битрикс на вопрос ответит не может, по стандартной схеме - не выводится.
По стандартной и не получится, нужно кастомизировать шаблон и делать привязку в элементам, указав нужные инфоблоки для связки.
27.05.2014
у меня почему то ничего не выводит(((
без картинок (то, что в стандартном компоненте) работает. а этот не работает. совсем. компонент его как буд-то бы не видит
24.07.2014
А если связанных товаров 90 штук по каждому элементу? Как быть?
Михаил 24.07.2014
Цитата
Гость сайта пишет: А если связанных товаров 90 штук по каждому элементу? Как быть?
Зачем так много? То есть я даже не могу представить магазин у которого такой бардак в карточке- зачем он нужен?
Посмотрите как это реализовано в типовом магазине битрикс. Просто привяжите к одному товару несколько других. Там все будет. И купить и количество И так далее
15.09.2014
Михаил, данный код работает в редакции где есть модуль "магазин", у меня на старте хочу вывести связанные элементы. Выдает ошибку Class 'CCatalogProduct' not found in ....
08.01.2015
Михаил, доброго времени. Спасибо Вам за данный пример - очень помог! Если не затруднит, помогите вывести ещё и цену для связанного элемента, а также установить url на картинку (для перехода к элементу).
04.03.2015
Подскажите, а как привязать число отвечающее за сортировку к ссылке с другой страницы на сайте. То есть нужно чтобы ссылка "здесь" переносила меня на середину другой страницы, где начинаются новостные элементы с сортировкой допустим 1000?
Евгений 22.05.2016
Версия битрикс 16 не работает этот код вообще ничего не выводит.
Михаил 22.05.2016
Цитата
Евгений Макаров пишет: Версия битрикс 16 не работает этот код вообще ничего не выводит.
Если в свойстве два и более элементов, то всё выводится нормально. Но если в свойстве только один элемент, то цикл for (первый) не проводит ни одной итерации.
Пытаюсь настроить вывод модификаций товара, отличающихся по 2ум свойствам. Полагаю, проблема в условии выхода из цикла, но не могу понять, как её исправить.
08.09.2016
Цитата
Александр пишет: Столкнулся с непонятной проблемой.
Если в свойстве два и более элементов, то всё выводится нормально. Но если в свойстве только один элемент, то цикл for (первый) не проводит ни одной итерации.
Пытаюсь настроить вывод модификаций товара, отличающихся по 2ум свойствам. Полагаю, проблема в условии выхода из цикла, но не могу понять, как её исправить.
Поправка. <?if(is_array($arProperty["DISPLAY_VALUE"])):?> выходит false
Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные
видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться.
Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого
функционала- в рамках разработки сайтов на 1С-Битрикс