繁体   English   中英

Magento:按重量表费率,编辑计算

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM