
По умолчанию Opencart отправляет клиенту уведомление по электронной почте после оформления заказа. В некоторых случаях это мешает: например, при тестировании магазина или использовании сторонней CRM для коммуникации. Решить задачу можно несколькими способами, не затрагивая ключевые процессы оформления заказа.
Самый простой вариант – отключить вызов метода $this->model_checkout_order->addOrderHistory с параметрами, отвечающими за отправку письма. Для этого открывается контроллер, связанный с подтверждением заказа (catalog/controller/checkout/confirm.php или аналогичный в зависимости от версии) и корректируется строка, где указывается notify = true. Замена значения на false блокирует отправку уведомления покупателю.
Другой способ – внести изменения в модель catalog/model/checkout/order.php, где формируется вызов почтового класса. Здесь достаточно закомментировать или удалить участок кода, отвечающий за передачу данных в объект Mail. Такой подход полностью исключает отправку писем о заказах, но при этом сохраняет возможность логирования и обновления статусов в админ-панели.
Если требуется временно остановить рассылку без правки файлов ядра, можно использовать модификатор через OCMOD или vQmod. Это позволит управлять поведением уведомлений без риска потерять изменения при обновлении Opencart.
Где в админке настроить уведомления о заказах

В OpenCart управление уведомлениями о заказах доступно в настройках магазина. Для изменения параметров:
- Откройте панель администратора.
- Перейдите в раздел Система → Настройки.
- Выберите нужный магазин и нажмите Редактировать.
- Откройте вкладку Почта.
На этой вкладке задаются ключевые параметры:
- Эл. почта администратора – адрес, на который будут приходить уведомления.
- Дополнительные адреса – можно указать несколько e-mail через запятую для копий писем.
- Почтовый протокол – Mail, SMTP или Sendmail, в зависимости от конфигурации сервера.
- Уведомлять о новом заказе – опция, включающая или отключающая отправку писем при оформлении заказа.
Если требуется отключить уведомления полностью, снимите галочку в пункте «Уведомлять о новом заказе». Для частичной настройки достаточно изменить список получателей или почтовый протокол.
Как временно отключить письма через настройки магазина
В панели администратора откройте раздел Система → Настройки, выберите нужный магазин и перейдите на вкладку Почта.
В поле Почтовый протокол вместо SMTP или Mail укажите пустое значение или временно измените на некорректный параметр, например disabled. При этом OpenCart не сможет подключиться к почтовому серверу и отправка писем будет заблокирована.
Чтобы отключить уведомления только о заказах, удалите адреса в поле Адреса для оповещений или снимите галочку с опции Оповещение о новом заказе в этой же вкладке.
После завершения тестов или обслуживания верните корректные данные протокола и адреса, чтобы возобновить работу почтовых уведомлений.
Редактирование шаблона уведомлений о заказах
Шаблоны писем в Opencart находятся в папке catalog/view/theme/ в директории используемой темы, раздел mail. Для изменения текста уведомлений об успешном заказе откройте файл order_add.tpl (в версиях 2.x) или соответствующий .twig файл (в версиях 3.x).
В шаблоне можно удалить ненужные блоки, такие как список товаров или адрес доставки, либо отредактировать текстовые строки. Для поиска используйте ключевые слова на английском языке, например Order ID или Products.
После изменения шаблона очистите кэш модификаций через админ-панель: Дополнения → Модификаторы → Обновить, затем сбросьте кэш в Система → Настройки → Очистить кэш. Без этого изменения могут не примениться.
Изменение кода контроллера checkout/order.php

В OpenCart отправка письма о заказе выполняется методом $this->model_checkout_order->addOrderHistory(), который обычно вызывается в контроллере catalog/controller/checkout/order.php. Чтобы отключить уведомление, нужно изменить этот вызов.
Найдите строку вида:
$this->model_checkout_order->addOrderHistory($order_id, $order_status_id, '', true);
Четвёртый параметр true указывает на отправку письма покупателю. Замените его на false:
$this->model_checkout_order->addOrderHistory($order_id, $order_status_id, '', false);
После изменения сохраните файл и очистите кэш модификаторов в административной панели. Письма о заказах больше отправляться не будут, но сама запись в истории заказов сохранится.
Как убрать вызов метода send из модели order
В OpenCart отправка письма о заказе инициируется внутри модели catalog/model/checkout/order.php или catalog/model/checkout/order/addOrderHistory (в зависимости от версии). Метод send вызывается после изменения статуса заказа.
Чтобы отключить уведомление, откройте файл catalog/model/checkout/order.php и найдите участок кода с вызовом:
$this->model_checkout_order->send($order_id);
Эту строку можно:
- закомментировать с помощью
//; - или полностью удалить, если возврат к стандартной логике не планируется.
После сохранения изменений письма перестанут отправляться при изменении статуса заказа. Рекомендуется перед редактированием сделать копию файла, чтобы при необходимости восстановить исходный код.
Отключение писем только для администратора

Для того чтобы письма о новых заказах не отправлялись на электронную почту администратора в OpenCart, необходимо внести изменения в файл catalog/model/checkout/order.php или соответствующий файл вашей версии движка.
Найдите метод addOrderHistory, который отвечает за уведомления. В блоке, где формируется отправка письма администратору, обычно используется проверка типа уведомления:
if ($notify) { $mail->send(); }
Чтобы отключить письма для администратора, замените или закомментируйте отправку для административного адреса:
// $mail->send(); // Администратор не получает уведомление
Письма для клиентов останутся активными, так как они формируются в отдельном блоке с адресом покупателя. При необходимости можно добавить условие по роли или статусу заказа, чтобы точно контролировать, какие уведомления блокировать.
После изменений сохраните файл и очистите кэш OpenCart (Администрирование → Система → Очистка кэша), чтобы новые настройки вступили в силу.
Отключение писем только для покупателя

