Битрикс выбрать основной раздел и несколько других в товаре

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

Как в Битрикс API назначить несколько разделов и выбрать основной

Возможно некоторые из вас спросят, зачем это вообще может пригодится? Ответ простой — привет сторонним выгрузкам и программе 1С :).

Основной раздел — зачем он нужен в Битриксе? Если товар находится сразу в нескольких разделах, и доступен не по одному, также, для корректных хлебных крошек сайта.

Эту доработку просили очень давно, и наконец-то она есть! Теперь разберемся, что делать нам простым смертным, которых хлебом не корми дай написать какой-то полезный скрипт :).

Раньше, при добавлении нового товара или, если говорить «по-битриксовски», элемента, мы писали что-то вроде:

Где, в переменной $SECTION_ID мы и передавали ID раздела.

В случае если включена опция «разрешить выбирать основной раздел» и элемент уже создан и его нужно обновлять, ситуация выглядит немного иначе.

Использовать будем $res = $el->Update:

Раздел с ID 141 будет выбран как основной. У товара будет еще дополнительно выбран раздел с ID 113.
Все остальные разделы не будут отмечены, даже если были.

Приблизительный вариант скрипта:

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

Внимание! Все эксперименты проводите на тестовой базе данных, рабочий сайт заказчика это очень важно. Успехов!

Если вам нужна разработка на Битриксе с нуля, обращайтесь

автор: Dmitriy

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

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

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

4 комментария

  1. Дмитрий, добрый день!
    Подскажи а можно как то реализовать несколько другу задачу.
    Есть один товар, привязанный к нескольким разделам второго уровня.
    Хочется что бы он показывался дважды при выборе в каталоге первого уровня.
    Т.е. есть 1- уровень Конфеты.
    Второй 1.1 =шоколадные
    1.2. = с начинкой
    Есть товар «конфета ласточка».
    Хочется чтобы покупатель заходя в раздел «Конфеты» видел два товара «шоколадные / Конфета ласточка» и «с начинкой / Конфета ласточка»

    1. В таком случае вам нужно создать 2 разных товара и привязать их в разные разделы. Либо, через зажатый Ctrl выбрать одному товару 2 разных раздела

      1. Да. У меня выбрано 2 раздела для одного товара, в админке, через Ctrl.
        Но публичной части, в разделе 1-го уровня («конфеты» в примере выше) показывается только один товар.

        1. в данном случае всё правильно, товар ведь один. Если вы хотите видеть 2 товара, то вам соответственно нужно создать еще один товар и привязать его к другому разделу

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *