Почему не обновляется элемент инфоблока через api?
Обновляю товар через CIBlockElement::Update(ID,[NAME=>LALALA])
В базе поле NAME обновляется, в админке в карточке тоже, а на фронте висит старое, если через карточку нажать сохранить, то появляется. Кеш отключен.
Почему не обновляется элемент?
Ярослав Александров, да ничего особенного вот вызывается этот метод и всё, он отрабатывает и выполняет изменения. Но на фронте старая информация. Если зайти в карточку и нажать СОХРАНИТЬ, то изменения появляются. причем в админке в карточке есть эти изменения.
public static function UpdateProduct($arItem){
$el = new CIBlockElement;
$el->Update($arItem['PRODUCT_ID'],['TIMESTAMP_X'=>date('d.m.Y H:i:s'),'NAME'=>$arItem['PRODUCT_NAME'],'ACTIVE'=>'Y','MODIFIED_BY'=>3]);
}
Yuriy, значит нужно придерживаться такой конструкции, чтобы массив параметров был отдельно, т.е. в Update передаётся два параметра ID и массив параметров.
$el->Update($catElement['ID'], $arLoadProductArray);
Yuriy, я же привёл пример выше, возьмите сделайте один в один как указано в примере в документации. Никогда никаких проблем с обновлением элементов не было, я делал всегда как там.
Ярослав Александров, да делал так уже ерунда это всё не помогает не в этом дело
вот с документации взял кусок, вставил, он обновил название в базе, на фронте старое хоть чисти кеш хоть нет... помогает только пересохранение в ручном режиме карточки
$el = new CIBlockElement;
$arLoadProductArray = Array(
"MODIFIED_BY" => 3, // элемент изменен текущим пользователем
"NAME" => $arData['PRODUCT_NAME'],
"ACTIVE" => "Y", // активен
);
$PRODUCT_ID = $arData['PRODUCT_ID']; // изменяем элемент с кодом (ID) 2
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);