линия

Главная

вторник, 11 декабря 2018 г.

Bitrix - добавление в письмо о новом заказе кастомных полей

Иногда душка клиента возжелает получать в письме о заказе  дополнительные параметры. Задача не сложная конечно, но все таки решил написать об этом. Как никак сам товарищ Дуров говорил: "ведите блог!". Много писанины не будет. Сразу перейдем к коду. В /bitrix/php_interface/init.php  Добавляем следующее:



--

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?
 
 //Событие перед отправкой письма о заказе
 AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
 //Собственно обработчик события
 function bxModifySaleMails($orderID, &$eventName, &$arFields){
  $arOrder = CSaleOrder::GetByID($orderID); 
  // получаем телефоны и адрес
  $order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
  $phone="";
  $index = ""; 
  $country_name = "";
  $city_name = "";  
  $address = "";
  $FULL_INFO='';
  $INN ="";
  while ($arProps = $order_props->Fetch()){
   if($arProps["VALUE"]!=""){
    $arFields[$arProps["CODE"]] = $arProps["VALUE"];
    
   }
   if ($arProps["CODE"] == "PHONE"){
    $phone = htmlspecialchars($arProps["VALUE"]);
   }
   if ($arProps["CODE"] == "LOCATION"){
    $arLocs = CSaleLocation::GetByID($arProps["VALUE"]);
    $country_name =  $arLocs["COUNTRY_NAME_ORIG"];
    $city_name = $arLocs["CITY_NAME_ORIG"];
   }
   
   if ($arProps["CODE"] == "INDEX"){
    $index = $arProps["VALUE"];   
   }
   
   if ($arProps["CODE"] == "ADDRESS"){
    $address = $arProps["VALUE"];
   }
   //COMPANY DATA   
   if ($arProps["CODE"] == "COMPANY" && $arProps["VALUE"]!=''){$FULL_INFO.= ' Название компании: '.$arProps["VALUE"].'<br>';}
   if ($arProps["CODE"] == "INN"&& $arProps["VALUE"]!=''){ $INN =$arProps["VALUE"];  $FULL_INFO.= ' ИНН: '.$arProps["VALUE"].'<br>';}
   if ($arProps["CODE"] == "KPP"&& $arProps["VALUE"]!=''){$FULL_INFO.= ' КПП: '.$arProps["VALUE"].'<br>';}
   if ($arProps["CODE"] == "FAX"&& $arProps["VALUE"]!=''){$FULL_INFO.= ' Факс: '.$arProps["VALUE"].'<br>';}
   if ($arProps["CODE"] == "CONTACT_PERSON "&& $arProps["VALUE"]!=''){$FULL_INFO.= ' Контактное лицо: '.$arProps["VALUE"].'<br>';}
  }
  //Полные адрес
  $full_address = $index." ".$country_name."-".$city_name.", ".$address;
  
  //получаем название службы доставки
  $arDeliv = CSaleDelivery::GetByID($arOrder["DELIVERY_ID"]);
  $delivery_name = "";
  if ($arDeliv){
   $delivery_name = $arDeliv["NAME"];
  }
  
  //получаем название платежной системы   
  $arPaySystem = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"]);
  $pay_system_name = "";
  if ($arPaySystem){
   $pay_system_name = $arPaySystem["NAME"];
  }
  
  //добавляем новые поля в массив результатов
  $arFields["USER_DESCRIPTION"] = $arOrder["USER_DESCRIPTION"]; 
  $arFields["PHONE"] =  $phone;
  $arFields["FULL_INFO"] =  $FULL_INFO;
  //FULL_INFO
  $arFields["DELIVERY_NAME"] =  $delivery_name;
  $arFields["PAY_SYSTEM_NAME"] =  $pay_system_name;
  $arFields["FULL_ADDRESS"] = $full_address;  
  
  //SALE_ADMIN_NEW_ORDER
  if($INN!=""){
   CEvent::Send('SALE_ADMIN_NEW_ORDER',"s1",$arFields);
  }
 }  
---


Комментариев нет:

Отправить комментарий