Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
1

Подстановка даты доставки в шаблон письма при создании заказа

18.10.2018, 11:27. Просмотров 423. Ответов 12

Добрый день!

Директор захотел что б в письме клиенту при оформлении нового заказа отображалось примерное время доставки, как на Али.
Собственно в самом шаблоне SALE_NEW_ORDER html код, там выборку IF сделать невозможно.

Как я вижу возможно реализовать эту фичу. Где то есть php фаил, который отвечает за отправку письма при создании нового заказа. В него задать массив по регионам и примерное время доставки. И во время заказа, просто сравнивая регион подставлять приблизительное время доставки.

Возможно ли такое реализовать, как вы думаете?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2018, 11:27
Ответы с готовыми решениями:

Привязка к службе доставки, при создании свойства
Всем привет. Задача такова, необходимо создать свойство Для этого использую...

Оплата только доставки или предоплата заказа
Всем привет! Есть необходимость сделать частичную оплату заказа, т.е. предоплату. По факту нужно...

Как при создании заказа получить текущие цены товаров из корзины и изменить их?
Добрый день. У меня никак не получается в событии OnGetOptimalPrice получить цену, количество...

Шаблон письма оформления заказа
Есть шаблон письма оформления заказа,подскажите можно ли добиться того что приходило и изображение...

Как свернуть способы оплаты и доставки при оформлении заказа - Joomshopping
Приветствую вас, уважаемые форумчане! Есть 2 вопроса по оформлению заказа Joomshopping. Joomla 3,...

12
econ_ciber
4 / 4 / 0
Регистрация: 29.03.2011
Сообщений: 38
18.10.2018, 14:26 2
через эвенты можно провести

файл init.php (/bitrix/php_interface/init.php)
PHP
1
2
3
4
5
6
AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
$delivery_time = '7 дней';
$arFields["DELIVERY_TIME"] =  $delivery_time;
}
Потом у вас будет доступно свойство #DELIVERY_TIME# В шаблоне письма
1
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
18.10.2018, 16:08  [ТС] 3
Спасибо попробую.
0
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
19.10.2018, 14:18  [ТС] 4
Странный момент, скрипт впринципе работает, но только если написано не на русском языке.

PHP
1
host=smtp.office365.com tls=on auth=on user=bitrix@*******.ru from=bitrix@*******.ru recipients=#EMAIL# smtpstatus=501 smtpmsg='501 5.1.3 Invalid address' errormsg='recipient address #EMAIL# not accepted by the server' exitcode=EX_DATAERR
Добавлено через 58 минут
Все работает сейчас, теперь нужно как то сравнивать
PHP
1
$state = $arLocs["REGION_NAME"];
с базой регионов и подставлять время доставки и стоимость

SQL
1
2
3
4
5
6
7
mysql> SELECT * FROM b_sale_loc_name LIMIT 2;
+----+-------------+-------------+--------------------+--------------------+------------+---------------+---------------+
| ID | LANGUAGE_ID | LOCATION_ID | NAME               | NAME_UPPER         | SHORT_NAME | DELIVERY_TIME | DELIVERY_COST |
+----+-------------+-------------+--------------------+--------------------+------------+---------------+---------------+
|  1 | ru          |           1 | Казахстан          | КАЗАХСТАН          | NULL       |          NULL |          NULL |
|  2 | en          |           1 | Kazakhstan         | KAZAKHSTAN         | NULL       |          NULL |          NULL |
+----+-------------+-------------+--------------------+--------------------+------------+---------------+---------------+
Т.е. Мы берем $state и сравниваем его в базе с NAME, после чего из этой записи берем 2 числа DELIVERY_TIME и DELIVERY_COST

Как это можно реализовать?
0
19.10.2018, 14:18
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
20.10.2018, 01:24 5
Прежде всего забудьте о работе с базой на прямую. А тем более добавляя свои поля. Такие решения приводят проект к серьезным трудностям в последствии. Причем всегда. И без исключений (ну если только вы не собираетесь через месяцок закрыть сайт). Это ваше решение можно убить сразу несколькими способами вполне легальными и естественными из админки.
В последующем это гарантировано приведет к лишним денежным затратам. Проверено. У меня один проект есть в работе, им приходится тащить бремя такой разработки, плюс делать самостоятельно, что появлется в новых версиях битрикс из коробки. А это может быть не только "Хотелки", но и требования законодательства.

Это касается не только Битрикс, это касается любой CMS.
0
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
22.10.2018, 09:18  [ТС] 6
Спасибо что отговорили конечно. Но если есть легальные безопасные способы, хотелось бы их узнать.
0
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
22.10.2018, 10:35 7
Можно хранить в HL блоке связку ID местоположения, время доставки. В обработчике доставать оттуда.
0
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
22.10.2018, 17:23  [ТС] 8
Спасибо, вы очень информативно отвечаете.
0
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
25.10.2018, 12:38  [ТС] 9
Так что, подскажет кто как это реализовать?
0
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
31.10.2018, 12:28  [ТС] 10
Up, по прежнему актуально.
0
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
31.10.2018, 12:30 11
Так вы по какому пути пошли - HL блок создали или свой вариант развиваете?
0
sp1er
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 22
13.11.2018, 12:02  [ТС] 12
Пока не по какому, не понимаю как этот HL блок создавать, и как из него брать инфу.
0
voral
941 / 631 / 142
Регистрация: 16.03.2008
Сообщений: 2,979
13.11.2018, 14:56 13
Создать "просто":
Админка - Контент - Highload-блок - кнопка "Добавить Highload-блок"
Вводите название сущности, и имя таблицы.

После создания входите в нее (появится в списке). И нажимаете "Добавить запись" - далее "Добавить пользовательское поле". Создаете, например, числовое поле и текстовое. В первое будете вбивать ИД местоположения, во второе срок доставки.

В принципе, можно создавать и свои типы свойств. Тогда можно будет реализовать, чтобы вводить не ИД, а прям поиском выбирать местоположение, и в списке сделать отображение наименования....

Далее выбор из этого блока -первая же ссылка из яндекса
0
13.11.2018, 14:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2018, 14:56

VM 2.х Оформление заказа - "Область-->Город-->Способ доставки-->Место доставки"
Задача состоит в том чтобы сделать два дополнительных выпадающих списка (Способ доставки и Место...

Пункт "Бесплатное фото доставки" при оформлении заказа
Нужно добавить пункт checkbox "Бесплатное фото доставки" в оформление заказа и что бы при...

Выбирается не та организация при создании заказа(
В форме документа заказа клиента у нас сделано, чтобы при создании нового заказа всегда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru