Дмитрий Якинцев, не знал про этот файл. Спасибо, попробую.
15.09.2010 15:16:26
Дмитрий Якинцев, не знал про этот файл. Спасибо, попробую.
|
|
|
|
16.09.2010 14:13:15
То есть, по сути, получение свойств заказа откладывается на момент обработки агента отправки писем, который исполняется в конце страницы или на крон, так?
По-моему лучше такое писать в явных местах: после исполнения компонента оформления заказа (component_epilog.php) или в финале страницы (OnAfterEpilog/OnEpilog), запоминая предварительно ID заказа в $GLOBALS в обработчике OnOrderAdd. Последнее более универсально, так как будет отвязано от компонентов.
Экс-битриксоид.
Компонент (и.с.) - существительное мужского рода (ГОСТ 34.003-90). |
|
|
|
16.09.2010 14:41:29
То есть получается, что данные заказчика вторым письмом приходят менеджеру. И тип почтового события собственный. Можно ли добавлять нужные поля в тип SALE_NEW_ORDER? |
|||||||
|
|
16.09.2010 15:03:58
В component_epilog.php и не надо ничего передавать. Там логичнее сразу получать свойства заказа и отсылать CEvent::Send()
Сделайте в component_epilog.php var_dump($arResult), там вроде уже должен быть ID заказа, если не ошибаюсь, чтобы не брать его из гета, это неправильно и не будет работать с ЧПУ. p.s. $GLOBALS["HTTP_GET_VARS"]["ORDER_ID"] это устаревший вариант, в современном php используется $_GET['ORDER_ID']
Экс-битриксоид.
Компонент (и.с.) - существительное мужского рода (ГОСТ 34.003-90). |
|
|
|
16.09.2010 15:18:55
А если сделать вот так:
Новые поля в данном типе почтовых событий будут видны? |
|||||
|
|
16.09.2010 18:55:04
Кстати, использование component_epilog.php мне не нравится, потому что это привязывает нас к шаблону. А если у меня много разных шаблонов компанента заказа, дублировать код в каждом? Хотя как частное решение, оно имеет право на существование.
|
|||||||
|
|
17.09.2010 09:19:52
создание заказа -> OnOrderAdd -> добавление свойств -> CEvent::Send Надеюсь, в следующих редакциях это исправят и свойства можно будет передавать сразу при создании заказа.
Экс-битриксоид.
Компонент (и.с.) - существительное мужского рода (ГОСТ 34.003-90). |
|||||
|
|
17.09.2010 11:42:22
1. Сохранять ID заказа в $GLOBALS - не комильфо. 2. OnEpilog будет дёргаться на каждой странице, а не только на той, где происходит оформление заказа. Этот же недостаток есть у моего метода. 3. Самый главный недостаток: решение получится очень непрозрачным и сильно разбросанным по продукту. Если кто-то, кроме вас, полезет в код, то ему придётся сильно потрудиться, чтобы проследить всю логику. |
|||
|
|
17.09.2010 14:51:59
1) укажу новые макросы в типе SALE_NEW_ORDER 2) добавлю их в шаблон данного типа, по которому происходит отправка 3) в component_epilog.php напишу код, который приводил выше (буду отправлять по событию SALE_NEW_ORDER). Не придет ли мне 2 письма одинаковых? Ведь в component.php тоже произойдет отправка письма по этому событию. Будут ли в этом случае в письмах видны значения новых макросов, созданных в component_epilog.php? Получается, что придет 2 письма, и в одном из них значений макросов не будет. |
||||
|
|
|||