Настройка умного поиска для UberShop — адаптивный интернет-магазин

Навигация по разделам документации

Настройка умного поиска для UberShop — адаптивный интернет-магазин

Установка модуля

Для начала необходимо установить и настроить его по стандартной схеме, описанной тут.

Копируем шаблоны поисковых компонент

1. Копируем шаблоны компонент поиска search.title
Для этого надо скопировать папку
/bitrix/templates/#ШАБЛОНА_САЙТА#/components/bitrix/search.title
в
/bitrix/templates/.default/components/itd/search.title

Копируем в /bitrix/templates/.default — что бы шаблоны не стёрлись при обновлении шаблона сайта.

2. Копируем шаблоны компонент поиска search.page
Для этого надо скопировать папку
/bitrix/templates/#ШАБЛОНА_САЙТА#/components/bitrix/search.page в
/bitrix/templates/.default/components/itd/search.page

Прописываем использование новых компонент

Список файлов, где необходимо заменить bitrix:search.title на itd:search.title:

  • /bitrix/templates/#ШАБЛОНА_САЙТА#/blocks/headers/header_includes/header_search.php
  • /bitrix/templates/#ШАБЛОНА_САЙТА#/blocks/mobile_headers/mobile_header_v1.php

Список файлов, где необходимо заменить bitrix:search.page на itd:search.page:

  • /bitrix/templates/#ШАБЛОНА_САЙТА#/components/bitrix/catalog.search/main/template.php


Важно!
Если вы хотите, что бы результаты поиска сортировались по релевантности, то необходимо в файле /bitrix/templates/#ШАБЛОНА_САЙТА#/components/bitrix/catalog.search/main/template.php
Найти строчки
					"ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"],
"ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"],
"ELEMENT_SORT_FIELD2" => $arParams["ELEMENT_SORT_FIELD2"],
"ELEMENT_SORT_ORDER2" => $arParams["ELEMENT_SORT_ORDER2"],
И заменить их на
"ELEMENT_SORT_FIELD" => "ID",
"ELEMENT_SORT_ORDER" => $arElements,


Поиск по торговым предложениям
Если вы хотите, что бы в результатах поиска выводились товары, для которых нашлись торговые предложения, например при поиске по артикулу торгового предложения, внесите следующие правки в файл /bitrix/templates/#ШАБЛОНА_САЙТА#/components/bitrix/catalog.search/main/template.php

1. В подключении компонента itd:search.page добавьте условие для поиска по инфоблоку торговых предложений
"arrFILTER" => array("iblock_ubershop_catalog","iblock_ubershop_offers"),

2. После подключения компонента itd:search.page вставить код
// Если нашлись торговые предложения, то выведем основные товары, подставив их на место торговых предложений
if (is_array($arElements) && !empty($arElements) && \Bitrix\Main\Loader::includeModule('iblock')) {
	$rsList = CIBlockElement::GetList([], ["IBLOCK_TYPE" => "ubershop_offers", "ID" => $arElements], false, false, ['ID', 'PROPERTY_CML2_LINK.ID']);
	if ($rsList->SelectedRowsCount() > 0) {
		$replaceIds = [];
		while ($arItem = $rsList->Fetch()) {
			$replaceIds[(int)$arItem['ID']] = (int)$arItem['PROPERTY_CML2_LINK_ID'];
		}

		if (!empty($replaceIds)) {
			foreach ($arElements as $k => $offerId) {
				if (!isset($replaceIds[(int)$offerId])) {
					continue;
				}

				$arElements[$k] = $replaceIds[(int)$offerId];
			}
			$arElements = array_unique($arElements);
		}
	}
}


Всё, теперь при использовании поиска на сайте будет использоваться улучшенный поиск.




Если у вас остались вопросы, то напишите нам в техподдержку.