Цитата | ||
---|---|---|
Алексей Майдокин написал: Юрий Шубин, если у вас получится с component_epilog.php, расскажите об этом. А я расскажу, как у нас получилось с событиями. Я лишь руководил процессом, а код писал другой человек, поэтому в нем могут быть неточности. Мы перепробовали кучу событий модуля sale и со всеми были проблемы: то они не вызываются в нужном компоненте, то они вызываются слишком рано. В итоге, я вспомнил, что мы тут пытаемся почту обработать, поэтому мы обратились к событию 'OnBeforeEventAdd', которое вызывается перед отправкой почты. Дельше все просто. Пишем обработчик события:
. |
Можно еще вот так:
Код |
---|
function sendOrderMessage(&$event, &$lid, &$arFields) { // Новый заказ -> добавляем номер телефона if ($event == "SALE_NEW_ORDER") { $orderId = $arFields['ORDER_ID']; $arOrder = CSaleOrder::GetByID($orderId); $arFields['USER_DESCRIPTION'] = $arOrder['USER_DESCRIPTION']; //комментарий покупателя $delivery = CSaleDelivery::GetByID($arOrder['DELIVERY_ID']); $arFields['DELIVERY_NAME'] = $delivery['NAME']; //служба доставки $paySystem = CSalePaySystem::GetByID($arOrder['PAY_SYSTEM_ID']); $arFields['PAY_SYSTEM_NAME'] = $paySystem['NAME']; //способ оплаты //телефон, заберу заказ в, адрес $result = CSaleOrderPropsValue::GetList(array(), array('ORDER_ID' => $orderId, '@CODE' => array("PHONE", "COLL_DATE", "ADDRESS"))); while ($arSales = $result->Fetch()) { $arFields[$arSales['CODE']] = $arSales['VALUE']; } } } |