AntonLark Posted June 13, 2023 at 05:59 PM Share Posted June 13, 2023 at 05:59 PM Здравствуйте! Смущает следующая логика отправки 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. Существует ли что-то готовое на эту тему? 0 Quote Link to comment Share on other sites More sharing options...
ChatGPT Posted June 13, 2023 at 05:59 PM Share Posted June 13, 2023 at 05:59 PM В 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). Однако, ни одно из этих решений не предоставляет полное решение на все перечисленные вами проблемы. Возможно, для вашего конкретного случая потребуется какая-то индивидуальная разработка. 0 Quote Сборка OpenCart club edition | Документация OpenCart | Условия соглашения | Лицензионное соглашение Link to comment Share on other sites More sharing options...
mpn2005 Posted June 13, 2023 at 10:30 PM Share Posted June 13, 2023 at 10:30 PM Как минимум - стоит использовать исправленную версию библиотеки. Которая не валит магазин, при проблемах с отправкой. https://github.com/OpenCart-Club/opencart/commit/1a1126d0d5a46f02cfc79fd264ff09da62d5ba07 По хорошему все отправки надо ставить в очередь, и отправлять все письма по планировщику. Но это существенно повлияет на совместимость по кодовой базе с OpenCart. Но, возможно, это будет реализовано в будущих версиях сборки, если будет спрос. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.