E-mail отдела продаж отдельно для каждого сайта Битрикс

Сегодня я расскажу как сделать уведомления о смене статуса заказа с разных сайтов с соответствующим этому сайту e-mail отдела продаж.

Друзья, данная возможность давно реализована в этом модуле TS Умные статусы и письма заказов

Кто знаком с Битрикс, знает эту проблему, т.к. по умолчанию в Битрикс задается только один email отдела продаж в настройках модуля Интернет-магазин.
И если администрировать магазин Битрикс с многосайтовостью, то во всех письмах в поле От будет единый адрес e-mail, который указан в настройках, как на рисунке.

E-Mail отдела продаж Битрикс

Решается проблема с помощью обработчиков событий Битрикс в файле /bitrix/php_interface/init.php

AddEventHandler("sale", "OnOrderNewSendEmail", "OnOrderUpdateHandler");
AddEventHandler("sale", "OnOrderStatusSendEmail", "OnOrderUpdateHandler");
AddEventHandler("sale", "OnOrderCancelSendEmail", "OnOrderUpdateHandler");
function OnOrderUpdateHandler($ID,&$eventName,&$arFields,$val)
{

    if (CModule::IncludeModule("sale"))
    {
        //Получаем LID сайта по ID заказа
       $res = CSaleOrder::GetList(array(), array('ID' => $ID), false, false, array('ID','LID'));
       $arOrder = $res->Fetch();

       //Получаем список всех активных сайтов
       $res = CSite::GetList($by="sort", $order="desc", array('ACTIVE'=>'Y'));
       while($arSite = $res->Fetch())
       {
            if(trim($arSite['EMAIL']) && $arOrder['LID']==$arSite['LID'])
                $arFields['SALE_EMAIL'] = trim($arSite['EMAIL']);
       }
    }
}

Что делают события:
OnOrderNewSendEmail - сработает при добавлении заказа.
OnOrderStatusSendEmail - сработает при изменении статуса заказа.
OnOrderCancelSendEmail - сработает при отмене заказа.

Обращаю Ваше внимание, что этот код будет для всех сайтов подставлять тот E-mail из настроек сайта, который соответствует сайту заказа.
Т.е. если редактируется заказ оформленный на сайте s4, то в письме в поле От будет подставлен e-mail сайта s4, а не из поля E-Mail отдела продаж в настройках модуля Интернет-магазин.

Задается E-mail для каждого сайта отдельно на странице редактирования сайта перейдя в детальную форму настроек.

Список сайтов Битрикс
E-Mail адрес сайта по умолчанию


Установка модуля