Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Фоновое создание заказа


Recommended Posts

Добрый день, подскажите пожалуйста, возможно ли реализовать оформление заказа и подобные запросы в фоновом режиме? Сейчас если отправить запрос на создание заказа, то пользователь ждет время пока выполнится весь запрос, и только тогда переходит на страницу успешности, то бишь идет пустое ожидание...Можно ли сделать чтобы пользователь отправил запрос на создание заказа, и сразу попал на страницу успешности, а запрос оформляется в фоновом режиме даже если пользователь ушел на другую страницу либо совсем вышел, то бишь ему достаточно отправить данные с формы и все.

Змінено користувачем AndreLisif
Надіслати
Поділитися на інших сайтах


Только что, nikifalex сказал:

разберитесь почему он ждет. Т.к. не должен он ждать ничего. Заказ должен оформляться сразу и быстро. Ищите что именно тормозит

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

Надіслати
Поділитися на інших сайтах


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

  • +1 1
Надіслати
Поділитися на інших сайтах

14 минут назад, ozzzi сказал:

Можно. Но это уже будет отделенная от опенкарт архитектура.

Как я понимаю много переделывать для реализации этой задачи нужно? подскажите пожалуйста куда копать?

Надіслати
Поділитися на інших сайтах


10 минут назад, AndreLisif сказал:

Как я понимаю много переделывать для реализации этой задачи нужно? подскажите пожалуйста куда копать?

А зачем вам вообще это? Какой профит от такой дорогой задачи вы хотите получить? Сэкономить пользователю 1-2 секунды ожидания при крайне медленном интернете? Какой профит от этого вообще? Сколько у вас таких пользователей с НАСТОЛЬКО медленным интернетом, что вы что-то теряете (хотя я даже не знаю что вы теряете в случае, если человек уже и так заказ то оформил), какова статистика по таким случаям?

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

Копать тут никуда не нужно. Идея - бесполезная дичь, которая вообще не нужна и очень дорого стоит в реализации.

  • +1 1
Надіслати
Поділитися на інших сайтах

1 минуту назад, nikifalex сказал:

ну лопата то хотя бы есть? Или вы ищете просто код скопипастить? Выше вам уже написали путь

Так этот путь его тоже не устроит, он хочет, чтобы аякс отправился и не ждал ответа от сервера, а даже на очередях все равно придется ждать ответ от сервера, пусть даже пустой, поэтому очереди тут вообще ничего не решают. :-D

Главный вопрос тут ЗАЧЕМ это вообще надо с учетом того, что пользователь УЖЕ оформил заказ...

Надіслати
Поділитися на інших сайтах

7 минут назад, OtezVikentiy сказал:

А зачем вам вообще это? Какой профит от такой дорогой задачи вы хотите получить? Сэкономить пользователю 1-2 секунды ожидания при крайне медленном интернете? Какой профит от этого вообще? Сколько у вас таких пользователей с НАСТОЛЬКО медленным интернетом, что вы что-то теряете (хотя я даже не знаю что вы теряете в случае, если человек уже и так заказ то оформил), какова статистика по таким случаям?

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

Копать тут никуда не нужно. Идея - бесполезная дичь, которая вообще не нужна и очень дорого стоит в реализации.

Причем тут это? Бывают разные проблемы у бизнеса, особенно если это не ларек, отправить заказ в crm, отправить письмо, а если crm легла? Или у нее долгий ответ, или почтовый сервер лег все пользователю 504 выводить? Могут быть и другие интеграции,  что куда-то нужно отправить. Вопрос не скорости интернета клиента, а некоторых возможностей других сервисов, от которых зависит бизнес процесс

  • +1 1
Надіслати
Поділитися на інших сайтах

3 минуты назад, stickpro сказал:

Причем тут это? Бывают разные проблемы у бизнеса, особенно если это не ларек, отправить заказ в crm, отправить письмо, а если crm легла? Или у нее долгий ответ, или почтовый сервер лег все пользователю 504 выводить? Могут быть и другие интеграции,  что куда-то нужно отправить. Вопрос не скорости интернета клиента, а некоторых возможностей других сервисов, от которых зависит бизнес процесс

Вот именно в этом и вопрос, что-то где-то подвисло и пользователь сидит ждет 10-20 сек пока запрос ответит, не думаю что он получит кайф от этого, а может и вообще просто закроет сайт и аля-улю, подумает что сайт тупо завис, по этому и задался таким вопросом, но раз в опенкарт это гемор, то пока придется оптимизировать по макс.бд, сервер...

Надіслати
Поділитися на інших сайтах


6 минут назад, nikifalex сказал:

ща он увидит что simple checkout на каждый чих делает запросы по API в сервисы доставки, которые как СДЭК могут и по 5 секунд отвечать, и поймет весь драматизм ситуации. :)

Печальная ситуация))

Надіслати
Поділитися на інших сайтах


7 минут назад, nikifalex сказал:

 

У вас есть эта проблема на работающем сайте с продажами или вы теоретик?

 

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

Змінено користувачем AndreLisif
Надіслати
Поділитися на інших сайтах


Дело не гиблое, вы неправильно поняли.

Но игра должна стоить свеч.

Если вы готовы на такого рода оптимизацию потратить >100k рублей (сумма взята с потолка), то конечно же это можно сделать по примеру того, как вам написали выше.

Но подумайте о том, что пользователь, с медленным мобильным интернетом, сталкивается с такой проблемой не только на этапе завершения заказа или еще на этапах открытия карточки, добавления товара в корзину и перехода в корзину?

  • +1 1
Надіслати
Поділитися на інших сайтах


6 минут назад, neonox сказал:

Дело не гиблое, вы неправильно поняли.

Но игра должна стоить свеч.

Если вы готовы на такого рода оптимизацию потратить >100k рублей (сумма взята с потолка), то конечно же это можно сделать по примеру того, как вам написали выше.

Но подумайте о том, что пользователь, с медленным мобильным интернетом, сталкивается с такой проблемой не только на этапе завершения заказа или еще на этапах открытия карточки, добавления товара в корзину и перехода в корзину?

Согласен, играет роль только на крупных сайтах с большим трафиком

Надіслати
Поділитися на інших сайтах


1 час назад, stickpro сказал:

Причем тут это? Бывают разные проблемы у бизнеса, особенно если это не ларек, отправить заказ в crm, отправить письмо, а если crm легла? Или у нее долгий ответ, или почтовый сервер лег все пользователю 504 выводить? Могут быть и другие интеграции,  что куда-то нужно отправить. Вопрос не скорости интернета клиента, а некоторых возможностей других сервисов, от которых зависит бизнес процесс

Не ну в такой то ситуации да, согласен, когда в 1 простой процесс подвязано еще 100500 операций, которые архитектурно должны быть сделаны вообще по-другому - то так то конечно же да... Но тут то вот человек пишет, что тачка прям пушка, оптимизирована по всем фронтам...

Надіслати
Поділитися на інших сайтах

1 час назад, AndreLisif сказал:

Согласен, играет роль только на крупных сайтах с большим трафиком

Да на самом деле нет, это играет роль везде. Просто вы изначально описали проблему как-то странно в нескольких сообщениях.

То есть вот есть пользователь с медленным интернетом и у него проблема именно из-за медленного интернета, а не из-за того, что у него сайт тупит, потому что в следующем сообщении написано было 

 

2 часа назад, AndreLisif сказал:

К примеру сайт идеально оптимизирован,


Значит тут как бы вопрос не очередей и не всякого функционала навешенного где-то там под капотом со СДЭКом или еще где-то...

Определитесь что вы хотите... Развязать бэк с фронтом так, чтобы фронт не дожидался ответа бэка или оптимизировать бэк архитектурно так, чтобы он отрабатывал за милисекунды, а не ждал там всяких сдэков, CRM систем и прочего.

 

Надіслати
Поділитися на інших сайтах

Проблемы в частности у опенкарта бывают следующие:

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

Эта проблема актуальна не только для крупных игроков рынка, а вообще для всех и она решаема как и писали люди выше - архитектурными изменениями и переписыванием функционала.

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

  • +1 1
Надіслати
Поділитися на інших сайтах

14 часов назад, AndreLisif сказал:

Добрый день, подскажите пожалуйста, возможно ли реализовать оформление заказа и подобные запросы в фоновом режиме? Сейчас если отправить запрос на создание заказа, то пользователь ждет время пока выполнится весь запрос, и только тогда переходит на страницу успешности, то бишь идет пустое ожидание...Можно ли сделать чтобы пользователь отправил запрос на создание заказа, и сразу попал на страницу успешности, а запрос оформляется в фоновом режиме даже если пользователь ушел на другую страницу либо совсем вышел, то бишь ему достаточно отправить данные с формы и все.

 

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

Если у юсера слабый инет, то вы то здесь причем??? тогда не только оформление заказа но и страницы будет грузиться долго. фигню какую то решили сделать.....

Надіслати
Поділитися на інших сайтах

13 часов назад, AndreLisif сказал:

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

 

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

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.