
<?php AddEventHandler('sale', 'OnOrderNewSendEmail', array('CSendOrderTable', 'OnOrderNewSendEmailHandler')); class CSendOrderTable { public static function OnOrderNewSendEmailHandler($ID, $eventName, $arFields) { if ($ID>0 && CModule::IncludeModule('iblock')) { // Get order Fields $order_props = CSaleOrderPropsValue::GetOrderProps($ID); while ($arProps = $order_props->Fetch()){ if ($arProps["CODE"] == "PHONE"){ $arFields["PHONE"]= htmlspecialchars($arProps["VALUE"]); } elseif ($arProps["CODE"] == "EMAIL"){ $arFields["EMAIL"]= htmlspecialchars($arProps["VALUE"]); } } // Modufy mail order list $total = 0; $arFields['ORDER_LIST'] = '<table class="orderList" width="100%" cellpadding="5" cellspacing="5">'; $arFields['ORDER_LIST'] .= '<tr valign="top">' . '<td colspan="2">Название</td>' . '<td>Кол-во</td>' . '<td>Цена</td>' . '<td>Скидка</td>' . '<td>Суммв</td>' . '</tr>'; $rsBasket = CSaleBasket::GetList(array(), array('ORDER_ID' => $ID)); $deliveryPrice = 0; $order = 0; while ($arBasket = $rsBasket->GetNext()) { if ($order < 1) { $order = CSaleOrder::GetByID($arBasket['ORDER_ID']); $deliveryPrice = $order['PRICE_DELIVERY']; } $arPicture = false; if ($arBasket['MODULE'] == 'catalog') { // if ($arProduct = CIBlockElement::GetByID($arBasket['PRODUCT_ID'])->Fetch()) { if ($arProduct = CIBlockElement::GetList( array('SORT'=>'ASC'), array('ID'=>$arBasket['PRODUCT_ID']), false, false, array ('*','PROPERTY_ARTICOL') )->GetNext()) { if ($arProduct['PREVIEW_PICTURE'] > 0) { $fileID = $arProduct['PREVIEW_PICTURE']; } elseif ($arProduct['DETAIL_PICTURE'] > 0) { $fileID = $arProduct['DETAIL_PICTURE']; } else { $fileID = 0; } $arPicture = CFile::ResizeImageGet($fileID, array('width' => 40, 'height' => 40)); $arPicture['SIZE'] = getimagesize($_SERVER['DOCUMENT_ROOT'].$arPicture['src']); } } $total += ($arBasket['PRICE'])*(int)$arBasket['QUANTITY']; $arFields['ORDER_LIST'] .= '<tr valign="top">' . ''.($arPicture ? '[IMG]http://dev.1c-bitrix.ru/community/webdev/%3Ca%20href=[/IMG][URL=http://'.$GLOBALS['SERVER_NAME'].(str_replace(array('+]http://'.$GLOBALS['SERVER_NAME'].(str_replace(array('+[/URL]', ' '), '%20', $arPicture['src'])).'" width="'.$arPicture['SIZE'][0].'" height="'.$arPicture['SIZE'][1].'" alt="">' : '').'' . '<td>'.$arBasket['NAME'].' - '.$arProduct['PROPERTY_ARTICOL_VALUE'].'</td>' . '<td>'.(int)$arBasket['QUANTITY'].' шт.</td>' . '<td style="white-space: nowrap">'.SaleFormatCurrency($arBasket['PRICE'], $arBasket['CURRENCY']).'</td>' . '<td style="white-space: nowrap">'.( 100 - ($arBasket['PRICE'] / (($arBasket['PRICE'] + $arBasket['DISCOUNT_PRICE']) * 0.01))).'% </td>' . '<td style="white-space: nowrap">'.SaleFormatCurrency(($arBasket['PRICE'])*(int)$arBasket['QUANTITY'], $arBasket['CURRENCY']).'</td>' . '</tr>'; $cur = $arBasket['CURRENCY']; } if ($deliveryPrice > 0) { $arFields['ORDER_LIST'] .= '<tr valign="top">' . '<td>Доставка</td>' . '<td colspan="4"></td>' . '<td>'.SaleFormatCurrency($deliveryPrice, $cur).'</td>' . '</tr>'; } $arFields['ORDER_LIST'] .= '<tr valign="top">' . '<td>Итого</td>' . '<td colspan="4"></td>' . '<td>'.SaleFormatCurrency($total+$deliveryPrice, $cur).'</td>' . '</tr>'; $arFields['ORDER_LIST'] .= '</table>'; } } } |
Переопределяем ORDER_LIST.
Для зтого создаем обработчик события "OnOrderNewSendEmail" в init.php
Также не забываем в описании типа почтового события добавить новые поля
Контактный телефон: #PHONE# Комментарий: #ORDER_DESCRIPTION# Служба доставки: #DELIVERY_NAME# Способ оплаты: #PAY_SYSTEM_NAME# Адрес доставки: #FULL_ADDRESS# |
и вывести их в тексте письма.