[英]Magento: Table Rates by Weight, edit the Calculation
我目前正在在线商店中使用按重量计的表费率,但我需要自定义计算方式。
目前,邮费是由订单的总重量决定的,但我希望计算得出的结果只是根据购物车中最重的物品确定邮费。
您知道我该如何覆盖此模块所做的计算吗? 援助会让我非常感激。
提前致谢。
覆盖用于计算这些费率的Magento类Mage_Shipping_Model_Shipping
。 发出速率请求时,使用Mage_Shipping_Model_Rate_Request
对象调用此类的collectRates
方法,该对象已预先填充了商品和重量。 但是,通过使用我们的重写对该类进行子类化,我们可能会比较棘手并获得所需的比率。
class MyNamespace_MyModule_Model_Shipping extends Mage_Shipping_Model_Shipping {
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
$maxWeight = 0;
foreach($request->getAllItems() as $item) {
$maxWeight = max($maxWeight, $item->getRowWeight());
}
$request->setPackageWeight($maxWeight);
return parent::collectRates($request);
}
}
请注意,这里我们已将代码更改量降至最低,并且可以干净地删除我们的模块(甚至可以升级Magento!),而且风险很小。
希望有帮助!
谢谢乔
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.