Перехват отправки письма при оформлении заказа в Битрикс
Последние записи
Нередко передо мной ставится задача добавить или обновить данные отправляемые компонентом sale.order.ajax письмом клиенту при формировании нового заказа.
AddEventHandler("sale", "OnOrderNewSendEmail", Array("OnOrderNewSendEmailClass", "OnOrderNewSendEmailModify"));
class OnOrderNewSendEmailClass
{
function OnOrderNewSendEmailModify($orderID, &$eventName, &$arFields)
{
if(CModule::IncludeModule("sale") && CModule::IncludeModule("iblock"))
{
//Добавляем в переменную шаблона письма новые данные
$arFields["SOME_ADDITIONAL_VARIABLE"] = $newData;
//Работать с данными заказа можете с помощью переменной $orderID
//Например вы можете получить состав корзины и вывести названия оформленных товаров в письмо пользователю
$items = CSaleBasket::GetList(array("NAME" => "DESC"), array("ORDER_ID" => $orderID), false, false, array("*"));
$temp = '';
while ($item = $items->Fetch()){
$temp .= 'Название: '.$item['NAME'].' ('.$item['QUANTITY'].') /r/n/';
}
//Заполняем новые переменные с названием и количеством товара
$arFields["ORDER_ITEMS"] = $temp;
//Так же вы можете получить состав заказа и разнести его по переменным почтового шаблона
//$order = CSaleOrder::GetByID($orderID); //Получение состава заказа
$props = CSaleOrderPropsValue::GetOrderProps($orderID);//Получаем свойства заказа
//Посмотреть ID свойства вы можете в настройках магазина, на странице "Список свойств"
//Данная страница находится по адресу Магазин -> Настройки -> Свойства заказа -> Список свойств
$temp = '';
while ($prop = $props->Fetch()){
if ($prop['ORDER_PROPS_ID']==$id){//где $id это id свойства на указанной странице
$temp.='Новое свойство: '.$prop['VALUE'];
}
}
$arFields["ORDER_PROPS"] = $temp;
}
}
}
Комментарии