Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/47: Рейтинг темы: голосов - 47, средняя оценка - 4.64
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533

Почтовый шаблон NEW_ONE_CLICK_BUY

21.05.2019, 08:12. Показов 11062. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Необходимо произвести доработку почтового шаблона "NEW_ONE_CLICK_BUY".
Подскажите, пожалуйста, каким образом в данный почтовый шаблон возможно добавить новую информацию? Спасибо.

Событие "OnOrderNewSendEmail" (если верно понимаю), то срабатывает на новый заказ, но не покупку в 1 клик.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2019, 08:12
Ответы с готовыми решениями:

Добавление произвольной инфы в почтовый шаблон
Добрый день. Подскажите кто нибудь, каким образом можно добавить инфу в почтовый шаблон? (к примеру, состав заказа - фото и прочее). ...

Выбирать почтовый шаблон в зависимости от значения IBLOCK_ID другого компонента
Доброе время суток. Есть компонент Новостной раздел (bitrix:news). В шаблоне компонента детальной новости (bitrix:news.detail) стоит...

почтовый шаблон Mailr7
Здравствуйте! Очень нужен русский или мультиязычный шаблон mailr7.

20
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
21.05.2019, 09:12
PHP
1
2
3
4
5
6
7
8
AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend"));
class MyForm
{
function my_OnBeforeEventSend(&$arFields)
  {
   $arFields["WEB_URL"]= $_SERVER['HTTP_REFERER'];
  }
}
Добавлено через 1 минуту
"OnBeforeEventSend" вызывается до отправки почтового шаблона, подменяй в этот момент данные в массиве на нужные
1
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
21.05.2019, 09:32  [ТС]
Dias606, спасибо что откликнулись
То что нужно Осталось теперь видоизменить состав заказа
Например, сейчас состав заказа (#ORDER_ITEMS#) приходит в одну строку.
Dias606, каким образом возможно передать состав заказа в виде таблицы?
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
21.05.2019, 09:37
обычный массив тебе поможет, заполни его, а в шаблоне прочитай #MY_DATA#
PHP
1
$arFields["MY_DATA"] = array('Имя' => 'Иван', 'Фамилия' => 'Иванов');
ну суть думаю понятна
0
3060 / 1459 / 265
Регистрация: 16.03.2008
Сообщений: 6,499
Записей в блоге: 2
21.05.2019, 10:45
Цитата Сообщение от Dias606 Посмотреть сообщение
обычный массив тебе поможет, заполни его, а в шаблоне прочитай #MY_DATA#
Хм... а разве так можно? Не пробовал. Как этот массив обработать в шаблоне?
1
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
21.05.2019, 10:53
voral, не пугай меня, от тебя и такие вопросы =))
0
3060 / 1459 / 265
Регистрация: 16.03.2008
Сообщений: 6,499
Записей в блоге: 2
21.05.2019, 11:03
А вот реально не было необходимости ни разу, я даже и не задумывался.
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
21.05.2019, 11:13
скажу больше можно еще передать html код и будут таблицы, блоки и т.д. как нужно так и отрисовать, у меня так работает шаблон отправки заказа клиенту, сам собрал заказ так как мне надо и передал в шаблон, там уже вывел одной переменной
PHP
1
$arFields["MY_DATA"] = "<span>".$arFields["ID"].":</span><b>".$arFields["NAME"]."</b>";
0
3060 / 1459 / 265
Регистрация: 16.03.2008
Сообщений: 6,499
Записей в блоге: 2
21.05.2019, 11:58
не. как раз с html вопросов и нет. Это всего лишь строка в понимании PHP. Просто #MY_DATA# в шаблоне простым str_replace заменится текстом (в данном случае html)... Вопрос как раз в массиве. Простой str_replace уже выведет просто "Array"
0
3060 / 1459 / 265
Регистрация: 16.03.2008
Сообщений: 6,499
Записей в блоге: 2
22.05.2019, 00:52
Мда... надо иногда останавливать работу и перечитать доку. Там тоже можно подключать компоненты... Я думал это фича только модуля subscriber.

