Для фильтрации элементов каталога по службам доставки в CMS 1C-Bitrix можно воспользоваться пользовательским свойством элементов инфоблока и дополнительной настройкой фильтрации при выводе элементов.
Шаги:
1. Создание пользовательского свойства:
- Перейдите к редактированию нужного инфоблока и создайте новое пользовательское свойство типа "Привязка к элементам" или "Привязка к справочнику". В данном случае это может быть список доступных служб доставки.
- Заполните это свойство значениями, соответствующими различным службам доставки.
2. Фильтрация при выводе элементов:
- Добавьте на страницу каталога код для вывода фильтра по службам доставки. Например, для фильтрации по выбранным службам доставки можно использовать параметры URL или checkbox.
- При формировании запроса к базе данных учтите выбранные пользователем службы доставки и добавьте условия на соответствие элементов этим службам.
Пример кода для фильтрации по пользовательскому свойству:
// Получение выбранных значений служб доставки $deliveryServices = isset($_GET['delivery']) ? $_GET['delivery'] : []; // Формирование фильтра для выбранных служб $filter = ['PROPERTY_DELIVERY' => $deliveryServices]; // Запрос элементов инфоблока с учетом фильтра $arResult = []; $iblockId = 1; // ID инфоблока $rsElements = CIBlockElement::GetList([], $filter, false, false, ['ID', 'NAME', 'PROPERTY_DELIVERY'], $iblockId); while ($element = $rsElements->Fetch()) { $arResult[] = $element; } // Вывод элементов каталога foreach ($arResult as $element) { echo $element['NAME']; }
Таким образом, с помощью пользовательских свойств и правильной фильтрации при выводе элементов вы сможете реализовать фильтрацию по службам доставки в CMS 1C-Bitrix.