На самом деле простая задача, решается через события системы. Вот, например, я вставлял в шаблон письма переменную с номером почтового отправления (номер документа об отправке в заказе)
[CODE]AddEventHandler("main", "OnBeforeEventAdd", "OnSaleDeliveryOrderSendEmail");
function OnSaleDeliveryOrderSendEmail (&$event, &$lid, &$arFields, &$message_id) {
if ($event=="SALE_ORDER_DELIVERY") {
if ($arFields['ORDER_ID']>0) {
$order = CSaleOrder::GetByID($arFields['ORDER_ID']);
if ($order['DELIVERY_DOC_NUM']) {
$arFields['DELIVERY_DOC_NUM'] = "Номер почтового отправления: ".$order['DELIVERY_DOC_NUM'];
$arFields['TRACKING_LINK'] = "Отслеживание отправления: http://supersite.ru/tracking/?id=".$order['DELIVERY_DOC_NUM'];
}
}
}
}
[/CODE]
Поясню по поводу кода. $event - это ID (тип) почтового события, в моем случае это событие разрешения доставки, при котором отправляется почтовое событие типа SALE_ORDER_DELIVERY. $arFields - это, собственно, переменные шаблона письма, вы можете с ними манипулировать, как хотите, я в своем примере добавляю 2 новых поля DELIVERY_DOC_NUM и TRACKING_LINK . Ну и в почтовом шаблоне добавляю поля для отображения этих переменных #DELIVERY_DOC_NUM# и #TRACKING_LINK# соответственно. Хотя по смыслу вообще используется одно, просто сделал заказчику на выбор.
Тоже самое и с любыми другими событиями, в вашем случае тип = SALE_NEW_ORDER, в функции по ID заказа получаете все необходимые поля заказа и создаете свои переменные для почтового шаблона.
Весь код, естественно, задвинуть в /bitrix/php_interface/init.php или куда-то, что будет работать всегда или для данного события, например, свой модуль.
[CODE]AddEventHandler("main", "OnBeforeEventAdd", "OnSaleDeliveryOrderSendEmail");
function OnSaleDeliveryOrderSendEmail (&$event, &$lid, &$arFields, &$message_id) {
if ($event=="SALE_ORDER_DELIVERY") {
if ($arFields['ORDER_ID']>0) {
$order = CSaleOrder::GetByID($arFields['ORDER_ID']);
if ($order['DELIVERY_DOC_NUM']) {
$arFields['DELIVERY_DOC_NUM'] = "Номер почтового отправления: ".$order['DELIVERY_DOC_NUM'];
$arFields['TRACKING_LINK'] = "Отслеживание отправления: http://supersite.ru/tracking/?id=".$order['DELIVERY_DOC_NUM'];
}
}
}
}
[/CODE]
Поясню по поводу кода. $event - это ID (тип) почтового события, в моем случае это событие разрешения доставки, при котором отправляется почтовое событие типа SALE_ORDER_DELIVERY. $arFields - это, собственно, переменные шаблона письма, вы можете с ними манипулировать, как хотите, я в своем примере добавляю 2 новых поля DELIVERY_DOC_NUM и TRACKING_LINK . Ну и в почтовом шаблоне добавляю поля для отображения этих переменных #DELIVERY_DOC_NUM# и #TRACKING_LINK# соответственно. Хотя по смыслу вообще используется одно, просто сделал заказчику на выбор.
Тоже самое и с любыми другими событиями, в вашем случае тип = SALE_NEW_ORDER, в функции по ID заказа получаете все необходимые поля заказа и создаете свои переменные для почтового шаблона.
Весь код, естественно, задвинуть в /bitrix/php_interface/init.php или куда-то, что будет работать всегда или для данного события, например, свой модуль.