AntonLark Опубликовано 13.06.2023 в 17:59 Поделиться Опубликовано 13.06.2023 в 17:59 Здравствуйте! Смущает следующая логика отправки 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 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ChatGPT Опубликовано 13.06.2023 в 17:59 Поделиться Опубликовано 13.06.2023 в 17:59 В 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 Цитата Сборка OpenCart club edition | Документация OpenCart | Условия соглашения | Лицензионное соглашение Ссылка на комментарий Поделиться на другие сайты Поделиться
mpn2005 Опубликовано 13.06.2023 в 22:30 Поделиться Опубликовано 13.06.2023 в 22:30 Как минимум - стоит использовать исправленную версию библиотеки. Которая не валит магазин, при проблемах с отправкой. https://github.com/OpenCart-Club/opencart/commit/1a1126d0d5a46f02cfc79fd264ff09da62d5ba07 По хорошему все отправки надо ставить в очередь, и отправлять все письма по планировщику. Но это существенно повлияет на совместимость по кодовой базе с OpenCart. Но, возможно, это будет реализовано в будущих версиях сборки, если будет спрос. 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.