Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.

Компонент bitrix:catalog.search, или поиск в каталоге прекрасно помогает продажам. Но можно его усовершенствовать. Добавим возможность искать и получать в выдаче торговые предложения. Как именно?

1. Изучаем ситуацию

При детальном рассмотрении выясняется, что компонент осуществляет поиск по указанному инфоблоку при помощи bitrix:search.page, а затем выводит его элементы с помощью bitrix:catalog.section

2. Расширяем область поиска

Нам требуется, чтобы компонент искал не только в инфоблоке каталога, но и в инфоблоке торговых предложений. Сначала отредактируем result_modifier.php, чтобы определить инфоблок торговых предложений

3. Доработаем шаблон компонента template.php

Возможны два варианта. В более простом случае тип инфоблока торговых предложений совпадает с типами инфоблоков каталога

В более сложном случае тип не совпадает, и потребуется выполнять поиск по торговым предложениям отдельно.

И наконец, выполним фильтрацию результатов для bitrix:catalog.section.

Готово!

Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Если вы не читали статью Как сделать поиск по >

Поиск товаров по ID в битриксе

Шаг 1. Битрикс по умолчанию не умеет искать по ID, поэтому нам надо создать в инфоблоке каталога пользовательское свойство, в котором мы будем хранить ID товара. Назовем, например, SEARCH_ID. В настройках поля отмечаем, что оно участвует в поиске и сохраняем изменения.

Автоматом поле не попадет куда нам надо, поэтому надо заполнить поле для поиска по ID у уже созданных товаров, и автоматизировать его заполнение у новых.

Шаг 2. Пишем код и запускаем:

Можно убрать подключение header и footer и просто вначале добавить:

Шаг 3. Обновляем файл /bitrix/php_interface/init.php:

Не забывайте сделать полную переиндексацию в настройках продукта. И хотя данный метод слегка устарел, всё равно считаю, что про него необходимо рассказать.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
— Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
— Разработка функционала с нуля и доработка кода на уже созданных проектах;
— Адаптивная вёрстка макетов и натяжка на Битрикс;
— Парсинг файлов и выгрузка на сайт (форматы — CSV, XML, XLSX, JSON)
— Интеграции со сторонними сервисами по API;
— Многоязычные версии и многое другое.

Компонент выводит результаты поиска по элементам каталога с указанным набором свойств, цен и т.д.. Компонент стандартный и входит в дистрибутив модуля.

В визуальном редакторе компонент расположен по пути Контент > Каталог > Поиск по каталогу.

Компонент относится к модулю Информационные блоки.

Секции настроек компонента:

Описание параметров

ПолеПараметрОписание
Основные параметры
Тип инфо-блокаIBLOCK_TYPEУказывается один из созданных в системе типов информационных блоков.
Инфо-блокIBLOCK_IDДля выбранного типа инфоблоков указывается идентификатор информационного блока, по элементам которого будет произведен поиск.
Источник данных
По какому полю сортируем элементыELEMENT_SORT_FIELDВыбирается свойство элементов, по которому следует произвести сортировку:

  • shows – по количеству просмотров в среднем;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по названию;
  • id – по идентификатору;
  • active_from – по дате активности с;
  • active_to – по дате активности по;
  • SCALED_PRICE_[ID] – по типу цен (вместо [ID] — идентификатор типа цены)
Порядок сортировки элементовELEMENT_SORT_ORDERУказывается порядок сортировки элементов:

  • по возрастанию;
  • по убыванию;
  • другое.
Поле для второй сортировки элементовELEMENT_SORT_FIELD2Выбирается свойство элементов, по которому будет выполняться вторая сортировка:

  • shows – по количеству просмотров в среднем;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по названию;
  • id – по идентификатору;
  • active_from – по дате активности с;
  • active_to – по дате активности по;
  • SCALED_PRICE_[ID] – по типу цен (вместо [ID] — идентификатор типа цены)
Порядок второй сортировки элементовELEMENT_SORT_ORDER2Указывается порядок второй сортировки элементов:

  • по возрастанию;
  • по убыванию;
  • другое.
Недоступные товарыHIDE_NOT_AVAILABLEКак отображать недоступные товары:

  • Отображать в общем списке
  • Отображать в конце
  • Не отображать

Недоступны товары, для которых количество меньше либо равно нулю, включен количественный учет и не разрешена покупка при отсутствии товара.
Товар с торговыми предложениями считается доступным, если хоть одно предложение доступно.
Доступность товара не означает, что его можно купить. Для покупки должны быть цены тех типов, по которым клиент может покупать.

