我需要创建一个模块,在该模块中检查客户是否有订单,以及他是否确实检查了是否已付款(又称完整状态),如果是的,则可以再次订购,如果不这样做,则不允许他订购。

我想到将事件观察者与此事件一起使用: sales_convert_quote_to_order
并在那里检查一下,如果不允许他,他将被扔回到他可以为此付款的页面上。

那个事件对IAM试图做什么好吗?还是我应该做不同的事情?如何?

有帮助吗?

解决方案

此事件是由付款扩展的后端触发的,因此我认为实际客户不会在触发时会在那里。您可能需要在购物车的前端显示通知,以告诉他他需要支付第一张发票并隐藏“结帐”按钮,直到支付所有发票为止。这可能取决于客户应该如何支付他的发票,听起来您正在使用银行转让作为付款方式?

其他提示

sales_convert_quote_to_order 在结帐结束时触发(Sander可能将其误认为是“将订单转换为发票”),但我不会使用它。

不是因为技术原因,而是出于用户体验。我不会让客户通过整个结帐,最后告诉他“哦,对不起,您不允许订购”。因此,请在您知道客户是谁的结帐中使用第一个事件。

这是 controller_action_predispatch_checkout_onepage_index, ,当您以客户或选择“登录”或“注册”为客人之后,将触发。这是一个普通的非AJAX请求,如果不允许结帐,则可以将带有错误消息重定向到购物车。

许可以下: CC-BY-SA归因
scroll top