Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Заполнить инфоблок брендов из свойства инфоблока с товарами

Просмотров: 2287 Задача: в интернет-магазине есть инфоблок с товарами, загружаемый из 1С, у которого заполнено свойство "Производитель" и оно является списком. Нужно заполнить отдельный инфоблок этими производителями, чтобы не наполнять его вручную.
Это может пригодиться для реализации другой заметки: Вывести товары бренда в его описании
Заполнить инфоблок брендов из свойства инфоблока с товарами

Получаем значения множественного свойства "Список"

Для этого нам достаточно воспользоваться методом CIBlockPropertyEnum::GetList, который по коду свойства получит все его значения (впрочем, и остальную информацию получит, но нас интересует только VALUE)

use Bitrix\Main\Loader;

Loader::includeModule('iblock');

$arTrans = array("replace_space" => "-", "replace_other" => "-");
$el = new CIBlockElement;

$property_enums = CIBlockPropertyEnum::GetList(
    array(
        "VALUE" => "ASC",
    ),
    array(
        "IBLOCK_ID" => 10, // ID инфоблока каталога
        "CODE" => "CML2_MANUFACTURER"
    )
);

while ($enum_fields = $property_enums->GetNext()) {
    $arFields = array(
        "IBLOCK_ID" => 7, // ID инфоблока производителей
        "NAME" => strip_tags($enum_fields['VALUE']),
        'ACTIVE' => 'Y',
        'CODE' => Cutil::translit($enum_fields['VALUE'], "ru", $arTrans),
    );
    $NewElementId = $el->Add($arFields);
}

Объяснение кода:

  • Подключаем модуль информационных блоков (iblock), чтобы иметь возможность работать с ними.
  • Задаем параметры для транслитерации, чтобы использовать их для создания символьных кодов.
  • Создаем экземпляр класса CIBlockElement, который будет использоваться для добавления новых элементов в инфоблок.
  • Получаем все значения свойства "Производитель" из инфоблока с товарами, отсортированные по значению.
  • Проходим по всем значениям, полученным на предыдущем шаге, и добавляем их в инфоблок производителей.

Что происходит в коде:

Модуль iblock загружается для работы с информационными блоками.

Настраиваются параметры транслитерации для создания символьных кодов.

Создается экземпляр класса CIBlockElement для добавления элементов в инфоблок.

Метод CIBlockPropertyEnum::GetList используется для получения всех значений свойства "Производитель" из инфоблока с товарами.

В цикле while происходит проход по всем значениям свойства "Производитель":

  • Создаются массивы данных для новых элементов в инфоблоке производителей.
  • Используется метод Add для добавления этих элементов в инфоблок.

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

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

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс