Итак, добавим новое свойство заказа для физ. лица (Магазин–>Настройки–>Свойства заказа–>Список свойств) – PHONE.
1.
Название: Телефон
Название: PHONE
Тип: [TEXT] Строка
Активность: Y
Обязательность – на ваше усмотрение. (В моем случае данное поле обязательно, так как менеджер интернет-магазина должен связаться в кротчайшие сроки с человеком который сделал заказ, не по email ему же связаться).
Заполним необходимые привязки к Платежным системам и службам доставки – Все Все.
В итоге при оформлении заказа в публичной части появилось новое текстовое полое – Телефон, доступный для заполнения.
2. Создадим в почтовом событии SALE_NEW_ORDER новое поле – #PHONE# – Телефон заказчика.
Затем создадим новый шаблон для SALE_NEW_ORDER – Уведомление отдела продаж,со следующими полями:
От кого: #SALE_EMAIL#
Кому:#SALE_EMAIL#
Текст сообщения:
Новый заказ N#ORDER_ID# от #ORDER_DATE#<br />
Состав заказа: #ORDER_LIST#<br />
Email заказчика #EMAIL#<br />
Телефон заказчика – #PHONE#<br />
Готово!
3. Требуется чтобы в #PHONE# передавалось значение которое заполнил клиент при оформление заказа.
Я пошел следующим путем, в файле component.php (\bitrix\components\bitrix\sale.order.ajax) есть следующий массив:
Добавляем строчку:
Готово!
Теперь при оформлении заказа на адрес отдела продаж придет сообщение в котором будет указан номер телефона клиента.
Данный способ ужасен, я не хочу кастомизировать системный компонент, потому как это неправильно! Как вариант можно перенести его в свое пространство имен – этот вариант тоже не хороший по моему мнению, сформировавшегося при чтении документации.
Покажите пример, как сделать тоже самое без кастомизации.
1.
Название: Телефон
Название: PHONE
Тип: [TEXT] Строка
Активность: Y
Обязательность – на ваше усмотрение. (В моем случае данное поле обязательно, так как менеджер интернет-магазина должен связаться в кротчайшие сроки с человеком который сделал заказ, не по email ему же связаться).
Заполним необходимые привязки к Платежным системам и службам доставки – Все Все.
В итоге при оформлении заказа в публичной части появилось новое текстовое полое – Телефон, доступный для заполнения.
2. Создадим в почтовом событии SALE_NEW_ORDER новое поле – #PHONE# – Телефон заказчика.
Затем создадим новый шаблон для SALE_NEW_ORDER – Уведомление отдела продаж,со следующими полями:
От кого: #SALE_EMAIL#
Кому:#SALE_EMAIL#
Текст сообщения:
Новый заказ N#ORDER_ID# от #ORDER_DATE#<br />
Состав заказа: #ORDER_LIST#<br />
Email заказчика #EMAIL#<br />
Телефон заказчика – #PHONE#<br />
Готово!
3. Требуется чтобы в #PHONE# передавалось значение которое заполнил клиент при оформление заказа.
Я пошел следующим путем, в файле component.php (\bitrix\components\bitrix\sale.order.ajax) есть следующий массив:
| Код |
|---|
$arFields = Array(
"ORDER_ID" => $arOrder["ACCOUNT_NUMBER"],
"ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))),
"ORDER_USER" => ( (strlen($arUserResult["PAYER_NAME"]) > 0) ? $arUserResult["PAYER_NAME"] : $USER->GetFormattedName(false)),
"PRICE" => SaleFormatCurrency($totalOrderPrice, $arResult["BASE_LANG_CURRENCY"]),
"BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
"EMAIL" => (strlen($arUserResult["USER_EMAIL"])>0 ? $arUserResult["USER_EMAIL"] : $USER->GetEmail()),
"ORDER_LIST" => $strOrderList,
"SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
"DELIVERY_PRICE" => $arResult["DELIVERY_PRICE"],
);
|
| Код |
|---|
"PHONE" => $arUserResult["ORDER_PROP"][16], |
Теперь при оформлении заказа на адрес отдела продаж придет сообщение в котором будет указан номер телефона клиента.
Данный способ ужасен, я не хочу кастомизировать системный компонент, потому как это неправильно! Как вариант можно перенести его в свое пространство имен – этот вариант тоже не хороший по моему мнению, сформировавшегося при чтении документации.
Покажите пример, как сделать тоже самое без кастомизации.