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

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); // Сохраняем значение свойства заказа

		}

	}

}
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru