Реализовал при пустой корзине, мало ли кому пригодится. Прикрутил для статуса заказа = O (у меня это отгружен), прикрутил:
1. Свойство заказа адрес;
2. Общую сумму заказа;
3. Детально заказ:
3.1 - имена товаров в заказе;
3.2 - цена за штуку;
3.3 - кол-о заказанного товара;
3.4 - сумма по каждому товару (цена*кол-о);
Можно еще много чего прикрутить, но для меня этого хватило. Все это обернул в таблицу.
Код |
---|
<?AddEventHandler("sale", "OnOrderStatusSendEmail", "OnOrderStatus"); // Добавление переменных в почтовый шаблон (ИМ при отгрузке, состав заказа в таблице.)
function OnOrderStatus($ID, &$eventName, &$arFields, $numberStatus) {
$arOrder = CSaleOrder::GetByID($ID); //параметры заказа можно вытащить статус заказа, к котому херачить этот обработчик!
if ($arOrder['STATUS_ID'] == O): //только для статуса заказа = O, т.е. отгружен.
$db_props = CSaleOrderPropsValue::GetOrderProps($ID); // свойства заказа
while ($arProps = $db_props->Fetch()) {
$Svoystva['PROP_'.$arProps['CODE']] = $arProps['NAME'];
$Svoystva['PROP_VALUE_'.$arProps['CODE']] = $arProps['VALUE'];
}
$adress = CSaleOrderPropsVariant::GetByValue(1, $Svoystva['PROP_VALUE_Adres']); // вывод имени филиала из его кода.
$dbBasketItems = CSaleBasket::GetList(
array(
"NAME" => "ASC",
"ID" => "ASC"
),
array(
"ORDER_ID" => $ID,
),
false,
false,
array()
);
$zapyataya = '<table border="1" cellspacing="0">' .'<tr>' .'<td>'. '<b>'. "Название" .'</b>' .'</td>' .'<td>'. '<b>'. "Цена" .'</b>' .'</td>' . '<td>'. '<b>'. "Кол-о" .'</b>' .'</td>' .'<td>'. '<b>'. "Сумма" .'</b>'.'</td>' .'</tr>';
$arFields['TOVAR'][0] = substr($zapyataya, 0, strlen($zapyataya) - 1) . '.';
while ($arIt = $dbBasketItems->Fetch()) // клеим ID и цену всех товаров в корзине
{
$tovar['NAME'] = $arIt['NAME']; //имя товара
$tovar['PRICE'] = $arIt['PRICE']; //цена товара
$tovar['QUANTITY'] = sprintf("%.0f" . "", ($arIt['QUANTITY'])); //кол-о товара
$tovar['SUMM'] = sprintf("%.2f" . "", ($arIt['PRICE'] * $arIt['QUANTITY'])); //сумма товара
$Ubral_zapyatie = '<tr>' .'<td>'. $tovar['NAME'] .'</td>' .'<td>'. $tovar['PRICE'] . 'p.' .'</td>' . '<td>'. $tovar['QUANTITY'] .'</td>' .'<td>'. $tovar['SUMM'] .'p'.'</td>' .'</tr>';
$arFields['TOVAR'][] = substr($Ubral_zapyatie, 0, strlen($Ubral_zapyatie) - 1) . '.';
}
$arFields['TOVAR'][] = '</table>' ;
$arFields['ADRESS'] = $adress['NAME']; //адрес
$arFields['ALL_SUMM'] = $arOrder['PRICE'] . 'p.'; //общая стоимость
endif;
}
?>
|
Если кто заметит какие-либо ошибки или неточности, просьба сообщить, опыта за плечами у меня совсем мало как в php так и в апи битрикса.