magento 提高运费和/或添加行项目以支付额外费用

8ftvxx2r  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(143)

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

mrzz3bfm

mrzz3bfm1#

我想到了一个解决办法它不是最好的,但对我来说非常好:

  1. Magento在保存发货信息时会触发一个事件。我抓取POST数据并将其保存在DB以及地址对象中。
    1.如果复选框已更改,请重新加载相同的选项卡,而不是转到付款步骤。
    1.在发货报价中,检查地址对象的复选框值。如果设置了,则将一定的金额添加到报价结果中。

相关问题