Отключение служебных уведомлений модуля 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 дней гарантии