Юрий Шубин, если у вас получится с component_epilog.php, расскажите об этом.
А я расскажу, как у нас получилось с событиями. Я лишь руководил процессом, а код писал другой человек, поэтому в нем могут быть неточности.
Мы перепробовали кучу событий модуля sale и со всеми были проблемы: то они не вызываются в нужном компоненте, то они вызываются слишком рано. В итоге, я вспомнил, что мы тут пытаемся почту обработать, поэтому мы обратились к событию 'OnBeforeEventAdd', которое вызывается перед отправкой почты.
Дельше все просто. Пишем обработчик события:
[CODE]
static function sendOrderMessage($arEvent, &$event, &$lid, &$arFields)
{
if ($arEvent == "SALE_NEW_ORDER")
{
$orderId = $lid['ORDER_ID'];
$result = CSaleOrderPropsValue::GetList(array(),array('ORDER_ID' => $orderId,'CODE' => 'phone'));
$arProps = array();
while ($arProp = $result->Fetch())
{
$arProps[] = $arProp;
}
$phone = $arProps[0]['VALUE'];
$arFields['PHONE'] = $phone;
$lid['PHONE'] = $phone;
}
}
AddEventHandler('main', 'OnBeforeEventAdd', array('myEvents', 'sendOrderMessage'));
[/CODE]
Здесь мы получили свойство с кодом phone и добавили его к полям почтового события.
Теперь добавляем наше свойство к типу почтового события 'SALE_NEW_ORDER':
[CODE]
#ORDER_ID# - код заказа
#ORDER_DATE# - дата заказа
#ORDER_USER# - заказчик
#PRICE# - сумма заказа
#EMAIL# - E-Mail заказчика
#PHONE# - телефон заказчика
#BCC# - E-Mail скрытой копии
#ORDER_LIST# - состав заказа
#SALE_EMAIL# - E-Mail отдела продаж
[/CODE]
И создаём новый шаблон для него:
[CODE]
Информационное сообщение сайта #SITE_NAME#
------------------------------------------
На сайт посутпил новый заказ №#ORDER_ID# от #ORDER_DATE#.
Пользователь: #ORDER_USER#.
Email: #EMAIL#.
Телефон: #PHONE#.
Стоимость заказа: #PRICE#.
Состав заказа:
#ORDER_LIST#
[/CODE]
В поле "кому" указываем #BCC#.
И последний штрих: чтобы почта продажникам не приходила 2 раза, удаляем #BCC# из старого почтового шаблона.
Всё. По-моему, вполне true-bitrix-way'но получилось.