Переопределить класс Magento, используемый для расчета этих показателей Mage_Shipping_Model_Shipping
.Когда делается запрос скорости, этот метод класса collectRates
вызывается с использованием объекта Mage_Shipping_Model_Rate_Request
, в котором предварительно заполнены элементы и вес.Однако, создав подкласс этого класса с помощью нашего переопределения, мы можем быть хитрыми и получить желаемую скорость.
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!) с низким риском.
Надеюсь, это поможет!
Спасибо, Джо