0

我正在为 Magento 站点实施自定义 FedEx 集成解决方案。其中一部分是在单页结帐中添加签名要求复选框,如果选中,则添加 3 美元。不幸的是,FedEx Rate Web 服务似乎没有采用任何有关签名要求的参数,因此我必须手动将此费用添加到订单中。

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

  1. 联邦快递返回的任何价格都增加 3 美元
  2. 为此创建一个新的订单项

假设我有 $order 的句柄,哪种解决方案最好,我将如何做?

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

提前致谢!

4

1 回答 1

0

我想出了一个解决方案;这不是最好的,但对我来说效果很好:

  1. Magento 在保存运输信息时触发一个事件。我抓取 POST 数据并将其保存在数据库和地址对象中。
  2. 如果复选框已更改,请让它重新加载相同的选项卡,而不是进入付款步骤。
  3. 在运输报价中,检查地址对象的复选框值。如果设置,则在报价结果中添加一定数量。
于 2011-11-01T20:29:07.467 回答