Кастомизация письма о новом заказе на сайте в Битрикс

Довольно типичная задача, но у многих программистов вызывает недоумение: как в письмо, которое отправляется владельцу сайта, когда создаётся новый заказ, добавить дополнительные данные из свойств этого заказа?

Оказывается всё просто! Достаточно использовать этот обработчик:

OnOrderNewSendEmail

Пример реализации:

Добавляем этот код в init.php:

AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
	$additional_information = '';
	$arOrder = CSaleOrder::GetByID($orderID);
	$order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
	while ($arProps = $order_props->Fetch()){
		//имя
		if ($arProps['ORDER_PROPS_ID']==1){
			$additional_information.='Имя: '.$arProps['VALUE'].'<br>';
		}
		//e-mail
		if ($arProps['ORDER_PROPS_ID']==2){
			$additional_information.='E-mail: '.$arProps['VALUE'].'<br>';
		}
		//контактный телефон
		if ($arProps['ORDER_PROPS_ID']==3){
			$additional_information.='Контактный телефон: '.$arProps['VALUE'].'<br>';
		}
		//желаемая дата и время доставки
		if ($arProps['ORDER_PROPS_ID']==20){
			$additional_information.='Желаемая дата и время доставки: '.$arProps['VALUE'].'<br>';
		}
		//Комментарий к заказу
		if ($arProps['ORDER_PROPS_ID']==23){
			$additional_information.='Комментарий к заказу: '.$arProps['VALUE'].'<br>';
		}
		//Район доставки
		if ($arProps['ORDER_PROPS_ID']==22){
			$additional_information.='Район доставки: '.$arProps['VALUE'].'<br>';
		}
		//Этаж
		if ($arProps['ORDER_PROPS_ID']==25){
			$additional_information.='Этаж: '.$arProps['VALUE'].'<br>';
		}
		//Лифт
		if ($arProps['ORDER_PROPS_ID']==26){
			$additional_information.='Лифт: '.$arProps['VALUE'].'<br>';
		}
		//Улица
		if ($arProps['ORDER_PROPS_ID']==27){
			$additional_information.='Улица: '.$arProps['VALUE'].'<br>';
		}
		//Дом, корпус, квартира (офис)
		if ($arProps['ORDER_PROPS_ID']==7){
			$additional_information.='Дом, корпус, квартира (офис): '.$arProps['VALUE'].'<br>';
		}
	}
	$arFields["ADDITIONAL_INFORMATION"] = $additional_information;
}

В шаблоне письма для вывода данных юзаем #ADDITIONAL_INFORMATION#

Профит!