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

Массив полей CEvent::Send()

00 голосов
3
Здравствуйте!
Создаю почтовое событие функцией CEvent::Send() для типа почтового события [ SALE_NEW_ORDER ] == Новый заказ.

Не могу собрать все значения массива полей для почтового шаблона. Он имеет следующие поля:
#ORDER_ID# - код заказа
#ORDER_DATE# - дата заказа
#ORDER_USER# - заказчик
#PRICE# - сумма заказа
#EMAIL# - E-Mail заказчика
#BCC# - E-Mail скрытой копии
#ORDER_LIST# - состав заказа
#SALE_EMAIL# - E-Mail отдела продаж
#DEFAULT_EMAIL_FROM# - E-Mail адрес по умолчанию (устанавливается в настройках)
#SITE_NAME# - Название сайта (устанавливается в настройках)
#SERVER_NAME# - URL сервера (устанавливается в настройках)

Не знаю как вывести следующие значения:
#BCC# - E-Mail скрытой копии
#ORDER_LIST# - состав заказа
#SALE_EMAIL# - E-Mail отдела продаж
#DEFAULT_EMAIL_FROM# - E-Mail адрес по умолчанию (устанавливается в настройках)
#SITE_NAME# - Название сайта (устанавливается в настройках)
#SERVER_NAME# - URL сервера (устанавливается в настройках)

Буду благодарен если подскажите классы и функции с помощью которых можно вывести эти значения.
спросил 19 Март, 14 от cartmen (460 баллов)

3 Ответы

00 голосов
Цитата
Wincert пишет:
#BCC# - E-Mail скрытой копии

По идее тут ставите что хотите.

Цитата
Wincert пишет:
#ORDER_LIST# - состав заказа

Можно примерно так:
Код
$retStr = "";
$resBasketItems = CSaleBasket::GetList(
                        array("NAME" => "ASC", "ID" => "ASC"),
                          array(
                           "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                           "LID" => SITE_ID,
                           "ORDER_ID" => "NULL"),
                        false, false,
                        array(
                           "ID", "CALLBACK_FUNC", "MODULE",
                           "PRODUCT_ID", "QUANTITY", "DELAY",
                           "CAN_BUY", "PRICE", "WEIGHT", "NAME",
                           "DETAIL_PAGE_URL")
                         );
while ($arItems = $resBasketItems->Fetch())
{
   if (strlen($arItems["CALLBACK_FUNC"]) > 0)
   {
      CSaleBasket::UpdatePrice($arItems["ID"],
                        $arItems["CALLBACK_FUNC"],
                        $arItems["MODULE"],
                        $arItems["PRODUCT_ID"],
                        $arItems["QUANTITY"]);
                        $arItems = CSaleBasket::GetByID($arItems["ID"]);
   }

   if ($arItems["CAN_BUY"]=="Y" && $arItems["DELAY"]=="N")
   {
      $arStrForMail .= $retStr." - ".$arItems["QUANTITY"]." шт.\n";
   }
}


CSaleBasket::UpdatePrice вызывается как колбек функция, если она прописана у элементов. Можно не ломать голову зачем это - это требуется включать при любой обработки корзины.
В $arStrForMail у вас будет список позиций заказа.
Обращаю внимание, что данный цикл надо делать до вызова CSaleBasket::OrderBasket();, потому что потом текущая корзина пользователя опустеет.

Цитата
Wincert пишет:
#SALE_EMAIL# - E-Mail отдела продаж

COption::GetOptionString("sale", "order_email");

Цитата
Wincert пишет:
#DEFAULT_EMAIL_FROM# - E-Mail адрес по умолчанию (устанавливается в настройках) #SITE_NAME# - Название сайта (устанавливается в настройках) #SERVER_NAME# - URL сервера (устанавливается в настройках)

Насчет этого не надо греть голову- Битрикс подставит сам.
ответил 11 Сен, 14 от Arn4 (2,140 баллов)
00 голосов
Цитата
Wincert пишет:
#SALE_EMAIL# - E-Mail отдела продаж

Его кстати надо прежде установить в настройках модуля Магазина. В лучшем случае там дефолтный, в худшем - пустой.
ответил 17 Янв, 15 от Arn4 (2,140 баллов)
00 голосов
Спасибо огромное, разобрался.
ответил 03 Май, 15 от cartmen (460 баллов)

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

0 голосов
2 ответов
0 голосов
2 ответов
спросил 07 Май, 14 от Tafna (100 баллов)
0 голосов
0 ответов
спросил 23 Янв, 14 от KENTS (280 баллов)
+1 голос
4 ответов
спросил 22 Дек, 13 от HeJIJIu (630 баллов)
0 голосов
5 ответов
спросил 06 Ноя, 13 от Vika86 (100 баллов)