Opencart 2 отключение уведомления на почту. Отправка СМС и Email из OpenCart. Создание шаблона Email-сообщения о новом заказе администраторам интернет-магазина

Заказчик поставил задачу изменить приходящее сообщение на почту админа. Отправка email сообщений opencart. Думал совсем простая задача, но у меня ушло на это 2 дня. Первая трудность возникла при отсылке почты на mail.ru. Почему-то сообщения на данную почтовую службу просто не приходили.

Итак задачу получил. Дальше стал настраивать opencart изменил в настройках почту для сайта и для админа. Стал тестировать, но сообщения не приходили. До момента изменения попробовал форму просто от балды. Заказчик отписал что сообщение пришло, но суть его задания изменить в заголовке письма от: email, проще говоря ему приходили сообщения с почтой отправителя и получателя его же почтовый адрес.

Не знаю зачем нужна эта картинка вообще, ну да ладно.

Не приходят сообщения opencart

И вот заказчик отписал почту получил я же после изменения почтового адреса на ресурс от mail.ru никак не мог получить письмо, не стану же писать заказчику что не понимаю в чем дело. В итоге ушел целый день на это. В чем вопрос так и не понял, просто изменил почтовый адрес на yandex.

В следующий момент была полная растерянность откуда чего берется, хоть и уже работал на opencart. Следующий день ушел на то чтобы понять структуру ЦМС.

Основной файл отправки:

system\library\mail.php

По аналогии находим похожие поля в contact.tpl и дублируем. Затем находим контролер contact.php такое же название только расширение php. В данном случае было прописано в строке

$mail->setFrom($this->config->get("config_email"));

Заменил на

$mail->setFrom($this->request->post["email"]);

Если нужно передать в тело письма значения с формы то добавить в контролер

$mail->setText($this->request->post["name"]); $mail->setText($this->request->post["phone"]); $mail->setText($this->request->post["subject"]);

Я только только разбираюсь с Opencart 3 и не очень люблю ставить непонятные дополнение, а люблю все разбирать и изучать и вот после того как клиенту запустили сайт и в этот же день после первого заказа было принято решение переработать письмо которое приходит админу и менеджеру о заказе, а именно что бы в письме было:

  • фамилия
  • телефон
  • адрес
  • город
  • способ оплаты
  • способ доставки

Итого, нужно все поля которые заполняет покупатель на сайте.

В итоге вот к чему пришел.

Когда клиент оформляет заказ, то ему при ходит письмо со всей информацией:

тогда как администратору приходит вот такое вот грустное письмо(((


НУ как вы понимаете, а точнее кто хоть раз держал свои интернет магазины, сразу скажет, что это никуда не годится, не позвонить, ни узнать какую то информацию и что бы получить более подробную информацию надо заходить в админку,а если вы в пути и не можете зайти в админку?

НУ в итоге я пошел другим путем и сделал просто подмену писем, т.е. админу будет приходить такое же письмо как и клиенту)

а теперь немного магии и дело в шляпе)

Opencart 3 письмо админу о заказе

Для того что бы в opencart письмо админу о заказе вся информация приходила в письме, нужно править два файла:

  1. /catalog/controller/mail/order.php
  2. /catalog/view/theme/yourtheme/template/mail/order_alert.twig

order.php

Открываем файл order.php и ищем строку 270 где есть такой текст:

$mail->setTo($order_info[’email’]);
$mail->setFrom($from);
$mail->
$mail->setSubject(html_entity_decode(sprintf($language->get(‘text_subject’), $order_info[‘store_name’], $order_info[‘order_id’]), ENT_QUOTES, ‘UTF-8’));
$mail->setHtml($this->load->view(‘mail/order_add’, $data));
$mail->send();

Под ним вставляем этот код:

$mail->setTo($this->config->get(‘config_email’));
$mail->setFrom($this->config->get(‘config_email’));
$mail->setSender(html_entity_decode($order_info[‘store_name’], ENT_QUOTES, ‘UTF-8’));
$mail->setSubject(html_entity_decode(sprintf($this->language->get(‘text_subject’), $this->config->get(‘config_name’), $order_info[‘order_id’]), ENT_QUOTES, ‘UTF-8’));
$mail->setHtml($this->load->view(‘mail1/order_alert’, $data));
$mail->send();

Данная вставка кода была вставлена в раздел где формируется и отправляется письмо покупателю, и мы такое же письмо отправляем еще и администратору как видите мы подставили шаблон письма order_alert )))

order_alert.twig

То что мы сделали выше по факту ничего не изменит, нам будет приходить все то же убогое письмо, а все потому что мы еще не изменили шаблон письма который должен приходить администратору!

Смотрите, я делал все на стандартном шаблоне Opencart с темой default и поэтому я создавал специально для этого папку mail1 и в ней создаем файл order_alert.twig , если же у вас своя тема, то просто создаете папку mail если ее там нет

Данные для файла order_alert.twig полностью копируем из файла order_add.twig (который лежит по адресу /catalog/view/theme/default/template/mail)

После этого нам на почту придет вот такое письмо)


Ну и как обычно видео))

Нет похожих записей.

От автора: приветствую вас, друзья. Итак, мы продолжаем цикл статей, посвященных знакомству с одной из популярнейших CMS для создания интернет-магазинов – OpenCart (Оперкарт). В этой статье мы поговорим о том, как в OpenCart настроить почту.

Одной из нужных функций в OpenCart является отправка почты. После каждого оформленного заказа информация о нем должна приходить на почту менеджеру сайта, чтобы он оперативно смог обработать поступивший заказ. Также желательно отправлять и письмо клиенту и совершенном заказе, это будет хорошим тоном в отношении клиента. Давайте же посмотрим, как и где настроить почту в OpenCart.

Как вы понимаете, делается это в админке, куда мы и переходим. Заходим в меню Система – Настройки и заходим в редактирование настроек магазина. Здесь нас, прежде всего, интересует вкладка Витрина. Открываем ее и находим поле E-Mail.

Здесь уже есть адрес почты, это тот адрес, который был указан при установке движка. Если он подходит для уведомлений с сайта, тогда оставляйте его, если не подходит, тогда укажите другой вместо него.

Отлично! Теперь все уведомления с сайта должны приходить на этот email. На всякий случай обязательно протестируйте этот момент, создав тестовый заказ. Если на почту пришло письмо с данными заказа, значит, все работает. Если же письма нет (обязательно проверьте папку Спам), тогда можно попробовать указать другой ящик, желательно на другом домене. Если и со вторым ящиком та же проблема, тогда, скорее всего, на вашем хостинге отключена функция mail и письма попросту не отправляются.

Не беда, решение есть и для данной ситуации. На этой же странице редактирования настроек есть вкладка Почта, переходим к ней.

Эта вкладка позволяет настроить отправку почты, используя протокол SMTP. Для этого у вас должен быть почтовый ящик, позволяющий производить отправку почты из почтовых клиентов. Например, это может быть ящик yandex.ru, mail.ru, gmail.com, ukr.net и другие. Вам необходимо в настройках почтового ящика разрешить отправку почты из почтовых клиентов и получить настройки SMTP: хост и порт. Все необходимые настройки вы вписываете в предлагаемые поля, руководствуясь подсказками. В качестве почтового протокола вместо Mail выбираете SMTP. Чтобы было понятнее, как работать с SMTP, рекомендую посмотреть , из него вы поймете, что это за настройки и как их использовать.