Добрый вечер!
Столкнулся с проблемой, при обновлении/добавлении цены в торговое предложение: при выполнении кода метод Add успешно выполняется, и при получении цены getbaseprice после изменения, выдает новую цену, но при этом сама цена остается старой и не меняется(добавляется). код находится в init.php, обработчики
OnPriceAdd, OnPriceUpdate ссылаются на функцию, в которой находится этот код:
AddEventHandler("catalog", "OnPriceAdd", "DoIBlockAfterSave");
AddEventHandler("catalog", "OnPriceUpdate", "DoIBlockAfterSave");
В чем может быть проблема?
Код |
---|
$var = CPrice::GetBasePrice(456568, false, false);
print_r($var["PRICE"]);
echo ' ';
$currPrice = CPrice::GetBasePrice(438966, false, false);
echo 'price 1c ';
print_r($currPrice["PRICE"]);
$PRICE_TYPE_ID = 1;
$arFields2 = Array("PRODUCT_ID" => 456568, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, "PRICE" => $currPrice["PRICE"], "CURRENCY" => "RUB",);
$res_to = CPrice::GetList(array(), array("PRODUCT_ID" => 456568, "CATALOG_GROUP_ID" => $PRICE_TYPE_ID));
if ($arr_to = $res_to->Fetch()) {
echo 'update ';
print_r ($arr_to);
if (CPrice::Update($arr_to["ID"], $arFields2, true))
echo 'update sucess';
} else {
echo ' add ';
print_r ($arr_to);
if (CPrice::Add($arFields2, true))
echo 'add success';
}
echo 'обновленная цена';
$var = CPrice::GetBasePrice(456568, false, false);
print_r($var["PRICE"]); |