Недоступные торговые предложенияHIDE_NOT_AVAILABLE_OFFERSУказывается способ отображения недоступных для покупки торговых предложений:

  • не отображать;
  • отображать только с возможностью подписки;
  • отображать все.
Не отображать товары, которых нет на складахHIDE_NOT_AVAILABLE[Y|N] При отмеченной опции будут скрыты товары, для которых общее доступное количество меньше либо равно нулю (не остатки по складам), включен количественный учет и не разрешена покупка при отсутствии товара.
Внешний вид
Количество элементов на страницеPAGE_ELEMENT_COUNTМаксимальное число показываемых на одной странице элементов.
Количество элементов выводимых в одной строке таблицыLINE_ELEMENT_COUNTУказывается число элементов, которые будут показаны в одной строке таблицы результатов поиска.
СвойстваPROPERTY_CODEУказываются выводимые свойства товаров.
Поля предложенийOFFERS_FIELD_CODEВыбираются поля предложений. Можно добавлять свои. С помощью клавиши Ctrl можно выбрать несколько значений. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.
Свойства предложенийOFFERS_PROPERTY_CODEУказываются свойства предложений. Можно добавлять свои. С помощью клавиши Ctrl можно выбрать несколько значений. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.
По какому полю сортируем предложения товараOFFERS_SORT_FIELDУказывается поле, по которому сортируется весь список предложений товара. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.
Порядок сортировки предложений товараOFFERS_SORT_ORDERВыбирается как сортировать предложения товара: по возрастанию, или по убыванию. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.
Поле для второй сортировки предложений товараOFFERS_SORT_FIELD2Указывается поле, по которому выполняется вторая сортировка списка предложений товара. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.
Порядок второй сортировки предложений товараOFFERS_SORT_ORDER2Выбирается порядок второй сортировки предложений товара: по возрастанию, или по убыванию. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.
Максимальное количество предложений для показаOFFERS_LIMITУказывается максимально допустимое число показываемых торговых предложений (0 — все).
Шаблоны ссылок
URL, ведущий на страницу с содержимым разделаSECTION_URLУказывается адрес страницы содержимого раздела.
URL, ведущий на страницу с содержимым элемента разделаDETAIL_URLУказывается адрес страницы содержимого элемента раздела.
URL, ведущий на страницу с корзиной покупателяBASKET_URLУказывается адрес страницы корзины покупателя.
Название переменной, в которой передается действиеACTION_VARIABLEУказывается имя переменной, в которой передается действие. Значение параметра должно быть уникальным среди всех используемых компонентов на одной странице.
Название переменной, в которой передается код товара для покупкиPRODUCT_ID_VARIABLEУказывается имя переменной, в которой передается код товара для покупки.
Название переменной, в которой передается количество товараPRODUCT_QUANTITY_VARIABLEУказывается имя переменной, в которой передается количество товара.
Название переменной, в которой передаются характеристики товараPRODUCT_PROPS_VARIABLEУказывается имя переменной, в которой передаются характеристики товара.
Название переменной, в которой передается код группыSECTION_ID_VARIABLEУказывается имя переменной, в которой передается код группы.
Управление режимом AJAX
Включить режим AJAXAJAX_MODE[Y|N] При установленной опции для компонента будет включен режим AJAX.
Включить прокрутку к началу компонентаAJAX_OPTION_JUMP[Y|N] Если пользователь совершит AJAX-переход, то при установленной опции по окончании загрузки произойдет прокрутка к началу компонента.
Включить подгрузку стилейAJAX_OPTION_STYLE[Y|N] Если параметр принимает значение "Y", то при совершении AJAX-переходов будет происходить подгрузка и обработка списка стилей, вызванных компонентом.
Включить эмуляцию навигации браузераAJAX_OPTION_HISTORY[Y|N] Когда пользователь выполняет AJAX-переходы, то при включенной опции можно использовать кнопки браузера Назад и Вперед.
Настройки кеширования
Тип кешированияCACHE_TYPEТип кеширования:

  • A — Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
  • Y — Кешировать: для кеширования необходимо определить время кеширования;
  • N — Не кешировать: кеширования нет в любом случае.
