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


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

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

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

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

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

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

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

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

6 Ответы

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


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

Код
$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 баллов)
0 голосов
Up
Никто не знает или нет вариантов?
Уж очень не хочется костыли лепить...
ответил 22 Май, 14 от Aribor (560 баллов)
0 голосов
огромный член волосатого мамонта
ответил 08 Июль, 14 от аноним

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

0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
4 ответов
0 голосов
5 ответов
спросил 12 Дек, 13 от WelMax (400 баллов)
0 голосов
6 ответов
спросил 06 Авг, 13 от WelMax (400 баллов)
Управление продуктом: аналитика, разработка, продвижение