Пост для истории, обнаружил сейчас что в драфте много лет лежит пост. Решил что раз он начал писаться, то достоин появиться, пусть даже спустя много лет :)
Событие OnSaleStatusOrder уже deprecated в продакшне не применять)
Смотрю на кусок кода и думаю ... как же ужасно выглядит сочетание UpperCamelCase и underscore и зачем я это сотворил :)
----------------
Недавно делал реализацию под битрикс функционала 100 рублей за друга
AddEventHandler("sale", "OnSaleStatusOrder", Array("check_sale_status_aff", "OnSaleStatusOrder_aff"));
class check_sale_status_aff
{
function OnSaleStatusOrder_aff($ID, $val)
{
// Код статуса заказа P = оплачен, F = отправлен, N = принят
if ($val == "P")
{
// Получаем параметры заказа
$arOrder = CSaleOrder::GetByID($ID);
$AFFILIATE_ID = $arOrder["AFFILIATE_ID"];
$PRICE = $arOrder["PRICE"];
//ПРОВЕРЯЕМ ЧТО СУММА ЗАКАЗА БОЛЬШЕ 500 рублей
//ПРОВЕРЯЕМ К КАКОМУ АФФИЛЕЙТУ ОТНОСИТСЯ ЗАКАЗ
//ПРОВЕРЯЕМ НАЧИСЛЯЛИ ЛИ ЗА ЭТОГО ПОЛЬЗОВАТЕЛЯ УЖЕ БОНУС
//НАЧИСЛЯЕМ БОНУС
$arFilter = Array("ID" => $arOrder["AFFILIATE_ID"]);
$rsUser = CSaleAffiliate::GetList(array(), $arFilter, false, false, array("USER_ID"));
$arUser = $rsUser->Fetch();
$aff_userid=$arUser["USER_ID"];
$arFilter = Array("USER_ID" => $arUser["USER_ID"], "DEBIT" => "Y", "AMOUNT" => "100");
$rsTran = CSaleUserTransact::GetList(array(), $arFilter, false, false, array());
$exist = $rsTran->GetNext();
if (!isset($exist['USER_ID'])AND $PRICE>=500 AND $aff_userid>0){
CSaleUserAccount::UpdateAccount($aff_userid,100 ,$arOrder['CURRENCY'], "Бонус за друга ID=".$arOrder['USER_ID'].", Заказ №=".$ID, $ID);
}
}
}
}
Событие OnSaleStatusOrder уже deprecated в продакшне не применять)
Смотрю на кусок кода и думаю ... как же ужасно выглядит сочетание UpperCamelCase и underscore и зачем я это сотворил :)
----------------
Недавно делал реализацию под битрикс функционала 100 рублей за друга
AddEventHandler("sale", "OnSaleStatusOrder", Array("check_sale_status_aff", "OnSaleStatusOrder_aff"));
class check_sale_status_aff
{
function OnSaleStatusOrder_aff($ID, $val)
{
// Код статуса заказа P = оплачен, F = отправлен, N = принят
if ($val == "P")
{
// Получаем параметры заказа
$arOrder = CSaleOrder::GetByID($ID);
$AFFILIATE_ID = $arOrder["AFFILIATE_ID"];
$PRICE = $arOrder["PRICE"];
//ПРОВЕРЯЕМ ЧТО СУММА ЗАКАЗА БОЛЬШЕ 500 рублей
//ПРОВЕРЯЕМ К КАКОМУ АФФИЛЕЙТУ ОТНОСИТСЯ ЗАКАЗ
//ПРОВЕРЯЕМ НАЧИСЛЯЛИ ЛИ ЗА ЭТОГО ПОЛЬЗОВАТЕЛЯ УЖЕ БОНУС
//НАЧИСЛЯЕМ БОНУС
$arFilter = Array("ID" => $arOrder["AFFILIATE_ID"]);
$rsUser = CSaleAffiliate::GetList(array(), $arFilter, false, false, array("USER_ID"));
$arUser = $rsUser->Fetch();
$aff_userid=$arUser["USER_ID"];
$arFilter = Array("USER_ID" => $arUser["USER_ID"], "DEBIT" => "Y", "AMOUNT" => "100");
$rsTran = CSaleUserTransact::GetList(array(), $arFilter, false, false, array());
$exist = $rsTran->GetNext();
if (!isset($exist['USER_ID'])AND $PRICE>=500 AND $aff_userid>0){
CSaleUserAccount::UpdateAccount($aff_userid,100 ,$arOrder['CURRENCY'], "Бонус за друга ID=".$arOrder['USER_ID'].", Заказ №=".$ID, $ID);
}
}
}
}
