提高运费和/或添加订单项以获得额外费用

时间:2011-09-30 13:16:13

标签: magento shipping fedex

我正在为Magento网站实施自定义FedEx集成解决方案。部分原因是在onepage checkout中添加签名要求复选框,如果选中此选项则添加$ 3。不幸的是,FedEx Rate Web Service似乎没有采用任何有关签名要求的参数,因此我必须手动将此成本添加到订单中。

我正在考虑采用这两种方法中的一种,但我不确定最好还是我确定如何实现它:

  1. 将$ 3加到FedEx返回的任何价格
  2. 为此
  3. 创建新订单项

    假设我有一个$ order的句柄,哪个解决方案最好,我该怎么做?

    编辑:代码应该在checkout_controller_onepage_save_shipping_method事件调用的观察者方法内运行,该事件在$this->getOnepage()->saveShippingMethod($data);之后立即触发。这意味着当FedEx API返回结果时我无法添加$ 3,因为我不知道该复选框是否在之后被检查。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

我想出了一个解决方案;它不是最好的,但它对我来说非常好:

  1. Magento在保存送货信息时触发事件。我抓取POST数据并将其保存在db和地址对象中。
  2. 如果复选框已更改,请让它重新加载相同的标签,而不是转到付款步骤。
  3. 在送货报价中,检查地址对象的复选框值。如果设置,请在报价结果中添加一定金额。