Добавление переменных в почтовый шаблон новый заказ

Пример реализации , ниже скрипт вставляемый в битрикс в init.php

После чего в шаблон можно будет вставить следующие ДОПОЛНИТЕЛЬНЫЕ переменные:

Способ оплаты: #PAY_SYSTEM_NAME# <br>
Способ доставки: #DELIVERY_NAME# <br>
Адрес доставки: #FULL_ADDRESS# <br>
Сумма доставки: #DELIVERY_PRICE# руб.<br>

Данный код для тех у кого есть доп. переменные для указания времени доставки ОТ и ДО
DELIVERY_PERIOD_FROM
DELIVERY_PERIOD_TO

Общая сумма заказа есть по умолчанию и уже включает цену доставки.

AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");

//-- Собственно обработчик события

function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
    $arOrder = CSaleOrder::GetByID($orderID);

    //-- получаем телефоны и адрес
    $order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
    $phone="";
    $index = "";
    $country_name = "";
    $city_name = "";
    $address = "";
    while ($arProps = $order_props->Fetch())
    {
        if ($arProps["CODE"] == "PHONE")
        {
            $phone = htmlspecialchars($arProps["VALUE"]);
        }
        if ($arProps["CODE"] == "LOCATION")
        {
            $arLocs = CSaleLocation::GetByID($arProps["VALUE"]);
            $country_name =  $arLocs["COUNTRY_NAME_ORIG"];
            $city_name = $arLocs["CITY_NAME_ORIG"];
        }

        if ($arProps["CODE"] == "INDEX")
        {
            $index = $arProps["VALUE"];
        }

        if ($arProps["CODE"] == "ADDRESS")
        {
            $address = $arProps["VALUE"];

        }
    }

    $full_address = $index.", ".$country_name." ".$city_name.", ".$address;

    //-- получаем название службы доставки
    $arDeliv = CSaleDelivery::GetByID($arOrder["DELIVERY_ID"]);
    $delivery_name = "";
    if ($arDeliv)
    {
        $delivery_name = $arDeliv["NAME"];
    }

    //-- генерируем срок доставки
    $delivery_period_type = "";

    switch ($arDeliv["PERIOD_TYPE"]) {
        case "D":
            $delivery_period_type = "дней";
            break;
        case "H":
            $delivery_period_type = "часов";
            break;
        case "M":
            $delivery_period_type = "месяцев";
            break;
    }

    //-- получаем название платежной системы
    $arPaySystem = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"]);
    $pay_system_name = "";
    if ($arPaySystem)
    {
        $pay_system_name = $arPaySystem["NAME"];
    }

    //-- добавляем новые поля в массив результатов
    $arFields["ORDER_DESCRIPTION"] = $arOrder["USER_DESCRIPTION"];
    $arFields["PHONE"] =  $phone;

    // Проверка на пустое поле (для заказ в 1 клик), что бы запускался неактивный шаблон
    if($arFields["PHONE"] == false) {
$eventName = 'SALE_NEW_ORDER_COPY';
}


$arFields["DELIVERY_NAME"] = $delivery_name;
$arFields["DELIVERY_PRICE"] = $arOrder["PRICE_DELIVERY"];
$arFields["DELIVERY_PERIOD_TYPE"] = $delivery_period_type;
$arFields["DELIVERY_PERIOD_FROM"] = $arDeliv["PERIOD_FROM"];
$arFields["DELIVERY_PERIOD_TO"] = $arDeliv["PERIOD_TO"];

$arFields["FULL_ADDRESS"] = $full_address;
$arFields["PAY_SYSTEM_NAME"] = $pay_system_name;
}


Загрузка комментариев...