Оформление заказа с необязательным полем «E-mail»
Отсутствие электронной почты у посетителя сайта может стать причиной несовершившегося заказа в интернет-магазине. да, и такое бывает!
Замечательно, давайте сделаем свойство заказа «имейл» необязательным полем. Снимаем галочку, но нет же — компонент sale.order.ajax все-равно ругается, что поле email не заполнено. И даже снятая галочка в настройках главного модуля «E-mail является обязательным полем:» не помогает. Что делать? Лезем в код компонента sale.order.ajax, узнаем что разработчики догадались впихнуть туда обработчики событий, на которых мы бы с радостью и «выехали», но вызовы обработчиков находятся после проверки $_POST в компоненте, поэтому и тут разочарование. Придется либо кастомить логику компонента, либо говно хардкодить прямо в init.php. Из двух зол, я выбрал второе, поскольку уж очень не хочется один из важнейших компонентов оставлять не обновляемым системой.
Итак, намутил вот такой кондовый способ, который особо не тестировал, поэтому собираем консилиум, критикуем и предлагаем:
init.php:
// ORDER_PROP_2 - свойство заказа "телефон" // ORDER_PROP_3 - свойство заказа "email" global $APPLICATION; if ('/personal/order/make/' == $APPLICATION->GetCurDir()) // урл страницы оформления заказа < $sOrderPropPhone = ''; if (isset($_POST['ORDER_PROP_2'])) // эту секцию if можно вообще удалить, если у вас телефон не обязательное поле < $sOrderPropPhone = filter_var($_POST['ORDER_PROP_2'], FILTER_SANITIZE_NUMBER_INT); // аналог preg_replace("/[^0-9,+,-]/","",$string); >// если и телефон не заполнен, тогда вместо него в мыле будет значение unix времени // это нужно только для того чтобы не выводить ошибку "имейл не заполнен", т.к. телефон у нас все-равно обязательное поле if (0 == strlen($sOrderPropPhone)) < $sOrderPropPhone = time(); >if ((!isset($_POST['ORDER_PROP_3']) || empty($_POST['ORDER_PROP_3']))) < $_POST['ORDER_PROP_3'] = $sOrderPropPhone."@mysite.ru"; >>
Для универсальности невозбраняется предварительно узнать актуальный ORDER_PROP_ID и option SERVER_NAME.
Ну, а в шаблоне компонента sale.order.ajax, файл props.php
elseif($arProperties[«TYPE»] == «TEXT») < if ("Y" == $arProperties["IS_EMAIL"] && strpos($arProperties["VALUE"], "@mysite.ru")) < $arProperties['VALUE'] = ''; >?> » value=»» name=»» FIELD_NAME»]?>»>
Т.е. проверяем, если выводится инпут для имейла и значение имейла содержит в себе наше фейкомыльце, то подменяем его на пустую строку, чтобы юзер внедоумении не видел под каким имейлом он будет в БД.
и чуть выше по коду файла props.php место где выводится label для инпута:
Как настроить персонализированную рассылку
Персонализация рассылок — это подход в маркетинге, когда каждый клиент получает письмо с учетом его персональных данных.
Мы добавили множество настраиваемых параметров в маркетинговые рассылки CRM. Теперь вы можете добавить не только имя клиента и обратиться к нему персонально, но также указать дату рождения или телефон его личного менеджера. Это позволит сделать рассылку более персонализированной и значимой для клиента.
Параметры работают только с динамическими сегментами и представляют собой теги #ПАРАМЕТР#, которые во время отправления сообщения заменяются реальными данными клиента.

Как работают параметры на примере email рассылки
Нажмите на три точки рядом с полем Тема письма > выберите нужный пункт: Контакт, Компания или Лид > выберите параметр.

Тег появится в строке темы письма. Скопируйте его и вставьте в текст сообщения.

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

Выберите сегмент, в который вы хотите сделать рассылку. Количество писем будет отображаться ниже.

Подробнее о сегментах читайте в статье Сегменты клиентов.
Убедитесь, что все правильно, и отправьте письма. При рассылке параметры автоматически будут заменены данными из карточки лидов.

Таким образом, письмо будет адресовано разным людям:


