Как фильтровать элементы каталога по службам доставки 1с Битрикс?

Для фильтрации элементов каталога по службам доставки в 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.