Чтобы отключить уведомления для покупателя в OpenCart, изменять настройки почты для администратора необязательно. Доступно несколько подходов:
- Редактирование файла контроллера заказа:
- Перейдите в каталог
catalog/controller/mail. - Откройте файл
order.php. - Найдите блок, отвечающий за отправку письма покупателю:
$mail->send();. - Закомментируйте или удалите строку, чтобы письмо не отправлялось покупателю, но оставалось уведомление для администратора.
- Перейдите в каталог
- Использование расширений:
- Установите модуль управления уведомлениями, совместимый с вашей версией OpenCart.
- В настройках модуля отключите отправку письма покупателю, сохранив уведомления для администратора.
- Проверяйте совместимость с шаблонами, чтобы письмо не генерировалось автоматически.
- Модификация через VQMod или OCMOD:
- Создайте модификацию, которая удаляет вызов
$mail->send()только для покупателя. - Используйте условие
if ($customer_email)для точного контроля отправки. - Это позволяет обновлять OpenCart без потери изменений.
- Создайте модификацию, которая удаляет вызов
После внесения изменений рекомендуется:
- Создать тестовый заказ и убедиться, что письмо покупателю не отправляется.
- Проверить, что уведомление для администратора приходит корректно.
- Сохранять резервные копии файлов перед редактированием.
Как протестировать работу после внесённых изменений

После отключения отправки письма о заказе важно проверить, что изменения работают корректно и не нарушают другие функции магазина.
1. Создайте тестовый заказ с использованием разных способов оплаты и доставки. Убедитесь, что письмо не отправляется ни на e-mail администратора, ни на e-mail клиента.
2. Проверьте таблицу заказов в базе данных. В стандартной установке Opencart информация хранится в таблице oc_order. Убедитесь, что статус заказа обновляется корректно и что нет полей с ошибочными значениями.
| Проверка | Что должно быть | Где смотреть |
|---|---|---|
| Отправка письма клиенту | Письмо не отправлено | Входящая почта тестового адреса |
| Отправка письма администратору | Письмо не отправлено | Почта администратора, настройки Opencart |
| Обновление статуса заказа | Статус меняется корректно | База данных, админ-панель |
| Создание нескольких заказов | Все заказы регистрируются без ошибок | Таблица oc_order |
3. Включите логирование ошибок в Opencart. После тестового заказа проверьте файлы system/logs/error.log на наличие предупреждений, связанных с отправкой писем или обработкой заказов.
4. Если используются расширения для уведомлений, отключите их временно и повторите тест. Это позволит убедиться, что изменения не конфликтуют с сторонними модулями.
5. Для комплексной проверки создайте заказ через фронтенд и админ-панель одновременно, чтобы проверить работу механизма обработки заказов с разных интерфейсов.
6. После тестирования рекомендуется откатить изменения в тестовой копии сайта, чтобы сравнить поведение с исходной версией. Сравнение таблиц oc_order и логов поможет выявить любые несоответствия.
Вопрос-ответ:
Можно ли отключить автоматическую отправку письма о новом заказе покупателю в Opencart?
Да, это возможно. Для этого нужно зайти в административную панель Opencart, перейти в раздел «Настройки» → «Почта» или «Система» → «Настройки магазина» → «Почта» и отключить соответствующие уведомления. Также можно сделать это через редактирование кода в файлах контроллеров заказов, если требуется полное отключение отправки писем.
Как отключить уведомление о заказе для администратора магазина в Opencart?
Для прекращения отправки писем администратору откройте раздел «Настройки» в панели управления, выберите нужный магазин и перейдите на вкладку «Почта». Там можно снять галочку с отправки уведомлений о новом заказе на указанный e-mail. Если стандартных настроек недостаточно, можно изменить файл catalog/controller/mail/order.php, закомментировав строки с функцией отправки писем.
Влияет ли отключение писем о заказах на работу корзины и оформления заказа в Opencart?
Нет, отключение уведомлений не влияет на процесс оформления заказа или работу корзины. Система продолжает фиксировать все заказы и обновлять их статусы в базе данных. Единственное изменение — письма не будут отправляться на электронные адреса администратора или покупателя, но все остальные функции магазина сохраняются.
Можно ли отключить отправку писем о заказе только для определенных статусов заказа?
Да, это возможно, но стандартные настройки Opencart такой функции не предоставляют. Для этого потребуется внести изменения в код: открыть файл catalog/controller/mail/order.php и добавить проверку статуса заказа перед вызовом функции отправки письма. Таким образом, письма будут уходить только при выбранных статусах заказа.
Нужно ли устанавливать дополнительные расширения, чтобы отключить отправку писем о заказах в Opencart?
Нет, для отключения стандартной отправки писем дополнительные модули не требуются. Все настройки можно изменить через панель управления или через редактирование файлов системы. Дополнительные расширения могут быть полезны, если нужно гибкое управление уведомлениями, например, отключение писем по конкретным условиям или для отдельных клиентов.
Как отключить уведомления о новом заказе для администратора в OpenCart?
Чтобы перестать получать письма о новых заказах в OpenCart, нужно зайти в панель администратора, перейти в раздел «Система» → «Настройки» → «Изменить магазин». Далее во вкладке «Почта» можно найти поле «Адрес электронной почты для уведомлений» и удалить или заменить адрес администратора. После сохранения изменений письма на старый адрес приходить не будут. Если требуется отключить уведомления для конкретных статусов заказов, это можно сделать в настройках расширений или модификаций, влияющих на отправку писем, либо через редактирование шаблонов уведомлений в файлах каталога.
