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

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

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

Переходим в шаблон нашего каталога к файлу, который содержит в себе вывод детальной карточки товара по пути
/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
Поддержать выпуски видео уроков, поблагодарить за полезную инструкцию или заметку можно через:
ЮманейЦитата |
---|
mtsub написал: у меня товары не выводятся - 404 ошибка, переиндексацию делать. кеш сбрасывал. |

Цитата |
---|
mtsub написал: как сделать адреса разделов: site.ru/catalog/#SECTION_CODE#/ а карточек товаров: site.ru/product/#ELEMENT_CODE#/ - без "catalog" |
Цитата | ||
---|---|---|
Михаил Базаров пишет:
|

Цитата | ||||
---|---|---|---|---|
mtsub написал:
|
В /catalog/ вывод не всего компонента catalog а только catalog.section (главное правилььно на строить)
А вот в /element/ можно весь catalog
Но, важно: что бы не было дубликатов страниц (для поисковиков) в section.php каталога лучше все удалить или сделать редирект в раздел /catalog/
PS: Пояснил достаточно кратко, там много нюансов в плане СЕО- при таком подходе. Делайте внимательно и вдумчиво
Мне нужно помощь с выводом товара в карточке товара того же раздела.
Добавил в component_epilog.php нужный компонент, в строке SECTION_CODE прописал, но все равно выводится весь товар.
Код |
---|
"SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"], Н |

Цитата |
---|
s.rudko@100systems.com Rudko пишет: Здравствуйте. Первое, что хочу написать, спасибо вам за то, что вы делаете - это очень круто. Мне нужно помощь с выводом товара в карточке товара того же раздела. Добавил в component_epilog.php нужный компонент, в строке SECTION_CODE прописал, но все равно выводится весь товар. [CODE] "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"], Н [/CODE] |
$arResult["SECTION_CODE"]
Я в программировании полный профан. Поэтому ничего и не выходит.
Я не могу понять, если в 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" ) );?> |

Просто, скопируйте в самый низ, под вывод карточки, компонент вывода раздела из section.php
В него и передайте
"SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
Позже дополню заметку этим способом. Он даже, как то более логичнее и правильнее- чем через component_epilog
Во всяком случае, более управляемый прямо из настроек компонента.
Цитата |
---|
Этот параметр есть в element.php который выводит подробную карточку товара Просто, скопируйте в самый низ, под вывод карточки, компонент вывода раздела из section.php В него и передайте "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"], Позже дополню заметку этим способом. Он даже, как то более логичнее и правильнее- чем через component_epilog Во всяком случае, более управляемый прямо из настроек компонента. |