Вот готовое решение.
// абсолютный путь до файла
$file_name = 'csv/import.csv';
// подключам Модуль Main.
CModule::IncludeModule("main");
// подключам Модуль Информационные блоки.
CModule::IncludeModule("iblock");
// подключам Модуль Каталог.
CModule::IncludeModule("catalog");
$el = new CIBlockElement;
$params = Array(
"max_len" => "200", // обрезает символьный код до 100 символов
"change_case" => "L", // буквы преобразуются к нижнему регистру
"replace_space" => "_", // меняем пробелы на нижнее подчеркивание
"replace_other" => "_", // меняем левые символы на нижнее подчеркивание
"delete_repeat_replace" => "true", // удаляем повторяющиеся нижние подчеркивания
"use_google" => "false", // отключаем использование google
);
if(($handle_f = fopen($file_name, "r" )) !== FALSE)
{
fseek($handle_f, $im);
while(!feof($handle_f))
{
$line = fgets($handle_f);
// меняем кодировку в файле на UTF-8
$buffer = iconv("WINDOWS-1251", "UTF-8", $line);
//разбиваем строку на значения и помещаем в массив
$data = explode(';', $buffer);
// свойства товара.
$PROP = array();
$PROP[315] = $data[2]; // Артикул
$PROP[355] = $data[1]; // Бренд
$PROP[356] = "PRIDE"; // Поставщик
// изображение.
$img = CFile::MakeFileArray('http://www.pride.ru/site_images/products/'.$data[0].'.jpg');
$arLoadProductArray = Array(
"MODIFIED_BY" => 1, // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => "", // элемент лежит в разделе Инструменты
"CODE" => CUtil::translit($data[3], "ru" , $params), // символьный код
"IBLOCK_ID" => 15, // ID инфоблока
"PROPERTY_VALUES" => $PROP, // массив свойств
"NAME" => $data[3], // имя товара
"ACTIVE" => "Y", // активен
"PREVIEW_PICTURE" => $img, // изображение анонса
"DETAIL_PICTURE" => $img // детальное изображение
);
if($PRODUCT_ID = $el->Add($arLoadProductArray))
{
//
}else{
//
}
}
fclose($handle_f);
}