Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номер телефона заказчика в почтовый шаблон SALE_NEW_ORDER, так как иначе он не очень информативен для менеджеров- приходится заходить в админку сайта и смотреть свойства заказа. Но всегда можно передать данные свойства напрямую в почтовое событие Битрикс. Правда для этого придется вынести компанент который передает параметры почтовых событий в собственное пространство имен.
Добавление ФИО, номера телефона клиента и общий вес заказанных товаров в почтовое событие
Для начала копируем системный компанент sale.order.ajax в сосбственное пространство имен. Для этого создаем свою папку в /bitrix/components/ например bazarow. И копируем всю папку /bitrix/components/sale.order.ajax в bazarow
Открываем файл component.php и примерно на 1946 ой строке находим параметры которые передаются в почтовое событие
Добавляем сюда строчки для вызова веса товара, и свойств заказа ФИО и Номер телефона
"PHONE" => $arUserResult["ORDER_PROP"][3], //ID свойства заказа из настроек Магазин->Свойство заказа, "FIO" => $arUserResult["ORDER_PROP"][1], //ID свойства заказа из настроек Магазин->Свойство заказа, "ORDER_WEIGHT" => $arResult["ORDER_WEIGHT"],
Целиком должно получиться примерно так:
$arFields = Array( "ORDER_ID" => $arOrder["ACCOUNT_NUMBER"], "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))), "ORDER_USER" => ( (strlen($arUserResult["PAYER_NAME"]) > 0) ? $arUserResult["PAYER_NAME"] : $USER->GetFormattedName(false)), "PRICE" => SaleFormatCurrency($orderTotalSum, $arResult["BASE_LANG_CURRENCY"]), "PHONE" => $arUserResult["ORDER_PROP"][3], "FIO" => $arUserResult["ORDER_PROP"][1], "ORDER_WEIGHT" => $arResult["ORDER_WEIGHT"], "BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME), "EMAIL" => (strlen($arUserResult["USER_EMAIL"])>0 ? $arUserResult["USER_EMAIL"] : $USER->GetEmail()), "ORDER_LIST" => $strOrderList, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME), "DELIVERY_PRICE" => $arResult["DELIVERY_PRICE"], );
В публичной части сайта выводим наш новый компонент, подключаем к нему шаблон и в почтовое событие "Новый заказ на сайте", в нужном месте вставляем переменные "PHONE" "FIO" и "ORDER_WEIGHT"
Наслаждаемся результатом