Довольно типичная задача, но у многих программистов вызывает недоумение: как в письмо, которое отправляется владельцу сайта, когда создаётся новый заказ, добавить дополнительные данные из свойств этого заказа?
Оказывается всё просто! Достаточно использовать этот обработчик:
Пример реализации:
Добавляем этот код в 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#
Профит!