Следующий и предыдущий товар

В файле local/templates/THEME/components/bitrix/catalog.element/.default/result_modifier.php надо добавить следующий код, который выбирает текущий и соседние товары.

# local/templates/THEME/components/bitrix/catalog.element/.default/result_modifier.php

// Фильтр
$filter = array(
    'IBLOCK_ID' => $arParams['IBLOCK_ID'],
    'SECTION_ID' => $arParams['SECTION_ID'],
    'SECTION_CODE' => $arParams['SECTION_CODE'],
    'ACTIVE' => 'Y',
    'ACTIVE_DATE' => 'Y',
    'SECTION_GLOBAL_ACTIVE' => 'Y'
);

// Сортировка
$order = array(
    $arParams['OFFERS_SORT_FIELD'] => $arParams['OFFERS_SORT_ORDER'],
    $arParams['OFFERS_SORT_FIELD2'] => $arParams['OFFERS_SORT_ORDER2']
);

// Выборка текущего и соседних товаров
$nav = array(
    'nElementID' => $arResult['ID'],
    'nPageSize' => 1
);

$end = false;

$db_res = CIBlockElement::GetList($order, $filter, false, $nav);
while ($res = $db_res->GetNext()) {
    if ($res['ID'] == $arResult['ID']) {
        $end = true;
    } elseif ($end) {
        $arResult['NAV']['NEXT'] = $res;
    } else {
        $arResult['NAV']['PREV'] = $res;
    }
}

Теперь в шаблоне доступен массив $arResult['NAV'], внутри которого содержится предыдущий и следующий товар.

<!-- local/templates/THEME/components/bitrix/catalog.element/.default/template.php -->

<!-- Предыдущий товар -->
<?php if ($arResult['NAV']['PREV']): ?>
    <a href="<?=$arResult['NAV']['PREV']['DETAIL_PAGE_URL']?>"><?=$arResult['NAV']['PREV']['NAME']?></a>
<?php endif; ?>

<!-- Следующий товар -->
<?php if ($arResult['NAV']['NEXT']): ?>
    <a href="<?=$arResult['NAV']['NEXT']['DETAIL_PAGE_URL']?>"><?=$arResult['NAV']['NEXT']['NAME']?></a>
<?php endif; ?>