我正在为Magento网站实现一个自定义的FedEx集成解决方案。其中一部分是在onepage checkout 中添加一个签名要求复选框,如果选中,则添加3美元。不幸的是,FedEx费率Web服务似乎不接受任何有关签名要求的参数,因此我必须手动将此成本添加到订单中。
我在考虑采取这两种方法中的一种,但我不确定是否是最好的,也不确定如何实际完成它:
1.无论联邦快递退回什么价格,再加3美元
1.为此创建新的行项目
假设我已经掌握了$订单,哪种解决方案是最好的?我将如何做到这一点?
代码应该在一个由checkout_controller_onepage_save_shipping_method
事件调用的observer方法中运行,该事件在$this->getOnepage()->saveShippingMethod($data);
之后立即触发。这意味着当FedEx API返回结果时,我不能添加$3,因为我不知道复选框是否被选中,直到之后才知道。
1条答案
按热度按时间mrzz3bfm1#
我想到了一个解决办法它不是最好的,但对我来说非常好:
1.如果复选框已更改,请重新加载相同的选项卡,而不是转到付款步骤。
1.在发货报价中,检查地址对象的复选框值。如果设置了,则将一定的金额添加到报价结果中。