Anumik
@Anumik

Как автоматически изменять цену при изменении/загрузке товара в 1с-битрикс?

Доброго времени суток
Необходимо при импорте товаров из 1С в 1с-битрикс перезаписывать цену примерно так: $arFields['PRICE']=$arFields['PRICE']/100*110;, в init.php закинул событие (подобное нашел на форуме),
<?
AddEventHandler("catalog", "OnBeforePriceUpdate", array("MyClass", "OnBeforePriceUpdateHandler"));

class MyClass
{
   function OnBeforePriceUpdateHandler($PRICE_ID, $arFields)
   {
      $db_price = CPrice::GetList(
         array(),
         array(
            "ID" => $PRICE_ID
         )
      );

      if($ar_price = $db_price->Fetch())
      {
         if($ar_price['PRICE'] != $arFields['PRICE'])
         {
            $arFields['PRICE']=$arFields['PRICE']/100*110;
         }
      }
   }
}

но не цена не изменяется. Программировать начал недавно, может кто нибудь сможет помочь новичку?
  • Вопрос задан
  • 842 просмотра
Пригласить эксперта
Ответы на вопрос 1
Читайте документацию, вы используете
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("MyClass", "OnBeforeIBlockElementUpdateHandler"));
Во первых выв используете OnBeforeIBlockElementUpdate, в данном событии нету вроде нету поля PRICE, во вотрых
вы передаете Array("MyClass", "OnBeforeIBlockElementUpdateHandler"));
В вашем классе у вас нету такой функции, у вас OnBeforePriceUpdateHandler
Ссылка по теме
dev.1c-bitrix.ru/support/forum/forum6/topic47042
Ответ написан
Ваш ответ на вопрос

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

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