Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Вывести товары из того же раздела в карточке товара

Просмотров: 18867

Немножко топорный, но все же вполне действенный способ по выводу внутри подробной карточки товара, элементов того же раздела в котором находится сам товар. Может пригодиться для показа блоков "Похожие товары" или "Товары этого бренда", чисто в рекламных целях.

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

  • При создании магазина одежды вывести в карточке блок "Другие юбки (штаны, майки и.т.д)"
  • В магазине бытовой техники вывести товары того же бренда или той же направленности
  • С точки зрения юзабилити и продаж, показать клиентам, пришедшим из поиска сразу в карточку товара, другие товары своего магазина
  • С точки зрения СЕО - это достаточно быстрый способ перелинковать страницы товаров

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

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

Выводим в любом месте сайта компонент "Элементы раздела", полностью его настраиваем, верстаем или применяем нужный шаблон и настраиваем на вывод товаров любого раздела нашего каталога. К тому же не забываем настроить ЧПУ таким же образом, как это сделано в основном каталоге.

Далее забираем весь вывод компонента с помощью просмотра исходного кода:

Переходим в шаблон нашего каталога к файлу, который содержит в себе вывод детальной карточки товара по пути


	 /bitrix/templates/ШАБЛОН_САЙТА/components/bitrix/catalog/ШАБЛОН_КАТАЛОГА/element.php

И вставляем скопированный код компонента "Элементы раздела" в самый низ этого файла. После этого все заработает. Убедитесь пройдя в карточку любого товара. Единственное что нам осталось - передать символьный код текущего для товара раздела в этот компонент. Иначе во всех товарах будет одно и тоже.

Можно скопировать catalog.section прямо из комплекcного шаблона, из файла section.php тогда не придется настраивать вывод в ручную, все настройки вывода (инфоблок, внешний вид, цены итд) подтянутся из настроек каталога.

Находим две строчки:


	 "SECTION_ID" => "",
	 "SECTION_CODE" => "",

В них то и передаем либо ID либо CODE текущего раздела


	 //передаст символьный код
	 "SECTION_ID" => "",
	 "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],

	 //передаст ID 
"SECTION_ID" => "$arResult["VARIABLES"]["SECTION_ID"]", "SECTION_CODE" => "",

Используйте что-то одно, второй должен остаться пустым. Само собой, если у ваших разделов нет SECTION_CODE, то использовать можно только SECTION_ID

Antik 03.11.2017
Цитата
mtsub написал:
у меня товары не выводятся - 404 ошибка, переиндексацию делать. кеш сбрасывал.
у вас директории такой нет, catalog это физическая директория комплексного компонента, а не просто виртуальный путь
Михаил Базаров 03.11.2017
Цитата
mtsub написал:
как сделать адреса разделов: site.ru/catalog/#SECTION_CODE#/
а карточек товаров: site.ru/product/#ELEMENT_CODE#/ - без "catalog"
Просто в ЧПУ так и вставить, нужные url и в настройках инфоблока не забыть сделать так же
mtsub 13.11.2017
Цитата
Михаил Базаров пишет:
Цитата
mtsub написал:
как сделать адреса разделов: site.ru/catalog/#SECTION_CODE#/
а карточек товаров: site.ru/product/#ELEMENT_CODE#/ - без "catalog"
Просто в ЧПУ так и вставить, нужные url и в настройках инфоблока не забыть сделать так же
уточнение в карточке вместо catalog нужен product - просто в настройках это не решается, попробуйте сами.
mtsub 13.11.2017
а в разделах - как обычно catalog должен остаться
Михаил Базаров 14.11.2017
Цитата
mtsub написал:
Цитата
Михаил Базаров  пишет:
Цитата
mtsub написал:
как сделать адреса разделов: site.ru/catalog/#SECTION_CODE#/
а карточек товаров: site.ru/product/#ELEMENT_CODE#/ - без "catalog"
Просто в ЧПУ так и вставить, нужные url и в настройках инфоблока не забыть сделать так же
уточнение в карточке вместо catalog нужен product - просто в настройках это не решается, попробуйте сами.
Вам надо создать его физически
В /catalog/ вывод не всего компонента catalog а только catalog.section (главное правилььно на строить)
А вот в /element/ можно весь catalog
Но, важно: что бы не было дубликатов страниц (для поисковиков) в section.php каталога лучше все удалить или сделать редирект в раздел /catalog/

PS: Пояснил достаточно кратко, там много нюансов в плане СЕО- при таком подходе. Делайте внимательно и вдумчиво
s.rudko@100systems.com Rudko 02.04.2021
Здравствуйте. Первое, что хочу написать, спасибо вам за то, что вы делаете - это очень круто.

Мне нужно помощь с выводом товара в карточке товара того же раздела.
Добавил в component_epilog.php нужный компонент, в строке SECTION_CODE прописал, но все равно выводится весь товар.
Код
 "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
Н
Михаил Базаров 03.04.2021
Цитата
s.rudko@100systems.com Rudko пишет:
Здравствуйте. Первое, что хочу написать, спасибо вам за то, что вы делаете - это очень круто.

Мне нужно помощь с выводом товара в карточке товара того же раздела.
Добавил в component_epilog.php нужный компонент, в строке SECTION_CODE прописал, но все равно выводится весь товар. [CODE]  "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
Н
[/CODE]
В component_epilig Этот параметр не передается, попробуйте

$arResult["SECTION_CODE"]
s.rudko@100systems.com Rudko 08.04.2021
Проделал то, что вы написали.
Я в программировании полный профан. Поэтому ничего и не выходит.
Я не могу понять, если в component_epilog.php не передается этот параметр
Цитата
"SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
то куда или откуда он передается?)
Если у вас будет возможность помочь, то я был бы очень благодарен.
Код
echo "<h3>Популярные товары</h3>";
$APPLICATION->IncludeComponent(
   "bitrix:catalog.section",
   "catalog.tile.4",
   Array(
      "ACTION" => "buy",
      "ACTION_VARIABLE" => "action",
      "ADD_PICT_PROP" => "-",
      "ADD_PROPERTIES_TO_BASKET" => "Y",
      "ADD_SECTIONS_CHAIN" => "N",
      "ADD_TO_BASKET_ACTION" => "ADD",
      "AJAX_MODE" => "N",
      "AJAX_OPTION_ADDITIONAL" => "",
      "AJAX_OPTION_HISTORY" => "N",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "ARTICLE_SHOW" => "Y",
      "BACKGROUND_IMAGE" => "-",
      "BASKET_URL" => "/personal/basket.php",
      "BORDERS" => "Y",
      "BORDERS_STYLE" => "squared",
      "BROWSER_TITLE" => "-",
      "CACHE_FILTER" => "N",
      "CACHE_GROUPS" => "Y",
      "CACHE_TIME" => "36000000",
      "CACHE_TYPE" => "A",
      "COLUMNS" => "4",
      "COLUMNS_MOBILE" => "2",
      "COMPARE_PATH" => "/catalog/compare.php",
      "COMPATIBLE_MODE" => "Y",
      "COMPOSITE_FRAME_MODE" => "A",
      "COMPOSITE_FRAME_TYPE" => "AUTO",
      "CONSENT_URL" => "",
      "CONVERT_CURRENCY" => "N",
      "COUNTER_SHOW" => "N",
      "CUSTOM_FILTER" => "{\"CLASS_ID\":\"CondGroup\",\"DATA\":{\"All\":\"OR\",\"True\":\"True\"},\"CHILDREN\":[]}",
      "DELAY_USE" => "Y",
      "DESCRIPTION_SHOW" => "N",
      "DETAIL_URL" => "/catalog/#SECTION_CODE#/#ELEMENT_CODE#/",
      "DISABLE_INIT_JS_IN_COMPONENT" => "N",
      "DISPLAY_BOTTOM_PAGER" => "N",
      "DISPLAY_COMPARE" => "Y",
      "DISPLAY_TOP_PAGER" => "N",
      "ELEMENT_SORT_FIELD" => "timestamp_x",
      "ELEMENT_SORT_FIELD2" => "shows",
      "ELEMENT_SORT_ORDER" => "desc",
      "ELEMENT_SORT_ORDER2" => "desc",
      "ENLARGE_PRODUCT" => "STRICT",
      "FILTER_NAME" => "",
      "FORM_ID" => "",
      "FORM_TEMPLATE" => "",
      "HIDE_NOT_AVAILABLE" => "Y",
      "HIDE_NOT_AVAILABLE_OFFERS" => "Y",
      "IBLOCK_ID" => "61",
      "IBLOCK_TYPE" => "1c_catalog",
      "IMAGE_ASPECT_RATIO" => "1:1",
      "IMAGE_SLIDER_SHOW" => "N",
      "INCLUDE_SUBSECTIONS" => "A",
      "LABEL_PROP" => array(),
      "LAZYLOAD_USE" => "N",
      "LAZY_LOAD" => "Y",
      "LINE_ELEMENT_COUNT" => "4",
      "LOAD_ON_SCROLL" => "N",
      "MARKS_ORIENTATION" => "horizontal",
      "MARKS_SHOW" => "Y",
      "MEASURE_SHOW" => "Y",
      "MESSAGE_404" => "",
      "MESS_BTN_ADD_TO_BASKET" => "В корзину",
      "MESS_BTN_BUY" => "Купить",
      "MESS_BTN_DETAIL" => "Подробнее",
      "MESS_BTN_SUBSCRIBE" => "Подписаться",
      "MESS_NOT_AVAILABLE" => "Нет в наличии",
      "META_DESCRIPTION" => "-",
      "META_KEYWORDS" => "-",
      "NAME_ALIGN" => "left",
      "NAME_POSITION" => "middle",
      "OFFERS_FIELD_CODE" => array("",""),
      "OFFERS_LIMIT" => "60",
      "OFFERS_PROPERTY_ARTICLE" => "CML2_ARTICLE",
      "OFFERS_PROPERTY_PICTURES" => "FILES",
      "OFFERS_PROPERTY_STORES_SHOW" => "",
      "OFFERS_SORT_FIELD" => "timestamp_x",
      "OFFERS_SORT_FIELD2" => "shows",
      "OFFERS_SORT_ORDER" => "desc",
      "OFFERS_SORT_ORDER2" => "desc",
      "OFFERS_USE" => "N",
      "ORDER_FAST_USE" => "N",
      "PAGER_BASE_LINK_ENABLE" => "N",
      "PAGER_DESC_NUMBERING" => "N",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "N",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_TEMPLATE" => ".default",
      "PAGER_TITLE" => "Товары",
      "PAGE_ELEMENT_COUNT" => "8",
      "PARTIAL_PRODUCT_PROPERTIES" => "N",
      "PRICE_ALIGN" => "left",
      "PRICE_CODE" => array("Ціна для вивантаження"),
      "PRICE_VAT_INCLUDE" => "Y",
      "PRODUCT_BLOCKS_ORDER" => "price,props,sku,quantityLimit,quantity,buttons",
      "PRODUCT_DISPLAY_MODE" => "N",
      "PRODUCT_ID_VARIABLE" => "id",
      "PRODUCT_PROPS_VARIABLE" => "prop",
      "PRODUCT_QUANTITY_VARIABLE" => "quantity",
      "PRODUCT_ROW_VARIANTS" => "[{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false},{'VARIANT':'2','BIG_DATA':false}]",
      "PRODUCT_SUBSCRIPTION" => "Y",
      "PROPERTY_ARTICLE" => "CML2_ARTICLE",
      "PROPERTY_CODE_MOBILE" => array("BRAND"),
      "PROPERTY_MARKS_HIT" => "HIT",
      "PROPERTY_MARKS_NEW" => "NEW",
      "PROPERTY_MARKS_RECOMMEND" => "RECOMEND",
      "PROPERTY_ORDER_USE" => "ORDER_USE",
      "PROPERTY_PICTURES" => "FILES",
      "PROPERTY_STORES_SHOW" => "",
      "PURCHASE_BASKET_BUTTON_TEXT" => "В корзину",
      "PURCHASE_ORDER_BUTTON_TEXT" => "Заказать",
      "QUANTITY_ALIGN" => "left",
      "QUANTITY_MODE" => "logic",
      "QUANTITY_SHOW" => "Y",
      "QUICK_VIEW_ACTION" => "buy",
      "QUICK_VIEW_COUNTER_SHOW" => "N",
      "QUICK_VIEW_DESCRIPTION_MODE" => "detail",
      "QUICK_VIEW_DESCRIPTION_SHOW" => "Y",
      "QUICK_VIEW_DETAIL" => "N",
      "QUICK_VIEW_GALLERY_PANEL" => "N",
      "QUICK_VIEW_GALLERY_PREVIEW" => "N",
      "QUICK_VIEW_INFORMATION_PAYMENT" => "N",
      "QUICK_VIEW_INFORMATION_SHIPMENT" => "N",
      "QUICK_VIEW_LAZYLOAD_USE" => "N",
      "QUICK_VIEW_MARKS_SHOW" => "N",
      "QUICK_VIEW_OFFERS_PROPERTY_PICTURES" => "",
      "QUICK_VIEW_PROPERTY_CODE" => array("RECOMMENDED","ASSOCIATED","BRAND","GUSTINA_1","KRATNIST_VIDVANTAZHENNYA","DLINNA_LISTA","SHIRINA_LISTA","TOLSHCHINA_LISTA","VAGA","CML2_ARTICLE","CML2_BASE_UNIT","CML2_TAXES","MORE_PHOTO","FILES","vote_count","vote_sum","rating","MATERIAL_DYUBELYA","GRUPPA_GORYUCHESTI","PLENKI_KROVELNYE","SVOYSTVA_GIPSOKARTONA","VID_DYUBELEY","DLINNA_DYUBELYA_DLYA_TERMOIZOLYATSII","MATERIAL_GVOZDYA","MATERIAL","DLINNA_PROFILYA","SHIRINA_PROFILYA","NAKONECHNIK","DLINNA_LENTY","SHIRINA_LENTY","TIP_LENTY","TIP_SAMOREZROV","DLINNA_KREPLENIY","DLYA_VIDOV_MATERIALA","TIP_GOLOVKI","POKRYTIE","SHAYBA","TSVET_SHAYBY","DLINNA_GIPSOKARTONA","SHIRINA_GIPSOKARTONA","TOLSHCHINA_GIPSOKARTONA","TIP_PROFILEY","TOLSHCHINA_PROFILYA","VID_PROFILEY","DLINNA_DYUBELYA_DSHM","SHIRINA_RULONA","DLINNA_RULONA","TSVET_RULONA","MATERIAL_LENTY","KRAINA_POKHODZHENYA","TIP_GERMETIKA","OBEM","TSVET_GERMETIKA","KOLICHESTVO_KOMPONENTOV","VID_MASTIKI","MATERIAL_1","SPOSOB_NANESENIYA","TIP_SMESI","PRIMENENIE","FRAKTSIYA","BAZA","DLINNA_PILOMATERIALOV","SHIRINA_PILOMATERIALOV","TOLSHCHINA_PILOMATERIALOV","VID_IZDELIYA","DLINNA_IZDELIYA","SHIRINA_IZDELIYA","TOLSHCHINA_IZDELIYA","DIAMETR","TSVET","TIP_IZDELIYA","GRADUS","NAZNACHENIE_CHEREPITSY","DOPOLNITELNYE_SVOYSTVA","DIAMETR_1","TOLSHCHINA","SHIRINA","DLINA","SROK_SLUZHBY","PROCHNOST_PRI_DIFORMATSII","VODOPOGLASHCHENIE","VODOPRONITSAEMOST","TEPLOSTOYKOST","MOROZOSTOYKOST","DIAMETR_TARELKI","DIAMETR_DYUBELYA","GLUBINA","DLINA_1","KOLICHESTVO_V_UPAKOVKE","FLANETS_DYUBELYA","VNUTRENNIY_DIAMETR","VID_NOMENKLATURY_DLYA_BITRIKS24","ARTIKUL_NOMENKLATURY_DLYA_BITRIKS24","DIAMETR_2","CATEGORY","NEW","GUSTINA111","HIT","_1111POKRYTIE","RECOMMEND","ORDER_USE",""),
      "QUICK_VIEW_PROPERTY_MARKS_HIT" => "HIT",
      "QUICK_VIEW_PROPERTY_MARKS_NEW" => "NEW",
      "QUICK_VIEW_PROPERTY_MARKS_RECOMMEND" => "RECOMEND",
      "QUICK_VIEW_PROPERTY_ORDER_USE" => "",
      "QUICK_VIEW_PROPERTY_PICTURES" => "FILES",
      "QUICK_VIEW_PROPERTY_TEXT" => "",
      "QUICK_VIEW_QUANTITY_SHOW" => "N",
      "QUICK_VIEW_SLIDE_USE" => "Y",
      "QUICK_VIEW_TEMPLATE" => "1",
      "QUICK_VIEW_USE" => "N",
      "QUICK_VIEW_WEIGHT_SHOW" => "N",
      "RCM_PROD_ID" => $_REQUEST["PRODUCT_ID"],
      "RCM_TYPE" => "personal",
      "RECALCULATION_PRICES_USE" => "Y",
      "SECTION_CODE" => $arResult["SECTION_CODE"],
      "SECTION_CODE_PATH" => $_REQUEST["SECTION_CODE_PATH"],
      "SECTION_ID" => "",
      "SECTION_ID_VARIABLE" => "SECTION_ID",
      "SECTION_URL" => "/catalog/#SECTION_CODE#/",
      "SECTION_USER_FIELDS" => array("",""),
      "SEF_MODE" => "Y",
      "SEF_RULE" => "#SECTION_CODE#",
      "SET_BROWSER_TITLE" => "N",
      "SET_LAST_MODIFIED" => "N",
      "SET_META_DESCRIPTION" => "N",
      "SET_META_KEYWORDS" => "N",
      "SET_STATUS_404" => "Y",
      "SET_TITLE" => "N",
      "SHOW_404" => "N",
      "SHOW_ALL_WO_SECTION" => "Y",
      "SHOW_CLOSE_POPUP" => "N",
      "SHOW_DISCOUNT_PERCENT" => "N",
      "SHOW_FROM_SECTION" => "N",
      "SHOW_MAX_QUANTITY" => "N",
      "SHOW_OLD_PRICE" => "N",
      "SHOW_PRICE_COUNT" => "1",
      "SHOW_SLIDER" => "Y",
      "SLIDER_INTERVAL" => "3000",
      "SLIDER_PROGRESS" => "N",
      "TEMPLATE_THEME" => "blue",
      "USE_ENHANCED_ECOMMERCE" => "N",
      "USE_MAIN_ELEMENT_SECTION" => "N",
      "USE_PRICE_COUNT" => "N",
      "USE_PRODUCT_QUANTITY" => "Y",
      "VOTE_MODE" => "rating",
      "VOTE_SHOW" => "Y",
      "WEIGHT_SHOW" => "Y"
   )
);?>
Михаил Базаров 10.04.2021
Этот параметр есть в element.php который выводит подробную карточку товара

