Настройка email-уведомления о брошенном просмотре 1С-Битрикс
Триггер брошенного просмотра фиксирует факт — пользователь смотрел товар, но ничего не сделал. Email-уведомление превращает этот факт в маркетинговое действие: письмо приходит через 30–60 минут с карточкой просмотренного товара, ценой и кнопкой «Посмотреть снова». Реализация строится поверх триггера из b_catalog_viewed_product и стандартного почтового движка Битрикс.
Тип почтового события
В Битрикс письма отправляются через систему почтовых событий. Нужно создать тип события в разделе «Настройки → Почта → Типы почтовых событий»:
-
Символьный код:
CATALOG_ABANDONED_VIEW -
Поля события:
PRODUCT_ID,PRODUCT_NAME,PRODUCT_URL,PRODUCT_PRICE,PRODUCT_IMAGE,USER_NAME,USER_EMAIL
Шаблон письма создаётся в «Настройки → Почта → Шаблоны почтовых событий» и привязывается к типу события для нужного сайта.
Шаблон письма
Шаблон пишется в виде HTML с макросами Битрикс. Данные о товаре передаются через массив полей события:
Тема: #PRODUCT_NAME# — вы смотрели этот товар
Тело:
<p>Здравствуйте, #USER_NAME#!</p>
<p>Вы недавно просматривали товар:</p>
<p><img src="#PRODUCT_IMAGE#" width="200"/></p>
<p><strong>#PRODUCT_NAME#</strong></p>
<p>Цена: #PRODUCT_PRICE# руб.</p>
<a href="#PRODUCT_URL#">Посмотреть товар</a>
Изображение товара (PRODUCT_IMAGE) — абсолютный URL. В агенте нужно получать путь из CFile::GetPath($previewPictureId) и добавлять домен сайта.
Логика отправки в агенте
Агент опрашивает b_catalog_viewed_product, находит записи в окне «от 30 до 90 минут назад», у которых нет соответствующего заказа или добавления в корзину, и отправляет письмо:
$email = \Bitrix\Main\UserTable::getById($userId)
->fetchObject()
?->getEmail();
if ($email) {
\Bitrix\Main\Mail\Event::send([
'EVENT_NAME' => 'CATALOG_ABANDONED_VIEW',
'LID' => SITE_ID,
'C_FIELDS' => [
'USER_EMAIL' => $email,
'USER_NAME' => $userName,
'PRODUCT_ID' => $productId,
'PRODUCT_NAME' => $productName,
'PRODUCT_URL' => $productUrl,
'PRODUCT_PRICE' => $price,
'PRODUCT_IMAGE' => $imageUrl,
],
]);
}
Дедупликация и ограничения частоты
Без контроля пользователь может получить несколько писем за день, если просматривал разные товары. Ограничения:
- Не более одного письма о брошенном просмотре в 24 часа на пользователя
- Не отправлять, если уже ушло письмо о брошенной корзине (
CATALOG_ABANDONED_CART) за этот же период - Исключать пользователей, отписавшихся от маркетинговых рассылок (поле
UF_MAILING_SUBSCRIBEвb_uts_userили проверка поb_subscribe_user_group)
Таблица дедупликации bl_abandoned_view_sent: поля (user_id, sent_date) с уникальным индексом. Перед отправкой — INSERT OR IGNORE, при наличии записи — пропуск.
Что настраиваем
- Тип почтового события
CATALOG_ABANDONED_VIEWи HTML-шаблон письма - Агент с логикой выборки из
b_catalog_viewed_productи проверкой корзины/заказов - Таблицу дедупликации с ограничением одного письма в сутки на пользователя
- Проверку статуса подписки перед отправкой
- Формирование абсолютных URL изображений товара для корректного отображения в письме







