Налаштування тригеру зниження ціни на переглянутий товар у Бітрікс

Користувач переглянув товар тричі за два дні — явний сигнал інтересу. Але покупки немає. Стандартні email-розсилки з нагадуванням дають конверсію 2-3%. Автоматичне зниження ціни через 24-48 годин після перегляду або надсилання персонального купона конвертує до 15% таких користувачів. У Бітрікс це ре
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування тригеру зниження ціни на переглянутий товар у Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1459
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    808
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1163

Користувач переглянув товар тричі за два дні — явний сигнал інтересу. Але покупки немає. Стандартні email-розсилки з нагадуванням дають конверсію 2-3%. Автоматичне зниження ціни через 24-48 годин після перегляду або надсилання персонального купона конвертує до 15% таких користувачів. У Бітрікс це реалізується через модуль маркетингу та обробник подій. Ми налаштовуємо такий тригер під ключ за 3-5 робочих днів. Отримайте консультацію щодо вашого проекту. За 10 років досвіду ми реалізували десятки подібних рішень. Використовуємо перевірені паттерни з HL-блоками та агентами.

Фіксація переглядів

Перегляди товару записуються в таблицю HL-блоку. Стандартний модуль статистики (b_stat_page_event) не підходить — потрібен зв'язок конкретного користувача з конкретним товаром. Upsert-запит оновлює лічильник і дату, виключаючи дублювання:

// /local/lib/Tracking/ProductViewTracker.php namespace Local\Tracking; class ProductViewTracker { public static function track(int $userId, int $productId): void { if ($userId <= 0) return; // only authorized $conn = \Bitrix\Main\Application::getConnection(); // Upsert: update counter and last view date $conn->queryExecute(" INSERT INTO b_uts_product_view (UF_USER_ID, UF_PRODUCT_ID, UF_VIEW_COUNT, UF_LAST_VIEW, UF_TRIGGER_SENT) VALUES ({$userId}, {$productId}, 1, NOW(), 'N') ON DUPLICATE KEY UPDATE UF_VIEW_COUNT = UF_VIEW_COUNT + 1, UF_LAST_VIEW = NOW() "); } } 

Викликати в компоненті картки товару, в result_modifier.php:

// /local/templates/.default/components/bitrix/catalog.element/main/result_modifier.php global $USER; if ($USER->IsAuthorized()) { \Local\Tracking\ProductViewTracker::track( (int)$USER->GetID(), (int)$arResult['ID'] ); } 

Як працює агент-тригер?

Агент запускається раз на годину, шукає користувачів з відповідними умовами та застосовує знижку:

namespace Local\Marketing; class PriceDropTriggerAgent { public static function run(): string { $conn = \Bitrix\Main\Application::getConnection(); // Products viewed 2+ times, not purchased, 24+ hours ago $candidates = $conn->query(" SELECT pv.UF_USER_ID, pv.UF_PRODUCT_ID, pv.UF_VIEW_COUNT FROM b_uts_product_view pv LEFT JOIN b_sale_basket sb ON sb.USER_ID = pv.UF_USER_ID AND sb.PRODUCT_ID = pv.UF_PRODUCT_ID AND sb.ORDER_ID IS NOT NULL WHERE pv.UF_VIEW_COUNT >= 2 AND pv.UF_LAST_VIEW < DATE_SUB(NOW(), INTERVAL 24 HOUR) AND pv.UF_TRIGGER_SENT = 'N' AND sb.ID IS NULL LIMIT 50 "); while ($row = $candidates->fetch()) { self::applyDiscount($row['UF_USER_ID'], $row['UF_PRODUCT_ID']); // Mark as sent $conn->queryExecute(" UPDATE b_uts_product_view SET UF_TRIGGER_SENT = 'Y' WHERE UF_USER_ID = {$row['UF_USER_ID']} AND UF_PRODUCT_ID = {$row['UF_PRODUCT_ID']} "); } return '\Local\Marketing\PriceDropTriggerAgent::run();'; } private static function applyDiscount(int $userId, int $productId): void { // Create personal coupon via marketing module $couponCode = 'VIEW_' . strtoupper(substr(md5($userId . $productId . time()), 0, 8)); \CCatalogDiscountCoupon::Add([ 'DISCOUNT_ID' => VIEWED_PRODUCT_DISCOUNT_ID, // ID of pre-created 10% discount 'CODE' => $couponCode, 'ONE_TIME' => 'Y', // one-time 'ACTIVE' => 'Y', 'ACTIVE_FROM' => new \Bitrix\Main\Type\DateTime(), 'ACTIVE_TO' => \Bitrix\Main\Type\DateTime::createFromTimestamp(time() + 86400 * 3), 'MAX_USE' => 1, ]); // Link coupon to user via HL-block PersonalCouponRepository::save($userId, $productId, $couponCode); // Email user self::sendEmail($userId, $productId, $couponCode); } } 

Чому агент запускається раз на годину?

Частота обрана не випадково. Інтервал менше 30 хвилин створює надмірне навантаження на базу при великій кількості переглядів. Раз на годину — баланс між своєчасністю та продуктивністю. За потреби можна змінити крон-завдання до 15 хвилин для високонавантажених проектів.

Знижка через модуль маркетингу

Базова знижка створюється один раз через адміністративний інтерфейс (Маркетинг → Знижки) або через API:

\CCatalogDiscount::Add([ 'NAME' => 'Персональна знижка на переглянутий товар', 'LID' => SITE_ID, 'ACTIVE' => 'Y', 'VALUE' => 10, // знижка 10% 'VALUE_TYPE' => 'P', 'COUPON_TYPE' => 'U', // тільки з купоном 'SORT' => 300, 'PRIORITY' => 1, ]); 

Ідентифікатор цієї знижки прописується в константу VIEWED_PRODUCT_DISCOUNT_ID.

Як уникнути повторного застосування знижки?

Поле UF_TRIGGER_SENT в HL-блоці блокує повторну обробку. Після видачі купона агент більше не опрацьовує цю пару користувач-товар. Додатково перевіряється наявність замовлення — якщо користувач вже купив товар, тригер не спрацьовує.

Чому важливо чистити старі записи?

Таблиця переглядів може розростися до мільйонів рядків. Раз на тиждень агент видаляє записи старші 30 днів із відправленим тригером. Це прискорює вибірку та знижує навантаження на базу.

Процес роботи

  1. Аналітика: визначаємо умови тригеру (кількість переглядів, часовий поріг, розмір знижки).
  2. Прототипування: створюємо HL-блок, налаштовуємо агент, тестовий сценарій.
  3. Розробка: пишемо код трекера, агента, генерації купонів.
  4. Тестування: перевірка на тестовому товарі, логування, коригування.
  5. Деплой і моніторинг: запуск, спостереження за конверсією.

Що входить у роботу

  • Розробка та інтеграція трекера переглядів
  • Створення агента з гнучкими умовами
  • Налаштування персональних купонів
  • Email-повідомлення (опціонально)
  • Документація та передача доступів
  • Гарантія 30 днів на коректну роботу

Строки орієнтовно

Етап Строк
Аналітика та прототип від 1 дня
Розробка від 2 днів
Тестування та деплой від 1 дня
Разом від 3 до 5 днів

Вартість розраховується індивідуально. Оцінимо ваш проект безкоштовно — просто зв'яжіться з нами.

Інтеграція з email-повідомленнями

Email-повідомлення про знижку — критична частина воронки. Без листа купон лежить у базі, користувач про нього не знає. Шаблон створюється в поштових подіях 1С-Бітрікс (Маркетинг → Поштові події). У шаблон підставляються: назва товару, фото, нова сума знижки, код купона та пряме посилання на картку.

Оптимальний ланцюжок: перший лист відразу після видачі купона, другий — через 24 години з нагадуванням «купон закінчується через 48 годин». Такий ланцюжок підвищує підсумкову конверсію з 10–15% до 18–22%.

Типові помилки при налаштуванні тригеру

  • Занадто малий поріг переглядів (1 замість 2–3): купони отримують випадкові відвідувачі без реального наміру купити.
  • Відсутність перевірки на існуюче замовлення: користувач уже купив товар, але отримує купон — зайва знижка.
  • Немає обмеження по частоті повторної видачі: один користувач може отримати купон на той самий товар кілька разів.
  • Не чистяться старі записи: таблиця переглядів розростається, вибірка сповільнюється.

Порівняння механік конверсії

Механізм Конверсія Складність впровадження
Email-нагадування 2-3% Низька
Персональний купон 10-15% Середня
Автоматична знижка в кошику 8-12% Висока

Персональний купон дає конверсію в 5 разів вище, ніж просте нагадування. Вибирайте відповідний варіант під свій бюджет і завдання. Ми гарантуємо прозорість на всіх етапах. Отримайте консультацію — допоможемо підібрати оптимальний сценарій.