Время кеширования (сек.)CACHE_TIMEВремя кеширования, указанное в секундах.
Дополнительные настройки
Выводить кнопку сравненияDISPLAY_COMPARE[Y|N] При отмеченной опции под каждым выводимым элементом будет ссылка Сравнить.
Цены
Тип ценыPRICE_CODEУказывается тип цены для выводимых элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
Использовать вывод цен с диапазонамиUSE_PRICE_COUNT[Y|N] При отмеченной опции будут отображаться цены всех типов на товары.
Выводить цены для количестваSHOW_PRICE_COUNTПараметр определяет количество единиц товара, для которых выводить стоимость.
Включать НДС в ценуPRICE_VAT_INCLUDE[Y|N] При отмеченной опции цены будут показаны с учетом НДС.
Характеристики товараPRODUCT_PROPERTIESУказываются характеристики товара.
Разрешить указание количества товараUSE_PRODUCT_QUANTITY[Y|N] При установленной опции будет разрешено указание количества товара.
Показывать цены в одной валютеCONVERT_CURRENCY[Y|N] При установке флажка цены будут выводиться в одной валюте, даже если в каталоге они будут заданы в разных валютах, станет доступным дополнительное поле
Валюта, в которую будут сконвертированы ценыCURRENCY_IDВыбор валюты в которой будут отображаться цены. Поле видно при отмеченной опции Показывать цены в одной валюте.

. При выборе этой опции кеш компонента будет автоматически сбрасываться при изменении курсов валют тех товаров, которые показываются компонентом. К примеру, если выбрана конвертация в рубли, а цены в информационном блоке сохранены в евро, то кеш сбросится при изменении курса евро или рубля. Изменения остальных валют на кеш не окажут влияния.

Свойства предложений, добавляемые в корзинуOFFERS_CART_PROPERTIESИз списка выбираются свойства, которые можно добавить в корзину. Для выбора нескольких свойств нужно использоать клавишу Ctrl. Данный параметр появляется при настройке компонента на инфоблок с поддержкой SKU.ПоискИскать без учета морфологии (при отсутствии результата поиска)RESTART[Y|N] При отмеченной опции с лучае отсутствия результата поиска будут выведены элементы, имеющие морфологические отклонения от поискового запроса.Отключить обработку слов как логических операторовNO_WORD_LOGIC[Y|N] При снятой опции слова логических операторов ("И", "ИЛИ" и пр.) будут интерпретироваться только как лингвистическая часть поискового запроса.Включить автоопределение раскладки клавиатурыUSE_LANGUAGE_GUESS[Y|N] При отмеченной опции будет включено автоопределение раскладки клавиатуры.Искать только в активных по дате документахCHECK_DATES[Y|N] При отмеченной опции поиск будет осуществляться только в активных по дате элементах.При ранжировании результата учитывать заголовкиUSE_TITLE_RANK[Y|N] При отмеченной опции элементы сайта, содержащие в заголовке поисковые слова, будут выведены в начале выдачи результатов.Использовать сортировку результатов по релевантностиUSE_SEARCH_RESULT_ORDER[Y|N] При отмеченной опции результаты поиска будут выведены в порядке убывания релевантности.Настройки постраничной навигацииШаблон постраничной навигацииPAGER_TEMPLATEУказывается название шаблона постраничной навигации.Выводить над спискомDISPLAY_TOP_PAGER[Y|N] При отмеченной опции постраничная навигация будет выведена вверху страницы поиска.Выводить под спискомDISPLAY_BOTTOM_PAGER[Y|N] При отмеченной опции постраничная навигация будет выведена внизу страницы поиска.Название категорийPAGER_TITLEУказывается название заголовка постраничной навигации.Выводить всегдаPAGER_SHOW_ALWAYS[Y|N] При отмеченной опции навигация будет отображаться всегда, даже если результаты поиска помещаются на одной странице.Использовать обратную навигациюPAGER_DESC_NUMBERING[Y|N] При отмеченной опции будет использоваться обратная навигация. Для обратной навигации в системе происходит обратный отсчет страниц (последняя страница считается первой). Таким образом, постоянно меняется лишь последняя страница при добавлении нового элемента. Это верно, если новые элементы попадают всегда вверх списка (отсортированы по дате начала активности по убыванию).Время кеширования страниц для обратной навигацииPAGER_DESC_NUMBERING_CACHE_TIMEЗадается время кеширования страниц в секундах для обратной навигации.Показывать ссылку "Все"PAGER_SHOW_ALL[Y|N] При отмеченной опции в постраничную навигацию будет добавлена ссылка Все, с помощью которой можно отобразить все элементы каталога..

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

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.