Налаштування email-сповіщення про залишений перегляд 1С-Bitrix
Триггер залишеного перегляду фіксує факт — користувач дивився товар, але нічого не зробив. Email-сповіщення перетворює цей факт в маркетингову дію: лист приходить через 30–60 хвилин з карточкою переглянутого товару, ціною та кнопкою «Подивитися знову». Реалізація будується поверх триггера з b_catalog_viewed_product та стандартного поштового движка Bitrix.
Тип поштової події
У Bitrix листи відправляються через систему поштових подій. Потрібно створити тип події у розділі «Налаштування → Пошта → Типи поштових подій»:
-
Символічний код:
CATALOG_ABANDONED_VIEW -
Поля eventi:
PRODUCT_ID,PRODUCT_NAME,PRODUCT_URL,PRODUCT_PRICE,PRODUCT_IMAGE,USER_NAME,USER_EMAIL
Шаблон листа створюється у «Налаштування → Пошта → Шаблони поштових подій» та прив'язується до типуことに для потрібного сайту.
Шаблон листа
Шаблон пишеться у вигляді HTML з макросами Bitrix. Дані про товар передаються через масив полів события:
Тема: #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 зображень товару для коректного відображення в листі







