Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 提高运输价格和/或添加行项目以获得额外成本_Magento_Shipping_Fedex - Fatal编程技术网

Magento 提高运输价格和/或添加行项目以获得额外成本

Magento 提高运输价格和/或添加行项目以获得额外成本,magento,shipping,fedex,Magento,Shipping,Fedex,我正在为一个Magento站点实施一个定制的联邦快递集成解决方案。其中一部分是在onepage签出中添加签名要求复选框,如果选中,则添加$3。不幸的是,联邦快递的收费网络服务似乎没有任何关于签名要求的参数,所以我必须手动将此成本添加到订单中 我曾考虑采取这两种方法中的一种,但我不确定是否最好,也不确定如何真正做到: 联邦快递退回的价格加上3美元 为此创建一个新行项目 假设我对$order有一个控制权,那么哪种解决方案最好,我将如何做 编辑:代码应该在观测者方法内运行,观测者方法由checkout

我正在为一个Magento站点实施一个定制的联邦快递集成解决方案。其中一部分是在onepage签出中添加签名要求复选框,如果选中,则添加$3。不幸的是,联邦快递的收费网络服务似乎没有任何关于签名要求的参数,所以我必须手动将此成本添加到订单中

我曾考虑采取这两种方法中的一种,但我不确定是否最好,也不确定如何真正做到:

  • 联邦快递退回的价格加上3美元
  • 为此创建一个新行项目
  • 假设我对$order有一个控制权,那么哪种解决方案最好,我将如何做

    编辑:代码应该在观测者方法内运行,观测者方法由
    checkout\u controller\u onepage\u save\u shipping\u method
    事件调用,该事件在
    $this->getOnepage()->saveShippingMethod($data)之后立即触发。这意味着当联邦快递API返回一个结果时,我不能添加$3,因为直到之后我才知道复选框是否被选中


    提前谢谢

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

  • Magento在保存装运信息时触发事件。我获取POST数据并将其保存在db以及address对象中
  • 如果复选框已更改,请重新加载该选项卡,而不是转到付款步骤
  • 在shipping quote中,选中address对象中的复选框值。如果已设置,请在报价结果中添加一定金额

  • 您也可以复制航运方法,并将其视为一个“额外的航运”方法与另一个价格?什么版本的MaMeto你工作?