Рекомендуем прочитать:
- Проверка портала для запуска Email рассылок и создания CRM-форм.
- Общие правила использования рассылок.
- Создание рассылок.
Интеграция «1С-Битрикс: Управление сайтом» и Битрикс24
Вы можете отслеживать заказы, оплату и отгрузку товаров с магазина «1С-Битрикс: Управление сайтом» в вашем Битрикс24 с помощью специального приложения Обмен с 1С-Битрикс Управление сайтом. Для такой интеграции необходимо настроить сервер, на котором работает сайт с магазином.
Как это сделать
На большинстве серверах запрещено показывать страницы сайта в iframe-ах на сторонних ресурсах.
Вам нужно создать правило на сервере, которое разрешает открывать страницы в iframe на сторонних сайтах. Делается это с помощью добавления специального HTTP-заголовка Content-Security-Policy к страницам административного раздела:
/bitrix/admin/sale_order.php /bitrix/admin/sale_order_create.php /bitrix/admin/sale_order_edit.php /bitrix/admin/sale_order_view.php /bitrix/admin/sale_order_payment_edit.php /bitrix/admin/sale_order_shipment_edit.php /bitrix/admin/sale_delivery_request_view.php /bitrix/admin/sale_delivery_request.php /bitrix/admin/sale_app_rest_sender.phpНапример, в «1C-Битрикс: Виртуальная машина» версии 7.4.4 сделать это можно так:
Создать файл /etc/nginx/bx/site_avaliable/bx_exclude_x_frame.conf с таким содержимым (замените адрес вашего Битрикс24 в коде):
location ~* ^/bitrix/admin/sale_(order|delivery|app_rest_sender).*\.php$ < add_header Content-Security-Policy "frame-ancestors https://адрес_вашего_Битрикс24;"; proxy_pass $proxyserver; >Обратите внимание, что в целях безопасности мы указываем конкретные адреса Битрикс24, которым нужно разрешить доступ к страницам магазина в iframe – например https://portal1.bitrix24.ru . Если нужно дать доступ нескольким Битрикс24, то их адреса указываются через пробел. Можно указать только домен, а можно и конкретный адрес (например https://portal1.bitrix24.ru/section/page.php ).
include bx/site_avaliable/bx_exclude_x_frame.conf;nginx -tservice nginx reloadCentOS 7:
systemctl reload nginx.serviceЕсли вы используете «1C-Битрикс: Виртуальная машина» версии 7.5 и выше , то достаточно всего лишь создать файл /etc/nginx/bx/site_settings//bx_exclude_x_frame.conf с тем же содержимым из п.1. После перезапуска nginx настройки из этого файла применятся к сайту .
Например, для сайта mysite.ru путь к файлу будет таким: /etc/nginx/bx/site_settings/mysite.ru/bx_exclude_x_frame.conf.
Если у вас свое окружение или хостинг, обратитесь к администратору или в поддержку вашего хостинга.
Проверьте также, включена ли у вас защита от фреймов в продукте «1С-Битрикс: Управление сайтом». Для этого в административной панели перейдите в раздел Настройки > Проактивная защита > Защита от фреймов. Если у вас включена защита от фреймов, то внесите страницы интеграции в Исключения:
![]()
Ошибки и их решение
Ошибка «Invalid csrf token» может возникать из-за значения параметра SameSite в куки PHPSESSID – по умолчанию он имеет значение Lax .
Для решения проблемы нужно обновить php до версии 7.3 и выше (php 7.4 рекомендуется) и прописать в php.ini параметры:
session.cookie_secure = On session.cookie_samesite="None"Если нет возможности включить данные параметры в php.ini, то попробуйте прописать похожие параметры в файл .htaccess :
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=NoneОбращение к сайту при этом должно быть только по HTTPS.
- Курс «Виртуальная машина VMBitrix v7.x».
- Проактивная защита.
Способы подключения почтовых ящиков в Битрикс24
В Битрикс24 есть несколько способов подключения почты. Добавляйте почтовые ящики сервисов Gmail, Outlook, iCloud, Office 365, Exchange, Yahoo!, Aol, Яндекс, Mail.ru или корпоративную почту.
Как подключить почту в веб-версии и мобильном приложении Битрикс24
В веб-версии перейдите в раздел Почта в меню слева. В мобильном приложении откройте любую карточку CRM, где есть почта: сделки, лиды, контакты, компании, счета, предложения.
Мобильное приложение
В разделе Почта в углу слева нажмите на электронный адрес и выберите Подключить новый.
Выберите почтовый сервис, который хотите подключить к вашему Битрикс24.
В карточке CRM перейдите к созданию письма. В поле Отправитель нажмите на стрелку и выберите +Добавить отправителя.
Нажмите Подключить почту и выберите почтовый сервис.
Подключить почтовые ящики можно четырьмя способами: через OАuth/ХOАuth, с помощью логина и пароля от почтового ящика или пароля приложения, через IMAP и SMTP-сервер.
Рассказываем о вариантах подключения.
OАuth/ХOАuth
Это способ авторизации в почте, когда вы даете Битрикс24 доступ к вашему почтовому ящику без передачи логина и пароля.
Мобильное приложение
Выберите почтовый сервис, который хотите подключить. Нажмите Авторизация (1).
Авторизуйтесь в выбранном сервисе. После этого нажмите Подключить (2).

После этого ящик будет подключен к почте в Битрикс24.
Авторизуйтесь в почте. После этого почтовый ящик будет добавлен в список отправителей в почте CRM.
Логин и пароль от почтового ящика
Это способ подключения почтового ящика, когда вы даете Битрикс24 доступ к вашей почте, используя логин и пароль.
Мобильное приложение
Выберите почтовый сервис, который хотите подключить. Нажмите Авторизация (1).

Введите логин и пароль от почтового ящика. Дайте разрешение Битрикс24 на доступ к почтовому ящику. После этого нажмите Подключить (2).

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

Пароль приложения
Пароль приложения — это код, который дает другому приложению доступ к вашему аккаунту в почте. Пароль предоставит доступ только к письмам, но не разрешит Битрикс24 получать другую информацию из вашего аккаунта.
Как создать пароль приложения для разных почтовых агентов описано в инструкциях:
IMAP и SMTP
Этот способ подходит для подключения корпоративных ящиков.
Чтобы вы могли отправлять и получать письма с корпоративной почты, заполните данные:
- Адрес IMAP- и SMTP-сервера.
- Порт — это число от 1 до 65535. Его используют, чтобы разные приложения могли обмениваться трафиком — получать и передавать данные.
- E-mail — ваша корпоративная почта, например antonova@mycompany.ru.
- Пароль приложения или почтового ящика.
Информацию о корпоративных IMAP- и SMTP-серверах и о портах вы можете узнать у системного администратора или директора вашей компании.
Мобильное приложение
Перейдите к добавлению нового почтового ящика и выберите Корпоративная почта.
Введите данные корпоративной почты: адреса IMAP- и SMTP-серверов, порты, ваш e-mail и пароль. Нажмите Подключить.
Перейдите к созданию письма в карточке CRM. Нажмите Подключить почту и выберите Корпоративная почта.
Введите данные корпоративной почты: адреса IMAP- и SMTP-серверов, порты, ваш e-mail и пароль. Нажмите Далее.

Коротко
Рекомендуем прочитать: