3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 23
1

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

18.10.2018, 11:27. Показов 2231. Ответов 12

Добрый день!

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

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

Возможно ли такое реализовать, как вы думаете?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2018, 11:27
Ответы с готовыми решениями:

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

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

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

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

12
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
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 23
18.10.2018, 16:08  [ТС] 3
Спасибо попробую.
0
3 / 3 / 0
Регистрация: 10.08.2012
Сообщений: 23
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
1297 / 910 / 198
Регистрация: 16.03.2008
Сообщений: 4,276
Записей в блоге: 1
20.10.2018, 01:24 5
Прежде всего забудьте о работе с базой на прямую. А тем более добавляя свои поля. Такие решения приводят проект к серьезным трудностям в последствии. Причем всегда. И без исключений (ну если только вы не собираетесь через месяцок закрыть сайт). Это ваше решение можно убить сразу несколькими способами вполне легальными и естественными из админки.
В последующем это гарантировано приведет к лишним денежным затратам. Проверено. У меня один проект есть в работе, им приходится тащить бремя такой разработки, плюс делать самостоятельно, что появлется в новых версиях битрикс из коробки. А это может быть не только "Хотелки", но и требования законодательства.

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

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

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

Далее выбор из этого блока -первая же ссылка из яндекса
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2018, 14:56

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

Изменить стоимость заказа при выборе доставки "Наложенный платёж"
Добрый день, Ищу плагин или другое решение для реализации задачи. При выборе метода доставки...

Ошибка при создании заказа
Делаю все в точности как в официальном гайде: $order = Bitrix\Sale\Order::create(SITE_ID,...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru