<?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# |
и вывести их в тексте письма.