Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Получение адреса заказчика для почтового шаблона

00 голосов
9
Здравствуйте.

Я столкнулся с проблемой. Для менеджеров заказов нужно сформировать почтовый шаблон, в котором помимо стандартных полей будут указаны также адрес и телефон заказчика.

Я нашел код компонента, куда нужно добавить нужные свойства. Но вот как их извлечь? Как получить пользовательские свойства Адрес доставки и телефон. Часть кода, которую я представил ниже, не работает.

Код
$arFields = Array(
                        "ORDER_ID" => $arResult["ORDER_ID"],
                        "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))),
                        "ORDER_USER" => ( (strlen($arResult["PAYER_NAME"]) > 0) ? $arResult["PAYER_NAME"] : $USER->GetFullName() ),
                        "PRICE" => SaleFormatCurrency($totalOrderPrice, $arResult["BASE_LANG_CURRENCY"]),
                        "BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
                        "EMAIL" => $arResult["USER_EMAIL"],
                        "ORDER_LIST" => $strOrderList,
                        "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
                        "ADDRESS" => CSaleOrderPropsValue::GetByID(23),
                        "PHONE" => CSaleOrderPropsValue::GetByID(20)
                );


Где-то на форуме видел пример, что надо работать со следующей функцией
Код
CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => "1"), false, $arSelect = array("UF_*")); 

Но откуда мне в текущем компоненте (Новый заказ) узнать IBLOCK_ID.
Кто-нибудь может написать код, который вернет мне значение поля адрес и телефон.
Пожалуйста и спасибо!
спросил 15 Май, 13 от JIauJIa (280 баллов)

9 Ответы

00 голосов
Вячеслав Сухов, писал на эту тему в блоге, а также обсуждали подобное на форуме. Надеюсь, поможет.
ответил 15 Май, 13 от Asteria (1,840 баллов)
00 голосов
Юрий, а где файл component_epilog.php находится. И почему не получится написать код, скажем в /components/bitrix/sale.order.full/сomponent.php?
ответил 16 Май, 13 от JIauJIa (280 баллов)
00 голосов
Цитата
Вячеслав Сухов пишет:
Юрий, а где файл находится.

Вы создаете этот файл сами в папке шаблона компонента, и обрабатывается он после отработки шаблона template.php.
Цитата
Вячеслав Сухов пишет:
И почему не получится написать код, скажем в /components/bitrix/sale.order.full/сomponent.php?

Можно сделать и так, но тогда придется переносить компоненту в собственное пространство имен и он «снимется с поддержки».
ответил 27 Июль, 13 от Asteria (1,840 баллов)
00 голосов
Цитата
Юрий Шубин пишет:
Вы создаете этот файл сами в папке шаблона компонента, и обрабатывается он после отработки шаблона template.php.


Скажите, он сам автоматически обрабатывается или его нужно самому вызывать? Если да, то где? Извините за вопросы, я новичок в Битриксе.
ответил 29 Окт, 13 от JIauJIa (280 баллов)
00 голосов
Цитата
Вячеслав Сухов пишет:
Скажите, он сам автоматически обрабатывается или его нужно самому вызывать? Если да, то где? Извините за вопросы, я новичок в Битриксе.

Автоматически. Посмотрите пример в блоге. Там по шагам расписано.
ответил 03 Фев, 14 от Asteria (1,840 баллов)
00 голосов
Код
CEvent::Send("SALE_ORDER_NEW_MANAGER", SITE_ID, $eventArFields , "N", 48); 


Юрий, что означает "48" в конце аргументов? Я правильно понимаю, что component_epilog.php нужно размещать в папке компонента оформления заказов?

И еще, SALE_ORDER_NEW_MANAGER - это новое почтовое событие, которое нужно создать вручную и прописать там указанные в коде свойства? :)
ответил 23 Май, 14 от JIauJIa (280 баллов)
00 голосов
Цитата
Вячеслав Сухов пишет:
Юрий, что означает "48" в конце аргументов?

Ознакомьтесь с документацией для разработчиков. Функция CEvent::Send.
Цитата
Вячеслав Сухов пишет:
Я правильно понимаю, что component_epilog.php нужно размещать в папке компонента оформления заказов?

Файл размещается в папке ШАБЛОНА компонента, например, /bitrix/templates/your_theme_name/components/bitrix/sale.order.full/template_name/.
Цитата
Вячеслав Сухов пишет:
И еще, SALE_ORDER_NEW_MANAGER - это новый почтовый шаблон, который нужно создать вручную и прописать там указанные в коде свойства?

Да
ответил 19 Сен, 14 от Asteria (1,840 баллов)
00 голосов
Ок. Сейчас попробую. Юрий, спасибо вам огромное за помощь и терпение! :)
Как сделаю отпишусь, что получилось
ответил 24 Янв, 15 от JIauJIa (280 баллов)
00 голосов
Что-то не получается, вроде все как надо настроил и подписал.

Код
 CEvent::Send("SALE_ORDER_NEW_MANAGER", "s2", $eventArFields , "N", 26);


Создал шаблон, прописал нужные свойства, привязал к нужному сайту. Все равно не хочет работать. Единственное что, у меня нет папки /bitrix/templates/your_theme_name/components/bitri­x/sale.order.full/template_name/.

Но есть папка bitrix/templates/your_theme_name/components/bitrix/sale.order.ajax/template_name/. Я сюда поместил файл component_epilog.php. Разницы нет?

Если нет, отчего он не работает все же?
ответил 08 Май, 15 от JIauJIa (280 баллов)

Похожие вопросы

0 голосов
5 ответов
спросил 19 Дек, 13 от KAN155 (160 баллов)
0 голосов
3 ответов
спросил 15 Март, 13 от Snezhka (2,240 баллов)
0 голосов
4 ответов
0 голосов
1 ответ
спросил 14 Янв, 14 от Kiriel (2,010 баллов)
0 голосов
8 ответов
спросил 25 Июнь, 13 от Cooper (260 баллов)