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