Просто, скопируйте в самый низ, под вывод карточки, компонент вывода раздела из section.php
В него и передайте
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],

Позже дополню заметку этим способом. Он даже, как то более логичнее и правильнее- чем через component_epilog
Во всяком случае, более управляемый прямо из настроек компонента.
s.rudko@100systems.com Rudko 15.04.2021
Цитата
Этот параметр есть в element.php который выводит подробную карточку товара

Просто, скопируйте в самый низ, под вывод карточки, компонент вывода раздела из section.php
В него и передайте
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],

Позже дополню заметку этим способом. Он даже, как то более логичнее и правильнее- чем через component_epilog
Во всяком случае, более управляемый прямо из настроек компонента.
Все получилось, спасибо большое.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Наличие на складах в умном фильтре 1С-Битрикс, с автоматическим обнов... Просмотров: 1116 Задача: добавить возможность фильтрации товаров по складам в умном фильтре. Данные должны ... Глобальные фильтры на всякие случаи жизни Просмотров: 47108 Глобальный фильтр, нужен чаще всего, для вывода определенных элементов, из общего массива... Установить цену товара из свойства инфоблока Просмотров: 10054 На одном из проектов, нужно было единоразово заполнить цены товаров из свойства инфоблока... Подключение SSL на Битрикс виртуальная машина Просмотров: 13280 С первого января 2017 года, наличие безопасного соединения HTTPS становится практически об... Ссылка и название раздела в списке новостей Битрикс Просмотров: 11470 Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новос... Вывести разделы инфоблока в которых находится элемент Битрикс Просмотров: 17017 Если нужно в карточке товара или новости, вывести структуру разделов в котором находится э... Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне ... Просмотров: 1769 Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении то... Создание локальных уведомлений для приложения на Apache Cordova Просмотров: 233 Задача состоит в том, чтобы реализовать возможность локальных уведомлений в приложении на ... Вывести минимальную цену торговых предложений в Битрикс Просмотров: 28104 Если у товара несколько торговых предложений и у каждого предложения разные цены, иногда т... Простой WEB сервер на ubuntu, для Битрикс Просмотров: 35932 Расскажу как по быстрому сконфигурировать WEB сервер для работы с Битрикс. Безо всяких ngi... Пункты меню из разделов инфоблока Битрикс Просмотров: 93239 В принципе это стандартная возможность системы управления битрикс, но почему-то часто спра... Отфильтровать новости в Битрикс за заданный период Просмотров: 16693 Иногда, нужно отфильтровать элементы (новости например) по дате в Битрикс, с помощью компо... Создать pdf файл из элемента инфоблока, дать скачать пользователю, по... Просмотров: 5332 Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и ... Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс Просмотров: 9783 В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне кор... Вывести минимальную и максимальную цену в разделе каталога Битрикс. Просмотров: 3665 Что бы вывести минимальную и максимальную стоимость товаров, из каталога 1С-Битрикс, доста... Помечаем новинки лейблом в каталоге битрикс Просмотров: 20850 Достаточно часто, при разработке каталога товаров или интернет магазина на системе управле... Очистить брошенные корзины с помощью API 1С-Битрикс Просмотров: 1121 Задача: в интернет-магазине накапливается большое количество брошенных корзин, нужно их оч... Отсортировать элементы в Битрикс по свойству привязка к разделам Просмотров: 28993 При создании достаточно сложных интернет-магазинов на Битрикс, иногда встает задача помимо... Фотогалерея на базе компонента новостей, с fancybox. Просмотров: 2906 Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогал... Увидеть файл заказов который передаст Битрикс в 1С Просмотров: 24495 Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей,...