Настройка уведомления о поступлении товара 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка уведомления о поступлении товара 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1230
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    843
  • 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 Appointment Booking Widget for a Medical Center
    580
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    749
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    980

Настройка уведомления о поступлении товара 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 часа.