Найти тему
СОЗДАЮ

Добавляем в поиск по заголовкам код товара на сайте Битрикс

Добрый день. В этой статье расскажу как добавить код товара в поиск по заголовкам сайта на Битрикс.

Часто при заходе на сайт менеджеры интернет-магазина пытаются найти товары в поиске по заголовкам по коду, но ничего не выходит т.к. в поиск по заголовкам по умолчанию индексируется только название товара. Как же это исправить. Итак начнем.

Заходим по FTP или SFTP в каталог с Вашим сайтом в папку bitrix/php_interface. И открываем там файл init.php , если его нет, то создаем сами. В этом файле добавляем код :


AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");

function BeforeIndexHandler($arFields)
{
if(!CModule::IncludeModule("iblock")) // подключаем модуль
return $arFields;
if($arFields["MODULE_ID"] == "iblock")
{
$db_props = CIBlockElement::GetProperty(
$arFields["PARAM2"],
$arFields["ITEM_ID"],
array("sort" => "asc"),
Array("CODE"=>"CML2_ARTICLE"));
if($ar_props = $db_props->Fetch())
$arFields["TITLE"] .= " ".$ar_props["VALUE"];
}
return $arFields;

}

Тут ничего сложного. Добавляем новый обработчик события BeforeIndex.

$db_props = CIBlockElement::GetProperty этой строкой запрашиваем свойства индексируемого элемента поиска.

$arFields["ITEM_ID"], - ID индексируемого свойства.

Array("CODE"=>"CML2_ARTICLE")); - CODE свойства (в данном случае артикул).

$arFields["TITLE"] .= " ".$ar_props["VALUE"]; тут добавляем в конец названия товара сам код товара и в конце строкой return $arFields; возвращаем наши изменения.

После сохранения файла init.php переходим на наш сайт в административную панель по пути:

Настройки--Поиск--Переиндексация и нажимаем переиндексировать. Ждем пока закончится индексация и проверяем работу.

Спасибо за просмотр. Подписывайтесь на канал.