Таким образом можно даже не подвешиваться на события, а подключать компоненты. удобно.
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
22.05.2019, 08:16
voral, это уже больше года назад я на каком то вебинаре от битрикс видел =))
Миниатюры
Почтовый шаблон NEW_ONE_CLICK_BUY  
0
3060 / 1459 / 265
Регистрация: 16.03.2008
Сообщений: 6,499
Записей в блоге: 2
22.05.2019, 08:59
Угу. там и на писано что с версии 15.. Но у меня как то все либо "по простому", либо своя кухня, либо уже вообще с модулем subscriber
0
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
22.05.2019, 12:47  [ТС]
Dias606, оказывается, что для отправки почтового шаблона при покупке в 1 клик отдельно собирается информация в \bitrix\components\aspro\oneclickbuy.nex t\script.php
В файле удалось видоизменить данные в виде таблицы
PHP
1
2
3
4
5
6
7
8
$orderList .=  "<tr style='border: 1px solid grey;'>
                <td style='padding:10px;vertical-align:middle;border: 1px solid grey;text-align:center;'>".'<img style="width:80px;height:80px; " src="'.$arBasketItem["PREVIEW_PICTURE"].'">'."
                <td style='padding:10px;vertical-align:middle;border: 1px solid grey;text-align:center;'>".'<a href="'.$arBasketItem["DETAIL_PAGE_URL"].'">'.$arBasketItem['NAME'].'</a>'."</td> <!--Наименование главного товара ссылкой + цвет-->
                <td style='padding:10px;vertical-align:middle;border: 1px solid grey;text-align:center;'>".$arBasketItem['CML2_ARTICLE']."</td><!--Артикул-->
                <td style='padding:10px;vertical-align:middle;border: 1px solid grey;text-align:center;'>".$arBasketItem['QUANTITY']." ".$arMeasure[$arBasketItem['PRODUCT_ID']]['MEASURE']['SYMBOL_RUS']."</td><!--Количество-->
                <td style='padding:10px;vertical-align:middle;border: 1px solid grey;text-align:center;'>".str_replace('.0000','',$arBasketItem['PRICE']).' руб.'."</td><!--Цена-->
                <td style='padding:10px;vertical-align:middle;border: 1px solid grey;text-align:center;'>".str_replace('#', number_format($curPrice, $arCurrency["DECIMALS"], $arCurrency["DEC_POINT"], $currencyThousandsSep), $arCurrency['FORMAT_STRING'])."</td><!--Сумма-->
                <tr>";
В этом же файле происходит отправка данных
PHP
1
CEvent::Send("ONE_CLICK", $SITE_ID, $arMessageFields);
Вот только в форму "1 клик" было добавлено поле "Город", а в файле \bitrix\components\aspro\oneclickbuy.nex t\script.php не удается найти информацию о данном поле.

Возможно ли с помощью AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend")); произвести условие на проверку отправки по типу почтового события (в данном случае "ONE_CLICK") и добавить в массив $arBasketItem свое поле?
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
22.05.2019, 13:08
для начала посмотри какие данные есть в массиве,
PHP
1
2
3
4
5
6
7
8
9
10
use Bitrix\Main\Diag\Debug;
AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend"));
class MyForm
{
function my_OnBeforeEventSend(&$arFields)
  {
   $arFields["WEB_URL"]= $_SERVER['HTTP_REFERER'];
   Debug::dumpToFile($arFields, "PARAM", '/log/array.txt');
  }
}
данные запишутся при отправке в корень сайта папка log файл array.txt, если сами не разберетесь скиньте массив сюда посмотрим что можно сделать

