Вопрос

Мне нужно создать модуль, в котором он проверяет, есть ли у клиента заказ, и если он проверяет, выплачивается ли он (он же в полном состоянии), если да, позвольте ему снова заказывать, если не позвольте ему заказывать.

Я подумал об использовании observer с этим событием: sales_convert_quote_to_order
И проверьте там, и если ему не разрешено, его возвращают обратно на страницу, где он может заплатить за нее.

Это событие хорошо для того, что я пытаюсь сделать? Или я должен сделать это по -другому? Как?

Это было полезно?

Решение

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

Другие советы

sales_convert_quote_to_order является Запускается в конце кассе (Сандер мог ошибаться за «Преобразование порядка в счет -фактуру»), но я бы не использовал его.

Не из -за технических причин, а для пользовательского опыта. Я бы не позволил клиенту пройти всю кассе и сказать ему в конце: «О, извините, вам не разрешено заказывать». Так что используйте первое событие в кассе, где вы знаете, кто такой клиент.

Это controller_action_predispatch_checkout_onepage_index, что запускается, когда вы переходите на кассу в качестве клиента или после выбора «входа» или «зарегистрироваться» в качестве гостя. Это обычный запрос, не являющийся AJAX, вы можете перенаправить на корзину с сообщением об ошибке, если оформление заказа не допускается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top