Добавление элемента со свойствами в инфоблок
В данном примере рассмотрим добавление элемента с набором свойств в инфоблок.
Для начала нужно найти ID свойств, которые мы хотим заполнить:
Далее создаем массив props в котором в качестве ключей указываем ID свойств:
$props = array();
$props[$BRAND_PROPERTY_ID] = "Значение свойства Брэнд";
$props[$ARTICLE_PROPERTY_ID] = "Значение свойства Артикул";
$props[$ONECID_PROPERTY_ID] = "Значение свойства ID по 1С";
Следующим шагом - формируем массив для создания инфоблока:
$arLoadProductArray = Array(
"IBLOCK_ID" => $INFOBLOCK_ID, //id инфоблока в который добавляем товар
"PROPERTY_VALUES"=> $props, //созданный ранее массив свойств для товара
"NAME" => "$item_name", //название товара
"ACTIVE" => "Y", // активен
);
Добавим вызов метода добавления элемента и напишем вывод информации о успешном добавлении, либо об ошибке:
$el = new CIBlockElement;
if($PRODUCT_ID = $el->Add($arLoadProductArray))
echo "New ID: ".$PRODUCT_ID."<br/>";
else
echo "Error: ".$el->LAST_ERROR;
В случае успешного добавления элемента мы увидим сообщение "New ID: " и ID только что созданного товара, в противном случае - "Error " и описание ошибки
Теперь рассмотрим добавление доступного количества к созданному элементу, ID созданного элемента хранится в $PRODUCT_ID
$arFields = array(
"ID" => $PRODUCT_ID,
"QUANTITY" => $quan //доступное количество
);
if(CCatalogProduct::Add($arFields))
echo "Добавили количество товара к элементу каталога ".$PRODUCT_ID.'<br>';
else
echo 'Ошибка добавления параметров<br>';
Осталось добавить цену:
$arFields = Array(
"PRODUCT_ID" => $PRODUCT_ID, //id элемента
"CATALOG_GROUP_ID" => 1,//код типа цены
"PRICE" => $price, //значение цены
"CURRENCY" => "RUB", // валюта
"QUANTITY_FROM" => 0, //кол-во товара с которого начинает действовать эта цена
"QUANTITY_TO" => 0 //кол-во товара до которого действует данная цена
);
CPrice::Add($arFields);
Весь код полностью:
$el = new CIBlockElement;
$props = array();
$props[$BRAND_PROPERTY_ID] = "BRAND_NAME";
$props[$ARTICLE_PROPERTY_ID] = "ARTICLE";
$props[$ONECID_PROPERTY_ID] = "ONECID";
$arLoadProductArray = Array(
"IBLOCK_ID" => $INFOBLOCK_ID,
"PROPERTY_VALUES"=> $props,
"NAME" => $ELEMENT_NAME,
"ACTIVE" => "Y", // активен
);
if($PRODUCT_ID = $el->Add($arLoadProductArray))
echo "New ID: ".$PRODUCT_ID."<br/>";
else
echo "Error: ".$el->LAST_ERROR;
$arFields = array(
"ID" => $PRODUCT_ID,
"QUANTITY" => $QUANTITY
);
if(CCatalogProduct::Add($arFields))
echo "Добавили количество товара к элементу каталога ".$PRODUCT_ID.'<br>';
else
echo 'Ошибка добавления параметров<br>';
$arFields = Array(
"PRODUCT_ID" => $PRODUCT_ID,
"CATALOG_GROUP_ID" => 1,
"PRICE" => $PRICE,
"CURRENCY" => "RUB",
"QUANTITY_FROM" => 0,
"QUANTITY_TO" => 0
);
CPrice::Add($arFields);