Довольно простая заготовка скрипта импорта данных из csv файла. Представим, что у нас есть некий csv файл c комментариями к товарам: к примеру, такой:
Нужно все эти данные загрузить в инфоблок. Соответствия свойств в файле и инфоблоке следующие:
- id_com — идентификатор записи. будем их записывать в поле «внешний код» (XML_ID)
- id_pr — id товара, к которому этот комментарий относится (не станем его импортировать для простоты кода)
- name_com — ф.и.о. автора комментария (будем его записывать в пользовательское свойство инфоблока типа «строка» с кодом «FIO»)
- email_com — email автора комментария (будем его записывать в пользовательское свойство инфоблока типа «строка» с кодом «MAIL»)
- status_com — статус комментария (будем его записывать в пользовательское свойство инфоблока типа «список» с кодом «IS_SHOW»)
- date_com — дата написания комментария (будем его записывать в пользовательское свойство инфоблока типа «дата/время» с кодом «DATE»)

Сам код импорта:
<?php
require_once $_SERVER['DOCUMENT_ROOT'].
'/bitrix/modules/main/include/prolog_before.php';
?>
<h1>Импорт комментариев к товарам</h1>
<p>
Источник: data.csv - файл должен располагаться в <b>/dev-import/catalog/items-comments/</b><br>
Кодировка: UTF-8<br>
Разделитель ячеек: |<br>
</p>
результат работы...<br>
<?
$handle = fopen($_SERVER['DOCUMENT_ROOT'].'/dev-import/catalog/items-comments/data.csv', 'r');
if ($handle) {
$counter = 0;
$keys = array();
$data = array();
while (($buffer = fgets($handle)) !== false) {
$counter++;
//удаляем из прочитанной строки все символы переноса
$buffer = str_replace(array("\r\n", "\r", "\n"), '', $buffer);
$str =explode('|', $buffer);
if ($counter==1){
$keys = $str;
}
else{
$el = array();
foreach ($str as $key=>$item){
$el[$keys[$key]] = $item;
}
$data[] = $el;
}
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
CModule::IncludeModule('iblock');
foreach ($data as $key=>$el){
$bs = new CIBlockElement;
//значение "не показывать комментарий"
$status = '1';
if ($el['status_com']=='On'){
//значение "показывать комментарий"
$status = '2';
}
$PROP = array();
$PROP['IS_SHOW'] = $status;
$PROP['DATE'] = $el['date_com'];
$PROP['FIO'] = $el['name_com'];
$PROP['MAIL'] = $el['email_com'];
$arFields = Array(
'ACTIVE' => 'Y',
'IBLOCK_ID' => 4,
'NAME' => 'cmt_'.$el['id_com'],
'XML_ID' => 'cmt_'.$el['id_com'],
'PROPERTY_VALUES'=> $PROP,
);
if($PRODUCT_ID = $bs->Add($arFields)){
echo $key.'.New ID: '.$PRODUCT_ID.'(XML_ID = cmt_'.$el['id_com'].')<br>';
}
else{
echo $key.'.Error: '.$bs->LAST_ERROR.'<br>';
}
}
}
?>