По определенным нуждам оказался нужен вот такой код:
Код |
---|
AddEventHandler("sale", "OnOrderAdd", "DeliveryPriceEdit";
function DeliveryPriceEdit($ID, $arFields)
{
CModule::IncludeModule('sale');
$fp = fopen($_SERVER["DOCUMENT_ROOT"]."/tmp.txt", 'w+');
fwrite($fp, $ID."\n";
fwrite($fp, $arFields."\n";
$result = CSaleOrderPropsValue::GetList(array("SORT" => "ASC", array("ORDER_ID" => $ID, "CODE" => "ADDRESS");
fwrite($fp, print_r($result, true)."\n";
while($elem = $result->GetNext())
{
fwrite($fp, print_r($elem)."\n";
};
} |
Вывод в файл сделана только для проверки. При срабатывании в текстовом файле виден ID, содержимое arFields и 2 пустые строки. result содержит данные о базе и т.д, но
ничего не выдает.
На обычной странице
Код |
---|
$result = CSaleOrderPropsValue::GetList(array("SORT" => "ASC", array("ORDER_ID" => $ID, "CODE" => "ADDRESS"); |
с каким-нибудь существующим ID выдает информацию нормально.
Пытался то же самое проделать с другими событиями, но либо все так же, либо ничего тупо не меняется.
Пробовал через
OnBeforeOrderAdd изменять сумму доставки. В самом массиве данные изменялись, но заказ создавался с первоначальной ценой.
Подскажите что я не так делаю или вообще не то?