Налаштування повідомлення про надходження товару в 1С-Бітрікс

Налаштування повідомлення про надходження товару 1С-Бітрікс Уявіть: популярний товар закінчився, і потенційний покупець іде, не залишивши контактів. Ви втрачаєте продажі, а клієнти — нерви. Вбудованого функціоналу сповіщень про появу в 1С-Бітрікс немає — стандартний компонент «Підписка» не передб
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування повідомлення про надходження товару в 1С-Бітрікс
Простий
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • 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
    751
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    872
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1153

Налаштування повідомлення про надходження товару 1С-Бітрікс

Уявіть: популярний товар закінчився, і потенційний покупець іде, не залишивши контактів. Ви втрачаєте продажі, а клієнти — нерви. Вбудованого функціоналу сповіщень про появу в 1С-Бітрікс немає — стандартний компонент «Підписка» не передбачений. Ми вирішуємо це завдання через кастомну розробку, використовуючи окрему таблицю підписок або модуль subscribe. Економія на купівлі готового модуля сягає 50 000 гривень, а вартість ліцензії на комерційний модуль може становити до 7 000 грн — наше рішення окупається за 1-2 місяці. Типовий проект коштує 8000-12000 грн.

Чому стандартний модуль підписок не підходить?

Модуль subscribe призначений для розсилок, і його адаптація під підписки на товари — компроміс. Кожен товар (або SKU) реєструється як «рубрика», а підписка — як підписка на рубрику. При появі залишків надсилається лист вручну або через агент. Недоліки: відсутність прив'язки до конкретного товару, складність управління, ризик дублювання листів. Для невеликих магазинів з десятком товарів варіант прийнятний, але для каталогів з тисячами позицій краще використовувати власну таблицю підписок. В одному проекті ми зіткнулися з ситуацією, коли модуль subscribe надсилав 3 однакових листи одному підписнику — через відсутність унікальності. Після міграції на власну таблицю проблема зникла. Кастомне рішення вдвічі надійніше та працює в 2 рази швидше. Крім того, власна таблиця з індексами на полях PRODUCT_ID та EMAIL обробляє запити в 3 рази швидше, ніж запити до модуля subscribe через ORM.

Налаштування власної таблиці для сповіщення про надходження товару

Варіант 1: Через модуль підписок

Модуль subscribe можна адаптувати, але це потребує додаткової логіки. Приклад: при зміні залишків агент перевіряє підписки на відповідний товар і надсилає листи. Однак такий підхід не дає гнучкості: немає можливості зберігати дату надсилання, статус, унікальність підписки. Часу на адаптацію йде приблизно стільки ж, скільки на власну таблицю, а результат — гірший.

Варіант 2: Власна таблиця підписок

Це правильніше рішення — створюється окрема таблиця product_availability_notify з полями PRODUCT_ID, EMAIL, USER_ID, DATE_ADD, DATE_SENT, IS_SENT, а також індексами для прискорення вибірок. Унікальність по парі товар-email виключає дублі. Форма підписки — проста HTML-форма з AJAX, з'являється при QUANTITY = 0. При появі залишків спрацьовує обробник події OnProductUpdate. Посилання на офіційну документацію події OnProductUpdate.

Характеристика Модуль subscribe Власна таблиця
Складність реалізації Низька Середня
Гнучкість зберігання Низька Висока
Унікальність підписок Не гарантована Гарантована
Можливість розширення Обмежена Повна
Продуктивність запитів Низька Висока (завдяки індексам)

Тригер надсилання сповіщень

Подія OnProductUpdate з модуля catalog викликається при зміні поля QUANTITY. В обробнику перевіряємо, якщо QUANTITY став більше нуля, а раніше був нулем — вибираємо всіх підписників і надсилаємо листи через поштову подію. Приклад коду:

AddEventHandler('catalog', 'OnProductUpdate', function($productId, $fields) { if (isset($fields['QUANTITY']) && (float)$fields['QUANTITY'] > 0) { $subscribers = NotifyTable::getList([ 'filter' => ['=PRODUCT_ID' => $productId, '=IS_SENT' => false], ])->fetchAll(); foreach ($subscribers as $subscriber) { \Bitrix\Main\Mail\Event::send([ 'EVENT_NAME' => 'PRODUCT_AVAILABLE_NOTIFY', 'LID' => SITE_ID, 'C_FIELDS' => [ 'EMAIL' => $subscriber['EMAIL'], 'PRODUCT_NAME' => $fields['NAME'], 'PRODUCT_URL' => $fields['DETAIL_PAGE_URL'], ], ]); } NotifyTable::updateMulti(['IS_SENT' => true], ['PRODUCT_ID' => $productId]); } }); 

Шаблон листа

Шаблон поштової події створюється в Налаштування → Поштові події → Типи подій. Тип події PRODUCT_AVAILABLE_NOTIFY з полями EMAIL, PRODUCT_NAME, PRODUCT_URL. Налаштування займає 1-2 години.

Агент для періодичної перевірки

Якщо подія OnProductUpdate не спрацьовує (наприклад, залишки змінюються не через стандартні методи), налаштовується агент Бітрікс, що запускається раз на годину. Він перевіряє наявність залишків у товарів, на які є підписники, і надсилає листи. Агент — надійна альтернатива.

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

Перша типова помилка — забувають очищати прапорець IS_SENT при повторній появі залишку. Якщо товар знову закінчився і з'явився, підписник повинен отримати друге сповіщення. У власній таблиці це вирішується скиданням прапорця при обнуленні залишку. Друга помилка — плутанина з прив'язкою підписки до торгової пропозиції (SKU). Ми підписуємося на конкретний SKU, а не на батьківський товар. Третя помилка — невірний маппінг поштових полів, через що лист приходить з порожніми даними. Всі ці помилки ми виправляємо в процесі тестування.

Етапи налаштування та трудозатрати

Налаштування складається з таких кроків:

  1. Створення таблиці підписок (міграція) — 1-2 год.
  2. Розробка форми підписки (HTML+AJAX) — 2-3 год.
  3. Реалізація обробника події OnProductUpdate — 2-3 год.
  4. Налаштування поштової події та шаблону — 1-2 год.
  5. Тестування на 3-5 товарах — 1-2 год.
  6. Підготовка документації — 1 год.
Етап Опис Час (години)
1. Створення таблиці Міграція для таблиці підписок 1-2
2. Форма підписки HTML + AJAX на сторінці товару 2-3
3. Обробник події OnProductUpdate з перевіркою залишків 2-3
4. Поштова подія Створення типу та шаблону 1-2
5. Тестування Перевірка на 3-5 товарах 1-2
6. Документація Посібник з експлуатації 1

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

  • Форма підписки (HTML + AJAX) на сторінці товару
  • Власна таблиця підписок з міграцією
  • Обробник події OnProductUpdate (або агент)
  • Поштова подія та шаблон листа
  • Документація з експлуатації
  • Навчання адміністратора (30 хв)
  • Гарантія коректної роботи 6 місяців

Терміни та вартість

Базове налаштування (форма + обробник + лист) — 4–8 годин. Якщо потрібна сторінка управління підписками в особистому кабінеті — ще 2–3 години. Вартість розраховується індивідуально залежно від складності, але економія від відмови від купівлі готового модуля може перевищувати 50 000 гривень. Ви отримуєте стабільне рішення з можливістю розширення.

Наш досвід: понад 10 років розробки під Бітрікс, 40+ проектів з кастомізації інтернет-магазинів. Налаштуємо сповіщення про появу товару під ключ з гарантією стабільної роботи. Зв'яжіться з нами для оцінки вашого проекту — отримайте консультацію безкоштовно.