Ну смотри я вот так реализовываю всегда.
1) Создаю два типа меню. Например: "Верхнее меню" и "Каталог" ( что бы создать новые типы меню, это надо пройти в настройки и там в настроках структуры дописать новые типы меню.
2) Беру обычный компонент типа bitrix:menu вот его template.php
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); ?>
<?$countMenu = 0;?>
<? if(!empty($arResult)): ?>
<div class="top_menu">
<ul class="menu" data-role="x-menu">
<?
$previousLevel = 0;
foreach($arResult as $arItem):
?>
<? if($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
<?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
<? endif; ?>
<? if($arItem["IS_PARENT"]): ?>
<? if($arItem["DEPTH_LEVEL"] == 1): ?>
<li class="first_lvl_parent parent_li<? if($arItem["SELECTED"]): ?> first_lvl_selected<? endif; ?>" <?if($countMenu == 0):?>onmouseout="OutoverElement();"
onmouseover="HoverElement();"<?endif?>><span class="parent_span"><a href="<?=$arItem["LINK"]?>" class="<? if($arItem["SELECTED"]): ?>root-item-selected<? else: ?>root-item<? endif; ?>"<?if($countMenu == 0):?>style="padding-left:0;"<?endif?> ><?if($countMenu == 0):?>
<?$countMenu = 1;?>
<?endif;?><div class="catmenu"><?=$arItem["TEXT"]?></div></a></span>
<ul class="first_lvl" style="height:470px">
<? else: ?>
<li class="parent_li<? if($arItem["SELECTED"]): ?> item-selected<? endif; ?>">
<span class="parent_span">
<a href="<?=$arItem["LINK"]?>" class="parent">
<?=$arItem["TEXT"]?>
</a>
<i class="l_top"></i><i class="l_bt"></i>
</span>
<ul class="parent_lvl" >
<li class="zap_top"></li>
<li class="zap_bt"></li>
<? endif; ?>
<? else: ?>
<? if($arItem["PERMISSION"] > "D"): ?>
<? if($arItem["DEPTH_LEVEL"] == 1): ?>
<li class="not_parent<? if($arItem["SELECTED"]): ?> first_lvl_selected<? endif; ?>"><span><a href="<?=$arItem["LINK"]?>" class="<? if($arItem["SELECTED"]): ?>root-item-selected<? else: ?>root-item<? endif; ?>"><?=$arItem["TEXT"]?></a></span></li>
<? else: ?>
<li<? if($arItem["SELECTED"]): ?> class="item-selected"<? endif; ?>><span><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></span></li>
<? endif; ?>
<? endif; ?>
<? endif; ?>
<? $previousLevel = $arItem["DEPTH_LEVEL"]; ?>
<? endforeach; ?>
<? if($previousLevel > 1): ?>
<?=str_repeat("</ul></li>", ($previousLevel-1) );?>
<? endif; ?>
</ul>
</div>
<? endif; ?>
3) Ставлю в настройках компонента "Тип меню для первого уровня: Верхнее меню" - где у меня всего один пункт "Каталог товаров" со ссылкой на основную страницу каталога.
4) Ставлю в настройках компонента "Тип меню для остальных уровней: Каталог" (уровень вложенности по желанию.
5) Далее перехожу в корневую папку каталога. У меня это адрес_сайта/catalog/ и добавляю в ней новое меню типа "Каталог". Сохраняем его.
6) Открываю это меню для редактирования в режиме php и вставляю вместо всего что там есть, следующий код:
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt = $APPLICATION->IncludeComponent(
"bitrix:menu.sections",
"",
array(
"IS_SEF" => "Y",
"SEF_BASE_URL" => "/katalog/",
"SECTION_PAGE_URL" => "#SECTION_CODE_PATH#/",
"DETAIL_PAGE_URL" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#.html",
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => "18",
"DEPTH_LEVEL" => "2",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000"
),
false
);
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
?>
Должно работать.
Важно! В 6 пункте, обязательно укажите правильные
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => "18",
они у вас имеют свои значения, какие именно? Смотрите у себя в админке.