
Задача: Добавить эти поля в письмо пользователю + Добавить почтовое событие, чтобы менеджеру магазина так же приходила нужная информация о заказе.
Оформление заказа в Битриксе - добавляем свои поля
1) Есть форма заказа в корзине, к которой нужно прикрепить дополнительные поля: [файл] и [номер телефона]:
Заходим в Магазин - Настройки - Свойства заказа - Список свойств и добавляем нужные нам:
Форма оформления заказа на сайте теперь выглядит так:
2) Заходим в local/php_interface/init.php и прописываем обработчик:
<?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']==14){
$additional_information.='<br><br><b>Контактный телефон:</b> '.$arProps['VALUE'];
} if ($arProps['ORDER_PROPS_ID']==20){
$img_path = '<a href="' . CFile::GetPath($arProps['VALUE']) . '" target="_blank">Скачать реквизиты</a>';
$additional_information.='<br><b>Реквизиты компании:</b> '.$img_path;
}
}
$arFields["ADD_INFORMATION"] = $additional_information;
}
В нашем случае показано, как находим тип "Строка" и тип "Файл".
Теперь данные нужно внести в почтовый шаблон, для этого заходим в Настройки - Настройки продукта - Почтовые и СМС события - Почтовые шаблоны.
Выбираем [SALE_NEW_ORDER] и в тело письма вставляем #ADD_INFORMATION#:
Сохраняем и получаем результат:
Спасибо Михаилу Базарову за исходный код обработчика :)