Полный цикл в digital

Добавление элемента в инфоблок

Для добавления элемента в инфоблок, нам поможет класс старого ядра CIBlockElement::Add. Новое ядро D7 плохо задокументировано и на момент написания статьи метод класса заблокирован.

В данном примере я работаю с таблицей b_iblock_element_property которая содержит свойства элемента инфоблока и b_iblock_element которая содержит сам элемент инфоблока.

<?
// это подключаем если код ниже будет исполняться в отдельном файле php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); 
// подключаем нужный класс для работы с инфоблоком
CModule::IncludeModule('iblock');
// обязательно указываем класс
$el = new CIBlockElement;
// здесь у нас будут храниться свойства
$PROP = array();
// свойство типа HTML/текст, указываем ID свойста и текст который хотим записать
$PROP[409] = 'Полное название';
// свойство типа список, указываем ID свойста и ID значение свойста 
$PROP[411] = ["VALUE" => 190];
// свойство типа список множественного выбора, указываем ID свойста и ID значение свойста 
$PROP[412] = [191, 192, 193];
// свойство типа чекс бокс
 $PROP[698] = ["VALUE" => 343];
// массив данных для добавления элемента
$arLoadProductArray = array(
    // обязательно нужно указать дату начала активности элемента
    "ACTIVE_FROM" => date('d.m.Y H:i:s'),
    // указываем какой пользователь добавил элемент
    "MODIFIED_BY" => $USER->GetID(),
    // в корне создаем элемент (false), или в категории (указываем id категории)
    "IBLOCK_SECTION_ID" => 164,
    // id инфоблока куда будем добавлять новый элемент
    "IBLOCK_ID" => 48,
    // название элемента
    "NAME" => "Название элемента",
    // превью описание элемента
    "PREVIEW_TEXT" => "Превью описание элемента",
    // Детальное описание элемента
    "DETAIL_TEXT" => "Детальный текст",
    // активен (Y), или не активен (N) 
    "ACTIVE" => "Y",
    // добавляем символьный код
    "CODE" => "test",
    // добавляем элементу свойства
    "PROPERTY_VALUES" => $PROP,
    // сортировка
    "SORT" => 100,
    // ссылка на детальную картинку
    "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images.png")  
);
// с помощью Add добавляем новый элемент
if ($newElement = $el->Add($arLoadProductArray)) {
    echo "ID нового элемента: " . $newElement;
} else {
    echo "Error: " . $el->LAST_ERROR;
}

Для привязки элемента к нескольким разделам инфоблока, нужно использовать ключ IBLOCK_SECTION содержащий массив из ID разделов куда нужно добавлять элемент, вместо IBLOCK_SECTION_ID.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг