Добрый день, ломаю голову уже целый день, мне необходимо установить значения множественного свойства из csv файла, свойство со всеми значениями есть, необходимые значения лежат в csv файле, в нем же лежит ID элемента которому нужно присвоить значение, на этом этапе всё отлично, код отрабатывает достает нужные данные. Но при добавлении возвращает ошибку, не могу понять в чем проблема, буду благодарен любой помощи. Документацию чекал, но возможно что-то неправильно воспринял...
Код |
---|
$data = kama_parse_csv_file('ID-prod-comb.csv', col_delimiter: ",", row_delimiter: "");
$valuesToSet = [];
foreach ($data as $data_el) {
$valuesToSet[$data_el[1]][] = $data_el[0]; // Группируем значения по ключу
}
$db_res = CIBlockElement::GetList(array(), array("IBLOCK_ID" => 13), false, false);
while ($ar_Element = $db_res->GetNext()) {
// Получаем старое значение свойства
$old_id_db = CIBlockElement::GetProperty(13, $ar_Element['ID'], array('sort' => 'asc'), array('ID' => 162));
if ($ob = $old_id_db->GetNext()) {
// Проверяем, есть ли соответствующее значение в массиве
if (isset($valuesToSet[$ob['VALUE']])) {
$propertyValues = [];
foreach ($valuesToSet[$ob['VALUE']] as $valueToSet) {
if (!empty($valueToSet)) {
$el2 = new CIBlockElement();
$propertyValues = array(
'ID_PROD_ATTR' => array(
'VALUE' => $valueToSet
)
);
}
}
if (!empty($propertyValues)) {
// Пробуем установить значения свойств
if (!$el2->SetPropertyValuesEx($ar_Element['ID'], 13, $propertyValues)) {
// Если вызов метода не успешен, вывести ошибку
echo "<pre style='color: red'>";
print_r("Ошибка обновления: " . $el2->LAST_ERROR);
echo "</pre>";
} else {
echo "<pre style='color: green'>";
print_r("Значения установлены для элемента ID: " . $ar_Element['ID']);
echo "</pre>";
}
}
}
}
} |