Задать вопрос
@Ilya1791

Почему не действует CCatalogProduct::Update при добавлении нового элемента?

Добрый день!

Есть задача: при добавлении нового товара в Битрикс автоматически проставлять его количество.

Мой код:
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("UpdateClass", "OnAfterIBlockElementAddHandler"));
class UpdateClass
{
    
    function OnAfterIBlockElementAddHandler(&$arFields)
    {
        
					$PRODUCT_ID = $arFields['ID'];
                    $arFields = array('ID' => $arFields['ID'], 'QUANTITY' => 1);// количество товара
                    CCatalogProduct::Update($PRODUCT_ID, $arFields);
    }
}


Но количество товара не обновляется. Начал разбираться, в чем дело, в итоге выяснил, что обновление полей не срабатывает для только что созданного элемента. Если в PRODUCT_ID поставить ID другого элемента, все прекрасно работает.
В чем может быть причина?
  • Вопрос задан
  • 1683 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Вы путаете добавление нового товара и нового элемента инфоблока. Это две разные таблицы и разные модули.

Для события "при добавлении товара" Вам нужен обработчик OnProductAdd

А вот здесь можно посмотреть другие возможные события модуля "торговый каталог"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы