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

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

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1439
  • 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 Appointment Booking Widget for a Medical Center
    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. Экономия на покупке готового модуля достигает $450–650, а срок окупаемости — менее месяца.

Почему стандартный модуль подписок не подходит?

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

Как настроить уведомление о поступлении товара?

Вариант 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 не срабатывает (например, остатки меняются не через стандартные методы), настраивается агент Битрикс, запускаемый раз в час. Он проверяет наличие остатков у товаров, на которые есть подписчики, и отправляет письма. Агент — надёжная альтернатива.

Какие ошибки возникают при настройке?

Ошибка №1: забывают очищать флаг IS_SENT при повторном появлении остатка. Если товар снова закончился и появился, подписчик должен получить второе уведомление. В кастомной таблице это решается сбросом флага при обнулении остатка. Ошибка №2: путаница с привязкой подписки к торговому предложению (SKU). Мы подписываемся на конкретный SKU, а не на родительский товар. Ошибка №3: неверный маппинг почтовых полей — письмо приходит с пустыми данными. Все эти ошибки мы исправляем в процессе тестирования.

Этапы настройки и трудозатраты

Этап Описание Время (часы)
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 часа. Стоимость рассчитывается индивидуально в зависимости от сложности, но экономия от отказа от покупки готового модуля может превышать $450–650. Вы получаете стабильное решение с возможностью расширения.

Наш опыт: более 5 лет разработки под Битрикс, 50+ проектов по кастомизации интернет-магазинов. Настроим уведомление о поступлении товара под ключ с гарантией стабильной работы. Свяжитесь с нами для оценки вашего проекта — получите консультацию бесплатно.

Как работает агент?

Агент запускается один раз в час. Запрос: выбирает товары с подписчиками, где IS_SENT = false, и проверяет их остатки через CIBlockElement::GetList. Если остаток > 0 — отправляет письма тем же способом, что и в обработчике.