Добавление списка заказа в письмо перед отправкой в Битрикс

В одной задаче нужно было добавить список заказа в письмо, которое приходило клиенту после смены статуса заказа. Решением было использовать OnBeforeEventAdd вызывается в момент добавления почтового события в таблицу b_event, код пишем в init.php
logo
logo
PHP
AddEventHandler("main", "OnBeforeEventAdd", array("modEvent", "saleStatusChangedOw"));
class modEvent
{
    function saleStatusChangedOw(&$event, &$lid, &$arFields)
    {
        //Проверяем код почтового события
        if($event == "SALE_STATUS_CHANGED_OW")
        {
            //Подключаем модули
            CModule::IncludeModule("sale");
            CModule::IncludeModule("iblock");

            $strOrderList = "";
            $sum = 0;
            $currency = "";

           //Делаем выборку заказа
            $dbBasketItems = CSaleBasket::GetList(
                array("NAME" => "ASC"),
                array("ORDER_ID" => $arFields["ORDER_ID"]),
                false,
                false,
                array("PRODUCT_ID", "ID", "NAME", "QUANTITY", "PRICE", "CURRENCY")
            );

            //Формируем список заказа
            while($arProps = $dbBasketItems->Fetch())
            {
                $priceFormat = CCurrencyLang::CurrencyFormat($arProps['PRICE'], $arProps['CURRENCY']);
                $strOrderList .= $arProps['NAME']." - ".$arProps['QUANTITY']." шт"." x ".$priceFormat."<br>";
                $sum += $arProps['QUANTITY'] * $arProps['PRICE'];
                $currency = $arProps['CURRENCY'];
            }

            //Добавляем полученные данные в переменные, которые предварительно были прописаны в шаблоне письма
            $sumFormat = CCurrencyLang::CurrencyFormat($sum, $currency);
            $arFields["ORDER_LIST"] = $strOrderList;
            $arFields["PRICE"] = $sumFormat;
        }
    }
}

Спасибо! Заявка успешно отправлена, мы с Вами свяжемся в ближайшее время!