Выгрузка из 1С на сайт.
Инфоблок является Торговым Каталогом, цены показываются не в отдельном инфоблоке, а прямо тут же. (Инфоблок не имеет торговых предложений)
При создании нового элемента ему задаётся базовая цена. Хочется в зависимости от свойств элемента задавать ещё одну цену.
В обработчике события OnAfterIBlockElementAdd я уже пробовал помещать следующий код:
Код |
---|
function OnAfterIBlockElementAddHandler(&$arFields){
$prFields = array(
"PRODUCT_ID" => $arFields["ID"],
"PRICE" => 100, //тестовая цена
"CATALOG_GROUP_ID" => 3, //Тип доп. цены
"CURRENCY" => "RUB",
);
//на всякий случай проверим, есть ли цена такого типа для данного продукта
$res = CPrice::GetList(
array(),
array(
"PRODUCT_ID" => $arFields["ID"],
"CATALOG_GROUP_ID" => 3
)
);
if ($arr = $res->Fetch()) //если есть, то обновляем её
{
CPrice::Update($arFields["ID"], $prFields);
}
else //иначе задаём
{
CPrice::Add($prFields);
}
}
|
но, если посмотреть в админке, то поле цена пустое.
если же содержимое функции OnAfterIBlockElementAddHandler вызвать где-нибудь в отдельном скрипте для уже созданного продукта, то цена задаётся.