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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування повідомлення про надходження товару 1С-Бітрікс
Проста
~1 робочий день
Часті питання

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

Етапи розробки

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

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

Налаштування сповіщення про поступлення товара у 1С-Бітрикс

Коли товар закінчується, замість кнопки «Купити» потрібно запропонувати покупцю підписатися на сповіщення. Вбудованого компонента для цього в стандартному Бітрикс немає — функціональність реалізується через подписки (модуль subscribe) або кастомну таблицю з обробником зміни остатків.

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

Модуль subscribe призначений для розсилок, але його можна адаптувати для подписок на товари. Покупець підписується на «рубрику», яка відповідає конкретному товару (або SKU). При появлені остатків — ручна або автоматична відправка.

Це не найчистіший підхід, але працює без додаткових таблиць.

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

Більш правильне рішення — окрема таблиця:

CREATE TABLE product_availability_notify (
    ID SERIAL PRIMARY KEY,
    PRODUCT_ID INT NOT NULL,
    EMAIL VARCHAR(255) NOT NULL,
    USER_ID INT NULL, -- NULL для гостей
    DATE_ADD TIMESTAMP DEFAULT NOW(),
    DATE_SENT TIMESTAMP NULL,
    IS_SENT BOOLEAN DEFAULT FALSE,
    UNIQUE(PRODUCT_ID, EMAIL)
);

Форма подписки — простої HTML-форма з AJAX-відправкою, з'являється при QUANTITY = 0 на сторінці товара.

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

Відправка при поступленні товара — через обробник подій зміни остатків. Подія викликається при оновленні поля QUANTITY у b_catalog_product:

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.

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

Альтернатива подій — агент Бітрикс, запускаємий за розписанням (раз на годину), який сам перевіряє появлення остатків у товарів з підписчиками:

Параметри → Інструменти → Агенти

Терміни виконання

Форма подписки + обробник + лист — 4–8 годин. Якщо потрібна сторінка управління подписками в особистому кабінеті — ще 2–3 години.