Yandex Metrika
sanches.free 20 просмотров

Отключение служебных уведомлений модуля sale в Bitrix D7

Для чего нужен флаг

В составе sale есть механизм рассылки служебных писем и сопутствующих оповещений при событиях заказа. Иногда на отдельном хите нужно формально отключить эту ветку — например, при массовой обработке из консольного скрипта с эмуляцией веб‑контекста, при тестовом оформлении или когда письмо заменяется собственной очередью. В D7 для этого предусмотрен статический переключатель на классе \Bitrix\Sale\Notify.

Минимальный вызов

Достаточно попросить ядро не формировать стандартные уведомления до того, как начнётся логика, которая их провоцирует. Типичное место — ранний include вроде /local/php_interface/init.php или отдельный подключаемый файл, который гарантированно выполняется до компонентов корзины и оформления.

\Bitrix\Main\Loader::includeModule('sale');
\Bitrix\Sale\Notify::setNotifyDisable(true);

Подключение модуля перед вызовом снижает риск автозагрузочных сюрпризов в нестандартных точках входа; на обычной витрине модуль sale часто уже активен, но явный includeModule не мешает.

Область действия

Реализация опирается на внутреннее состояние, привязанное к одному запросу PHP: после установки флага эффект распространяется на цепочку вызовов внутри того же «хита», но не превращается в глобальную настройку сервера и не переживает следующий HTTP‑запрос. Если нужно отключать выборочно, оборачивайте участок кода и по завершении возвращайте прежнее поведение отдельным вызовом с false, когда API это допускает в вашей версии ядра.

Ограничения

  • Устаревшие компоненты и кастомные обработчики могут обходить стандартный контур Notify и всё равно дергать почту или события напрямую.
  • Часть цепочек в сторонних модулях подписывается на низкоуровневые хуки и не проверяет этот флаг.
  • Для полного контроля часто комбинируют отключение с подменой шаблонов почтовых событий или с отложенной отправкой через свою подсистему очередей.

Итог

setNotifyDisable(true) — быстрый способ приглушить штатные уведомления sale на время обработки текущего запроса, но рассчитывать на абсолютную тишину во всех проектах нельзя без проверки конкретных компонентов и доработок.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии