Классы и функции

CGrain_Fastorder::CanBuyAll

Возвращает true при возможности покупки (при наличии на складе или если параметр товара "Разрешить покупку при отсутствии товара" имеет значение "нет") всех товаров, указанных в параметре $arProductID, в противном случае возвращает false. В параметре $arQuantity содержаться необходимое количество товаров для заказа, тогда функция вернет true, только если на складе присутствуют все товары в заданном количестве.

Параметры функции:
  • $arProductID - массив идентификаторов товаров
  • $arQuantity - массив, содержащий необходимое количество каждого товара соответственно, по умолчанию false - только одна единица каждого товара

События

Событие OnOrderNewSendEmail

Вызывается перед отправкой письма о новом заказе. Если обработчик события вернет false, то письмо не будет отправлено.

Параметры:
  • $ORDER_ID - ID созданного заказа
  • &$eventName - код почтового события (значение данной переменной можно изменять, по умолчанию "SALE_NEW_ORDER")
  • &$arFields - массив полей почтового события (значение данной переменной можно изменять)

Пример использования:

AddEventHandler("grain.fastorder""OnOrderNewSendEmail""OnOrderNewSendEmailHandler");


function 
OnOrderNewSendEmailHandler($ID,&$eventName,&$arFields){

    
// дублируем письмо о новом заказе на E-mail менеджера из свойства пользователя UF_EMAIL_MANAGER

    
if($GLOBALS["USER"]->IsAuthorized()) {

        
$USER_ID=$GLOBALS["USER"]->GetID();
        
$rsUser CUser::GetByID($USER_ID);
        
$arUser $rsUser->Fetch();
        
$MANAGER_EMAIL $arUser["UF_EMAIL_MANAGER"];
    
        if(
$MANAGER_EMAIL) {
            if(
array_key_exists("BCC",$arFields) && strlen($arFields["BCC"])>0)
                
$arFields["BCC"] .= ",".$MANAGER_EMAIL;
            else
                
$arFields["BCC"] = $MANAGER_EMAIL;
        }
    
    }
    
}
Примечание: данное событие полностью повторяет подобное из стандартных компонентов заказа.

Событие OnComponentOrderComplete

Вызывается после создания заказа и привязки к нему товаров.

Параметры:
  • $ORDER_ID - ID созданного заказа
  • $arOrder - массив параметров заказа
  • $arParams - массив параметров компонента "grain:fastorder"

Пример подключения обработчика события:

AddEventHandler("grain.fastorder""OnComponentOrderComplete""OnComponentOrderCompleteHandler");


function 
OnComponentOrderCompleteHandler($ORDER_ID,$arOrder,$arParams) {

    
// Устанавливаем значение свойства заказа с кодом 12

    
$VALUE "значение свойства";

    
$arOrderProp CSaleOrderProps::GetByID(12); // получаем параметры свойства заказа

    
if($arOrderProp) {

        
$dbOrderPropsValue CSaleOrderPropsValue::GetList(
            array(),
            array(
                 
"ORDER_ID" => $ORDER_ID,
                
"ORDER_PROPS_ID" => $arOrderProp["ID"]
            )
        );
        
        if (
$arOrderPropsValue $dbOrderPropsValue->Fetch())
        {
        
            
// если значение свойства уже добавлено к заказу, обновляем его
        
            
CSaleOrderPropsValue::Update($arOrderPropsValue["ID"], array("VALUE"=>$VALUE));

        } else {
        
            
// если значение свойства не было добавлено ранее, добавляем
        
            
$arFields = array(
                
"ORDER_ID" => $ORDER_ID,
                
"ORDER_PROPS_ID" => $arOrderProp["ID"],
                
"NAME" => $arOrderProp["NAME"],
                
"CODE" => $arOrderProp["CODE"],
                
"VALUE" => $VALUE,
            );

            
CSaleOrderPropsValue::Add($arFields); // Сохраняем значение свойства заказа

        
}

    }

}