Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Компонент 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 | Выбирается свойство элементов, по которому следует произвести сортировку:
|
Порядок сортировки элементов | ELEMENT_SORT_ORDER | Указывается порядок сортировки элементов:
|
Поле для второй сортировки элементов | ELEMENT_SORT_FIELD2 | Выбирается свойство элементов, по которому будет выполняться вторая сортировка:
|
Порядок второй сортировки элементов | 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 | ||
Включить режим AJAX | AJAX_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 | Тип кеширования:
|
Время кеширования (сек.) | 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 | Выбор валюты в которой будут отображаться цены. Поле видно при отмеченной опции Показывать цены в одной валюте. |
. При выборе этой опции кеш компонента будет автоматически сбрасываться при изменении курсов валют тех товаров, которые показываются компонентом. К примеру, если выбрана конвертация в рубли, а цены в информационном блоке сохранены в евро, то кеш сбросится при изменении курса евро или рубля. Изменения остальных валют на кеш не окажут влияния.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.