Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Отправка уведомления о новом заказе

00 голосов
6
Требуется сделать отправку уведомления на почту клиенту и в отдел продаж после поступления нового заказа.

При редактировании шаблона "Новый заказ" встает вопрос - как вставить в текст свою переменную? Решаю вопрос созданием своего обработчика:

Код
AddEventHandler("sale", "OnOrderAdd", "OnOrderAddSendMail");

В самой функции формирую нужные переменные и вызываю отправку:

Код
CEvent::SendImmediate("SALE_NEW_ORDER", s1, $arEventFields, "N", 11);

В итоге приходит 1 письмо в отдел продаж, в котором кастомные переменные в шаблоне остаются неизмененными. Такое же письмо приходит клиенту плюс еще одно, в котором кастомные переменные заменены на нужное содержимое.

Что это? Как это пофиксить?
спросил 26 Июнь, 13 от xDEV1Lx (240 баллов)

6 Ответы

00 голосов
В 11 версии были добавлены события на отправку почты (http://dev.1c-bitrix.ru/api_help/sale/sale_events.php - События, связанные с отправкой почтовых шаблонов). Используя эти события можно переопределять и добавлять новые поля, которые попадут в шаблон письма для отправки.


В вашем случае вам нужно деактивировать стандартный шаблон отправки письма (SALE_NEW_ORDER), добавить свой новый тип почтового события и шаблон к нему и отправлять уже по нему.
Отправка письма о новом заказе происходит уже после добавления заказа, в компоненте.
ответил 26 Июнь, 13 от BlackEva (820 баллов)
00 голосов
Спасибо. Всё получилось.
ответил 25 Июль, 13 от xDEV1Lx (240 баллов)
00 голосов
Не срабатывает это событие в 1С-Битрикс: Управление сайтом 10.0.7
Что впрочем ожидаемо. Есть что-то, чтобы его заменить? Или решать через отправку при создании нового заказа?
Мне нужно отправить некоторые свойства заказа.
ответил 28 Окт, 13 от Aribor (560 баллов)
00 голосов
Попытался вывести хоть что-то - ничего:

Код
$db_orderprop = CSaleOrderPropsValue::GetOrderProps(42);
      AddMessage2Log(print_r ($db_orderprop,true));
      $i = 0;
      while ($arVals = $db_orderprop->Fetch()){
      AddMessage2Log($i." =================================================");
      AddMessage2Log(print_r ($arVals,true));
        $customerProps[$i]["NAME"]= $arVals["NAME"];
        $customerProps[$i]["VALUE"]= $arVals["VALUE"];
        $i++;
      }
      AddMessage2Log(print_r ($customerProps,true));
 
такое ощущение, что свойства недоступны...
ответил 02 Фев, 14 от Aribor (560 баллов)
00 голосов
Up
Никто не знает или нет вариантов?
Уж очень не хочется костыли лепить...
ответил 22 Май, 14 от Aribor (560 баллов)
00 голосов
огромный член волосатого мамонта
ответил 08 Июль, 14 от аноним

Похожие вопросы

0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
4 ответов
0 голосов
5 ответов
спросил 12 Дек, 13 от WelMax (430 баллов)
0 голосов
6 ответов
спросил 05 Авг, 13 от WelMax (430 баллов)