Jump to content

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


Recommended Posts

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

Смущает следующая логика отправки 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.


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

Link to comment
Share on other sites

В 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). Однако, ни одно из этих решений не предоставляет полное решение на все перечисленные вами проблемы. Возможно, для вашего конкретного случая потребуется какая-то индивидуальная разработка.

Link to comment
Share on other sites

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

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

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

 

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

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...