Назад

Как добавить все поля заказа в почтовое событие Битрикс

Главная
Блог
Как добавить все поля заказа в почтовое событие Битрикс

Проблема

По умолчанию в стандартных email-уведомлениях Битрикс выводятся не все поля заказа. Если нужно отправить клиенту или менеджеру полную информацию, включая все заполненные свойства и способ оплаты, потребуется доработать код.

Решение

Добавим обработчик события OnOrderNewSendEmail, который соберет все данные заказа и передаст их в письмо.

Как это работает?

  1. Получаем все свойства заказа через CSaleOrderPropsValue::GetOrderProps().

  2. Форматируем их в строку, пропуская пустые значения.

  3. Добавляем способ оплаты из CSalePaySystem.

  4. Передаем данные в переменную ALL_PROPS, которую можно использовать в почтовом шаблоне.

Готовый код

<?
AddEventHandler("sale", "OnOrderNewSendEmail", "addAllOrderFieldsToEmail");

function addAllOrderFieldsToEmail($orderID, &$eventName, &$arFields) 
{
    // Получаем свойства заказа
    $dbOrderProps = CSaleOrderPropsValue::GetOrderProps($orderID);
    $formattedProps = '';
    
    // Формируем строку с заполненными свойствами
    while ($arProp = $dbOrderProps->Fetch()) {
        if (!empty($arProp['VALUE'])) {
            // Для свойства с ID=12 заменяем значение на "да"
            $value = ($arProp['ORDER_PROPS_ID'] == 12) ? 'да' : $arProp['VALUE'];
            $formattedProps .= "{$arProp['NAME']}: {$value}\n";
        }
    }
    
    // Добавляем способ оплаты
    if ($arOrder = CSaleOrder::GetByID($orderID)) {
        if ($arPayment = CSalePaySystem::GetByID($arOrder['PAY_SYSTEM_ID'])) {
            $formattedProps .= "Способ оплаты: {$arPayment['PSA_NAME']}\n";
        }
    }
    
    // Передаем данные в письмо
    $arFields["ALL_PROPS"] = $formattedProps;
}
?>

Как использовать?

  1. Вставьте код в файл /bitrix/php_interface/init.php (если его нет — создайте).

  2. В почтовом шаблоне добавьте переменную #ALL_PROPS#, куда подставятся все свойства.

Вывод

Этот код автоматически добавит в письмо все заполненные поля заказа, включая способ оплаты. Решение особенно полезно для интернет-магазинов, где важно передавать клиенту полную информацию о заказе.

Нужна доработка?

  • Если требуется изменить формат вывода, отредактируйте строку $formattedProps.

  • Для выборочного отключения некоторых полей добавьте проверку ORDER_PROPS_ID.

Теперь ваши email-уведомления в Битрикс будут содержать всю необходимую информацию!

Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи