Перейти к содержанию

Кривая логика отправки email при заказе в ядре OpenCart. Потеря заказов и клиентов. Тормоза при SMTP.


Рекомендуемые сообщения

Здравствуйте!

Смущает следующая логика отправки Email:
1. В ванильном OpenCart при оформлении заказа происходит отправка сообщений двух сообщений: администратору и пользователю.
2. При этом это происходит последовательно, пока не будут отправлены письма пользователь не увидит страницу успешного оформления. Что вызывает торомоза после нажатия кнопки "Оформить заказ".
3. Если отправка почты не удалась, то покупатель увидит некрасивую ошибку - заказ не будет завершен.
Заказ не отобразится в админке. Попадет в oc_order со статусом 0 и не добавится в oc_order_history.

Это вызывает потерю заказов и клиентов при:
1. Пока сайт подключится к стороннему SMTP. (Google/Yandex/Mail)
- Тормоза у клиента при оформлении заказа.
2. Вдруг отвалился и некорректно работает SMTP сервер.
- Ошибка. Потеря заказа и клиента.
3. Поломался файрволл на стороне хостера или сервера. Порты 25 или 465 отвалились.
- Ошибка. Потеря заказа и клиента.

Решение из моих фантазий:
- Пользователь направляется на страницу успешного заказа сразу после добавления данных в oc_order. Запись oc_order_history тоже добавляется сразу.
- Отправка почты происходит в фоновом режиме уже после оформления.
- В случае если не получается отправить письмо по SMTP, после определенного таймаута происходит попытка отправить с помощью функции PHP.
*А можно еще выдавать статусы в истории заказа в зависимости от того как/когда был отправлен Email.


Существует ли что-то готовое на эту тему?

Ссылка на комментарий
Поделиться на другие сайты

В 13.06.2023 в 17:59, AntonLark сказал:

Здравствуйте! Смущает следующая логика отправки Email: 1. В ванильном OpenCart при оформлении заказа происходит отправка сообщений двух сообщений: администратору и пользователю. 2. При этом это происходит последовательно, пока не будут отправлены письма пользователь не увидит страницу успешного оформления. Что вызывает торомоза после нажатия кнопки "Оформить заказ". 3. Если отправка почты не удалась, то покупатель увидит некрасивую ошибку - заказ не будет завершен. Заказ не отобразится в админке. Попадет в oc_order со статусом 0 и не добавится в oc_order_history. Это вызывает потерю заказов и клиентов при: 1. Пока сайт подключится к стороннему SMTP. (Google/Yandex/Mail) - Тормоза у клиента при оформлении заказа. 2. Вдруг отвалился и некорректно работает SMTP сервер. - Ошибка. Потеря заказа и клиента. 3. Поломался файрволл на стороне хостера или сервера. Порты 25 или 465 отвалились. - Ошибка. Потеря заказа и клиента. Решение из моих фантазий: - Пользователь направляется на страницу успешного заказа сразу после добавления данных в oc_order. Запись oc_order_history тоже добавляется сразу. - Отправка почты происходит в фоновом режиме уже после оформления. - В случае если не получается отправить письмо по SMTP, после определенного таймаута происходит попытка отправить с помощью функции PHP. *А можно еще выдавать статусы в истории заказа в зависимости от того как/когда был отправлен Email. Существует ли что-то готовое на эту тему?

Здравствуйте! Существуют различные расширения и модули для OpenCart, которые могут помочь с решением проблемы с отправкой Email. Например, есть модули настройки SMTP (например, SMTP Pro), которые позволяют отправлять письма через сторонний SMTP-сервер и настроить уведомления. Также можно использовать расширения для отправки писем в фоновом режиме (например, Background Mail Sender) и модули автоматической отправки Email в зависимости от определенных событий (например, OpenCart Order Status Email Template). Однако, ни одно из этих решений не предоставляет полное решение на все перечисленные вами проблемы. Возможно, для вашего конкретного случая потребуется какая-то индивидуальная разработка.

Ссылка на комментарий
Поделиться на другие сайты

Как минимум - стоит использовать исправленную версию библиотеки.

Которая не валит магазин, при проблемах с отправкой.

https://github.com/OpenCart-Club/opencart/commit/1a1126d0d5a46f02cfc79fd264ff09da62d5ba07

 

По хорошему все отправки надо ставить в очередь, и отправлять все письма по планировщику.

Но это существенно повлияет на совместимость по кодовой базе с OpenCart.

Но, возможно, это будет реализовано в будущих версиях сборки, если будет спрос.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...