Добавление артикула в шаблон письма нового заказа Битрикс

Если вам необходимо добавить свойство продукта в шаблон письма заказа, то можно это сделать в init.php через событие OnOrderNewSendEmail. Пример конечно костыльный, но вдруг кому пригодиться

AddEventHandler("sale", "OnOrderNewSendEmail", "ModifyOrderSaleMails");


function ModifyOrderSaleMails($orderID, &$eventName, &$arFields)
{
    if (CModule::IncludeModule("sale") && CModule::IncludeModule("iblock")) {
        Yandex_check($orderID);
//разбираем заказ по частям
        $strOrderList = "";
        $dbBasketItems = CSaleBasket::GetList(
            array("NAME" => "ASC"),
            array("ORDER_ID" => $orderID),
            false,
            false,
            array("PRODUCT_ID", "ID", "NAME", "QUANTITY", "LID", "DETAIL_PAGE_URL", "PRICE", "CURRENCY", "PROPPERTY_CML2_ARTICLE")
        );





//        file_put_contents('/var/www/b2b.eco-balt.ru/logupd' . time() . '.log', print_r($productsList[$arFieldsProductList['ID']]['SKU'], true));

        $productIds = [];
        while ($arPropsFirst = $dbBasketItems->Fetch()) {

            $productIds[] = $arPropsFirst['PRODUCT_ID'];

        }

       



        $arSelectProducts = ['ID', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE', 'PROPERTY_CML2_ARTICLE'];
        $arFilterProducts = ['IBLOCK_ID' => 6, 'ID' => $productIds];
        $resProductList = CIBlockElement::GetList(['ID' => 'ASC'], $arFilterProducts, false, false, $arSelectProducts);

        $productsById = [];

        while ($obProductList = $resProductList->Fetch()) {

            $productsById[$obProductList['ID']] = $obProductList;
        }


       


        

        $dbBasketItems = CSaleBasket::GetList(
            array("NAME" => "ASC"),
            array("ORDER_ID" => $orderID),
            false,
            false,
            array("PRODUCT_ID", "ID", "NAME", "QUANTITY", "LID", "DETAIL_PAGE_URL", "PRICE", "CURRENCY", "PROPPERTY_CML2_ARTICLE")
        );

        while ($arProps = $dbBasketItems->Fetch())
        {
 
            $nujnoeSvoistvoArticle = '<NOT FOUND>';


            if(!empty($productsById[$arProps['PRODUCT_ID']])) {
                $nujnoeSvoistvoArticle = $productsById[$arProps['PRODUCT_ID']]['PROPERTY_CML2_ARTICLE_VALUE'];
            }

           



            //вычесляем сумму заказа
            $summ = $arProps['QUANTITY'] * $arProps['PRICE'];
            //функция php обновления до 2-х значений после запятой
            //$price = round($arProps['PRICE'], 2);
            $price = number_format($arProps['PRICE'], 2, ',', ' ');
            $summ = number_format($summ, 2, ',', ' ');

            $i++;
            if($i % 2){
                $background = 'background:#f7f7f7;';
            }else{
                $background = '';
            }
            $strCustomOrderList .= "
			<tr>
			
                                        <td style='".$background."padding:7.5pt'>
                                            <p style='font-family:&#39;times new roman&#39; , serif;font-size:12pt;margin-left:0cm;margin-right:0cm'>
                                                <span style='font-family:&#39;arial&#39; , sans-serif;font-size:10pt'>".$nujnoeSvoistvoArticle."<br>
                                                    <a href='https://www.ecobalt.ru".$arProps['DETAIL_PAGE_URL']."' class='daria-goto-anchor' target='_blank'>
                                                        <span style='color:#006ab4'>".$arProps['NAME']."</span>
                                                    </a>
                                                </span>
                                            </p>
                                        </td>
                                        <td valign='top' width='60' style='".$background."padding:7.5pt;width:45pt'>
                                            <p align='center' style='font-family:&#39;times new roman&#39; , serif;font-size:12pt;margin:0cm 0cm 0.0001pt 0cm;text-align:center'>
                                                <span style='font-family:&#39;arial&#39; , sans-serif;font-size:10pt'>".$arProps['QUANTITY']."</span>
                                            </p>
                                        </td>
                                        <td valign='top' width='90' style='".$background."padding:7.5pt;width:67.5pt'>
                                            <p align='right' style='font-family:&#39;times new roman&#39; , serif;font-size:12pt;margin:0cm 0cm 0.0001pt 0cm;text-align:right''>
                                                <span style='font-family:&#39;arial&#39; , sans-serif;font-size:10pt'>".$summ."</span>
                                            </p>
                                        </td>
                                    </tr>
	   ";
        }

        

        //заносим заказ в переменную
        $arFields["ORDER_TABLE_ITEMS"] = $strCustomOrderList;

//-- получаем телефоны и адрес

        $arOrder = CSaleOrder::GetByID($orderID);
        $order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
        $phone="";
        $index = "";
        $country_name = "";
        $city_name = "";
        $address = "";

        while ($arProps = $order_props->Fetch())
        {
            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"];
            }
        }

        $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["COMMENT"] = $arOrder["USER_DESCRIPTION"];
$arFields["PHONE"] = $phone;
$arFields["DELIVERY_NAME"] = $delivery_name;
$arFields["DELIVERY_PRICE"] = $arOrder["PRICE_DELIVERY"];
$arFields["PAYMENT"] = $pay_system_name;
$arFields["DELIV_ADDRESS"] = $full_address;

}
}


Загрузка комментариев...