Добавлено через 2 минуты
Цитата Сообщение от _marisha Посмотреть сообщение
оказывается, что для отправки почтового шаблона при покупке в 1 клик отдельно собирается информация в \bitrix\components\aspro\oneclickbuy.nex t\script.php
не лучшая идея править этот файл, так как при обновлении решения aspro, ваш код затрется
0
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
22.05.2019, 13:43  [ТС]
Dias606, спасибо огромное за идею
Оказывается, в \bitrix\components\aspro\oneclickbuy.nex t\script.php можно получить данные о поле и передать в почтовый шаблон
PHP
1
2
3
4
5
6
7
8
9
10
$arMessageFields = array(
            "RS_ORDER_ID" => $orderID,
            "CLIENT_NAME" => ($_POST['ONE_CLICK_BUY']['FIO'] ? $_POST['ONE_CLICK_BUY']['FIO'] : $_POST['ONE_CLICK_BUY']['CONTACT_PERSON']),
            "ACCOUNT_NUMBER" => $arOrderQuery["ACCOUNT_NUMBER"],
            "PHONE" => $_POST["ONE_CLICK_BUY"]["PHONE"],
            "CITY" => $_POST["ONE_CLICK_BUY"]["CITY"],
            "ORDER_ITEMS" => $orderList,
            "ORDER_PRICE" => str_replace('#', number_format(($arOrderQuery["PRICE"] ? $arOrderQuery["PRICE"] : $orderPrice), $arCurrency["DECIMALS"], $arCurrency["DEC_POINT"], $currencyThousandsSep), $arCurrency['FORMAT_STRING']),
            "COMMENT" => $_POST['ONE_CLICK_BUY']['COMMENT'],
            "RS_DATE_CREATE" => ConvertTimeStamp(false, "FULL"),
Цитата Сообщение от Dias606 Посмотреть сообщение
не лучшая идея править этот файл, так как при обновлении решения aspro, ваш код затрется
- а если перенести в свое пространство (/local/components/aspro/oneclickbuy.next)?
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
22.05.2019, 13:58
Лучший ответ Сообщение было отмечено _marisha как решение

Решение

ну смотри если больше вариантов нет то да можно перенести, просто я стараюсь так не делать потому что aspro обновляет свои решения довольно часто, вот пару дней назад глобальное обновление было

Добавлено через 4 минуты
кстати у aspro есть глобальный массив в котором есть твой город
PHP
1
global $arRegion;
0
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
24.05.2019, 07:03  [ТС]
Цитата Сообщение от _marisha Посмотреть сообщение
перенести в свое пространство
- как оказалось, именно oneclickbuy.next не предусмотрена доработка. Поэтому не получится перенести доработанный компонент в свое пространство
ТП Аспро: "вы можете перед обновление сделать резервные копии файлов, которые изменяли и потом их обратно вернуть на место. Другого варианта к сожалению не могу вам предложить"
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
24.05.2019, 07:14
ага я тоже вчера пробовал перенести не получилось, нужно было добавить строчку кода, о которой я аспро прошу уже месяца 3 =)
Миниатюры
Почтовый шаблон NEW_ONE_CLICK_BUY  
0
11 / 11 / 2
Регистрация: 29.05.2011
Сообщений: 533
24.05.2019, 08:08  [ТС]
Dias606, да, не такие уж они и расторопные
0
3060 / 1459 / 265
Регистрация: 16.03.2008
Сообщений: 6,499
Записей в блоге: 2
24.05.2019, 09:31
Цитата Сообщение от _marisha Посмотреть сообщение
ТП Аспро: "вы можете перед обновление сделать резервные копии файлов, которые изменяли и потом их обратно вернуть на место. Другого варианта к сожалению не могу вам предложить"
На самом деле есть другой вариант. Использовать Git. Правда сам не пробовал в таком режиме, но попробовать можно.

1. Когда код еще родной аспрошный. создаем репозиторий. (соответственно появляется ветка master)
далее создаем ветки aspro и marisha (названия можно свои )
2. переходим в marisha выполняем необходимые правки
3. мержим в мастер и переходим на него.

Потом прилетает обновление от аспро
4. переключаемся на аспро, обновляемся
5. создаем ветку, например update20190520
6. мерджим в нее ветку masrisha. на этом этапе решаем конфликты если git сам не сможет разрулить(это может быть если аспро те же самые строчки поменяет)
7. переходим на мастер и мерджим временную ветку

главное ни когда не мерджить мастера в ветки aspro и marisha
но тут есть одна беда. На боевом сервере этого лучше не делать, т.к. будут и дургие изменения возможно глобальные и переключаться на ветки которые не получают этих обновлений не очень здорово (либо закрывать сайт на время обновления)

Но если делать налокальном сервере или сервере разработки тут другая беда... придется выполнять доп манипуляции
1. закомитили все на бою
2. обновили сервер разработки до состояния боя (все средствами git)
3. обновились на разарбаотки (все операции что я сказал выше)
4. обновились на бою
5. на бою сбросили состояние файлов обратное (git reset --hard HEAD)
6. отпарвили изменения сервера разработки на бой

Но тут надо сначла потренироваться и правильно настроить репозиторий. Соответвенно хорошо понимать работу гит и как проходят обновления..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2019, 09:31
Помогаю со студенческими работами здесь

Русский почтовый шаблон
Привет ! У кого есть русский шаблон почтового ящика может помогут и вышлют мне на ss2366@rambler.ru . Спасибо .

Требуется взломать почтовый почтовый ящик
Здравствуйте! требуется взломать почтовый ящик. Пишите в личку.

Писать сайт с нуля, бесплатный шаблон WP или платный шаблон WP?
Добрый день. Начинаю писать небольшой сайт, что в нем будет: Главная страница, Статьи, Контакты, Решения задач, Видео уроки,...

При установке шаблон,ошибка: этот шаблон попытался загрузить составляющую сборку
Здравствуйте! Пытаюсь добавить в vs 2010 ADO.NET Entity Data Model и вот какая досада, выскакивает ошибка: и аналогично,с любым...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru