Если в вашей поисковой строке есть лишние товары, эта статья для вас 🙂
Как отфильтровать результаты поиска в Битриксе
Настроить для поисковой строки какой-либо фильтр всегда было проблемой. Насколько мне известно, фильтрацию в этот компонент “не завезли”. А вот у заказчиков очень часто возникают требования “убрать с сайта товары, у которых отрицательное наличие или проставлено какое-то свойство”.
Именно такой случай и рассмотрим. Хочу поделится с вами немного устаревшим, местами даже не самым лучшим решением.
Править будем сразу ajax.php компонента search.title. Код будет выглядеть так:
<? if (CModule::IncludeModule("iblock")): $resS = CIBlockElement::GetList ( Array("ID" => "ASC"), Array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "ID" => $arItem['ITEM_ID']), false, false, Array('ID', 'NAME', 'PROPERTY_NE_VYGRUZHAT_NA_SAYT') ); if ($arItemS = $resS->GetNext()) { if ($arItemS['PROPERTY_NE_VYGRUZHAT_NA_SAYT_VALUE']) { continue; } } endif; ?>
Данный код необходимо вставить в цикле. Если свойство “NE_VYGRUZHAT_NA_SAYT” проставлено, товары не отображаются в поисковой строке. Для положительного количество фильтр будет выглядеть как:
“>CATALOG_QUANTITY” => 0
Вот и всё, надеюсь у вас всё получилось :). Если у вас есть более “элегантное” решение данной задачи, просьба поделится со всеми в комментариях.