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

Достаточно часто возникает необходимость добавить какое-то из свойств заказа в письмо менеджеру. Например, у нас была следующая задача.
При оформлении заказа клиент может прикрепить файл с реквизитами для выставления счета. Требуется, чтобы этот файл приходил менеджеру в письме.
Итак, что нужно сделать.

1. Создаем непосредственно свойство заказа (Магазин - Настройки - Свойства заказа - Список свойств). Создаем свойство типа "Файл".

2. Добавляем код в файл init.php
<?
AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
  $arOrder = CSaleOrder::GetByID($orderID);
  $order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
  while ($arProps = $order_props->Fetch()){
    //Реквизиты
    if ($arProps['ORDER_PROPS_ID']==20){ //20 - это id созданного свойства
   if($arProps['VALUE']){
             $url = 'https://www.sitename.ru'.CFile::GetPath($arProps['VALUE']).'; //подставьте свой адрес сайта
        $info = 'Реквизиты для выставления счета: <a href="'.$url.'">Открыть</a>';
   }
    }

  }
  $arFields["INFO"] = $info;
}
?>
Мы перехватываем событие отправки письма и добавляем в него нужное нам свойство. Вот, собственно, и все.

3. Добавляем в почтовый шаблон письма #INFO#

Разработчик - это в крови. Люблю Битрикс, нестандартные задачи и интересные проекты.


© 2023 Digital-агентство полного цикла "НастАртВЕБ"