В шаблоне письма, отправляемого Битрикс после создания заказа, есть многие переменные, которых нет в шаблонах писем о смене статуса заказа, например, имя покупателя. Исправить это, а также добавить другие нужные поля, можно несколькими строками кода.
Для модификации полей почтового шаблона используем событие OnOrderStatusSendEmail модуля sale.
Допустим, нам нужны поля с суммой заказа и именем покупателя, добавляем в init.php:
AddEventHandler("sale", "OnOrderStatusSendEmail", "MyOnOrderStatusSendEmail");
function MyOnOrderStatusSendEmail($ID, &$eventName, &$arFields, $val)
{
CModule::IncludeModule("sale");
$arOrder = CSaleOrder::GetByID($ID);
// сумма заказа
$arFields["PRICE"] = $arOrder["PRICE"];
// имя покупателя
$dbProps = CSaleOrderProps::GetList(
array("SORT" => "ASC"),
array(
"PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"],
"IS_PAYER" => "Y"
)
);
if ($arProps = $dbProps->Fetch()) {
$dbVals = CSaleOrderPropsValue::GetList(
array("SORT" => "ASC"),
array(
"ORDER_ID" => $aFields['ORDER_ID'],
"ORDER_PROPS_ID" => $arProps["ID"]
)
);
if ($arVals = $dbVals->Fetch()) {
$arFields["ORDER_USER"] = $arVals["VALUE"];
}
}
// и любые другие поля заносим в $arFields...
}
Получаем в почтовом шаблоне две новых переменных #PRICE# и #ORDER_USER#.