-
Notifications
You must be signed in to change notification settings - Fork 16
Description
Есть один нюанс. Метод определяет что оформление заказа начато по наличию инициированной сессии, на сколько я понял. И тут возникает момент.
Допустим если у нас есть 2 страницы (корзина/форма заказа). Очевидно, что находясь на странице оформления заказа (там где лежит форма order) - он начат. Вопрос, начато ли оформление заказа если пользователь зашел один раз на форму заказа, что-то там сделал, сессия создалась, метод isOrderStarted() отдал =true, затем вернулся на страницу корзины и удалил часть товаров или изменил количество, казалось бы ответ - ДА, на форму заходил ведь, что-то нажал, просто потом отошел в сортир/корзину/страницу с котами =).
Но вот момент, если сделать плагин и в событии "OnRegisterDelivery" описать, как пример, получение данных от апи сервиса, то каждый раз, когда пользователь нажимает +- или меняет что-то на странице корзины, событие "OnRegisterDelivery" отрабатывает и данные запрашиваются даже когда формы не видно. Исходя из названия события, он должно отрабатывать когда мы добавляем способы доставки, по идее находясь на странице, где был вызван "Order".
Если конечно корзина на одной странице с формой, вопрос отпадает.
Можно ли методами Commerce определить, что пользователь в процессе оформления и в форме? Я изначально попробовал ($modx->documentIdentifier !== $params['order_page_id']), грубо, но ajax запросы проходят через 404 я так понимаю и там не получается в "OnRegisterDelivery" определить id страницы. Ожидаю именно в "OnRegisterDelivery", чтобы просто заблокировать запросы по какому-либо условию что юзверь не в корзине или где-либо еще. Каждый раз просто плюс нажал и пошел спам в сервис, при этом изменение данных корзины тоже тормозить начинает из-за ожидания ответа.