если текущего пользователя то это
выведешь параметры и посмотришь какой нужен
выведешь параметры и посмотришь какой нужен
|
вот этот код работает однако
специально указад все параметры как в init.php без CurrencyFormat тоже работало только не в init.php |
|||
|
|
|
|
Цены указаны
я немного поправил
так работает но только на простой странице, по обработчику в файле init.php не работает
|
|||||
|
|
|
|
не работает даже такой код на обычной странице(не init.php)
здесь то что не так? |
|||
|
|
|
|
вот сообщения которые выводил
|
|||||
|
|
|
|
|||
|
|
|
|
инфоблок является торговым каталогом
вот код
|
|||
|
|
|
|
логи которых не видно
|
|||||
|
|
|
|
$price_new=$price-$price*$DISCOUNT/100;
$arFields2 = Array( "PRODUCT_ID" => intval($arFields["ID"]), "CATALOG_GROUP_ID" => 11, "PRICE" => intval($price_new), "CURRENCY" => "RUB", "CAN_BUY" => "Y", "CAN_ACCESS" => "Y" ); $res = CPrice::GetList( array(), array( "PRODUCT_ID" => intval($arFields["ID"]), "CATALOG_GROUP_ID" => 11, ) ); if ($arr = $res->Fetch()) { CPrice::Update(intval($arr["ID"]), $arFields2); if($arFields["RESULT"]) AddMessage2Log("1Запись с кодом ".$arFields["ID"]." изменена."." || Скидка=".$DISCOUNT." Цена=".$price." Новая цена=".$price_new); else AddMessage2Log("1Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].")."); } else { $q=CPrice::Add($arFields2); $arPrice = CPrice::GetByID(11); if($arFields["RESULT"]) AddMessage2Log("2Запись с кодом ".$arFields["ID"]." изменена."." || Скидка=".$DISCOUNT." Цена=".$price." Новая цена=".intval($price_new)." q=".$q." тип цены=".$arr["CATALOG_GROUP_NAME"]); else AddMessage2Log("2Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].")."); } } } } } выводил логи и смотрел все нормально старый лог 2012-02-27 19:32:19 - - 2Запись с кодом 406932 изменена. || Скидка=10 Цена=964 Новая цена=867 IBLOCK=49 ID=406932 q=17541806 MyClass2::OnAfterIBlockElementUpdateHandler < call_user_func_array < ExecuteModuleEventEx новый лог 2012-02-28 08:15:52 - - 2Запись с кодом 406932 изменена. || Скидка=10 Цена=964 Новая цена=867 q=17543330 тип цены= MyClass2::OnAfterIBlockElementUpdateHandler < call_user_func_array < ExecuteModuleEventEx В чем может быть причина? |
|
|
|
|
|
Написал обработчик но цена не приходит
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyClass2", "OnAfterIBlockElementUpdateHandler")); class MyClass2 { // создаем обработчик события "OnAfterIBlockElementUpdate" function OnAfterIBlockElementUpdateHandler(&$arFields) { if (intval($arFields["IBLOCK_ID"]) == 49) { if (CModule::IncludeModule("catalog") && CCatalog::GetByID($arFields["IBLOCK_ID"])) { $db_props = CIBlockElement::GetProperty(49, intval($arFields["ID"]), array("sort" => "asc"), Array("CODE"=>"DISCOUNT")); if($ar_props = $db_props->Fetch()) $DISCOUNT = intval($ar_props["VALUE"]); echo "<script type='text/javascript'>alert '".$DISCOUNT."'; </script>"; $db_res = CPrice::GetList( array(), array( "PRODUCT_ID" => intval($arFields["ID"]), "CATALOG_GROUP_ID" => 9, ) ); if ($ar_res2 = $db_res->Fetch()) { $price=intval($ar_res2["PRICE"]); } |
|
|
|
|