Здравствуйте.
Пытался следовать рекомендациям с этого топика, в любом случае компонент sale.recommended.products не выводился, чтобы я не делал.
В итоге устал бороться с данной ситуацией и написал свою встраиваемую область, которая берет данные из таблицы b_sale_product2product и выводит нужный список товаров. Если кому будет интересно выкладываю код:
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $DB;
$strSQL="SEL ECT * FR OM b_sale_product2product WHERE PRODUCT_ID=".$_REQUEST["ELEMENT_ID"]." ORDER BY CNT DESC";
$results = $DB->Query($strSQL);
//получаем список ID также покупаемых товаров
$name_array=array();
//создаем пустой массив,
while ($row = $results->Fetch())
{
array_push($name_array, $row);//забиваем данные ID товаров в массив
}
if (!empty($name_array)){//если массив не пустой то выводим данные
?>
<h4>С этим товаром также покупают:</h4>
<table width="100%">
<?
//запускаем цикл вывода товаров
for($i=0;$i<count($name_array);$i++){
if($i==0){
echo "<tr>";
}
echo "<td height=\"300\" width=\"20%\">";
//по ID товара получаем ID инфоблока и ID раздела, далее формируем фильтр
$ib_id = CIBlockElement::GetList(array(), array("ID" => $name_array[$i]['PARENT_PRODUCT_ID']), false, false, array("IBLOCK_ID"))->Fetch();
$ib_sec_id = CIBlockElement::GetList(array(), array("ID" => $name_array[$i]['PARENT_PRODUCT_ID']), false, false, array("IBLOCK_SECTION_ID"))->Fetch();
global $arrFilter;
$arrFilter=array("IBLOCK_ID"=>$ib_id["IBLOCK_ID"], "ID"=>$name_array[$i]['PARENT_PRODUCT_ID']);
//формируем ссылку на элемент товара
$res1 = CIBlockSection::GetByID($ib_sec_id["IBLOCK_SECTION_ID"]);
if($ar_res = $res1->GetNext())
if ($ar_res['NAME']=="Гвозди"){$link=SITE_DIR."catalog/fasteners/nails/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Анкер-клин"){$link=SITE_DIR."catalog/fasteners/anchors/wedge_anchor/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Анкерный болт"){$link=SITE_DIR."catalog/fasteners/anchors/anchor_bolt/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Анкерный болт 2-х распорный"){$link=SITE_DIR."catalog/fasteners/anchors/to_spacer_anchor_bolt/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Анкерный болт с гайкой"){$link=SITE_DIR."catalog/fasteners/anchors/anchor_bolt_with_nut/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Анкерный болт с кольцом"){$link=SITE_DIR."catalog/fasteners/anchors/anchor_bolt_with_ring/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Анкерный болт с крюком"){$link=SITE_DIR."catalog/fasteners/anchors/anchor_bolt_with_hook/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Забиваемый анкер"){$link=SITE_DIR."catalog/fasteners/anchors/clog_anchor/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Клиновой анкер"){$link=SITE_DIR."catalog/fasteners/anchors/wedge_anchor_to/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Металлический рамный дюбель"){$link=SITE_DIR."catalog/fasteners/anchors/metal_frame_anchor/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
if ($ar_res['NAME']=="Потолочный анкер"){$link=SITE_DIR."catalog/fasteners/anchors/ceiling_anchor/element.php?ELEMENT_ID=#ELEMENT_ID#"; }
//выводим товар
$APPLICATION->IncludeComponent(
"stroymoll:catalog.section",
"my_default1",
Array(
"IBLOCK_TYPE" => "1c_catalog",
"IBLOCK_ID" => $ib_id["IBLOCK_ID"],
"SECTION_ID" => $ib_sec_id["IBLOCK_SECTION_ID"],
"FILTER_NAME" => "arrFilter",
"LINE_ELEMENT_COUNT" => "5",
"DETAIL_URL" => $link,
"DISPLAY_BOTTOM_PAGER" => "N"
)
);
echo "</td>";
if($i==4){
echo "</tr>";
}
if($i==9){
break;
}
}
echo "<td height=\"300\" rowspan=\"2\">";
echo "</td>";
echo "</table>";
}
?>
|
На все про все потратил часа 4, в то время как настроить модуль sale.recommended.products мне не удалось за целый день.
Убедительная просьба к разработчикам: если вы пишите компоненты, то пишите их пригодными для жизни, а не убивающими время и нервные клетки.