public function getShippingRates($order) { $request = $this->prepareShippingRequest($order); $shipping = Mage::getModel('shipping/shipping'); $result = $shipping->collectRates($request)->getResult(); if ($result) { $rates = array(); foreach ($result->getAllRates() as $_rate) { $rate = new Varien_Object(); $rate->setData($_rate->getData()); $carrier = $rate->getCarrier(); if (!isset($rates[$carrier])) { $rates[$carrier] = array(); } $rate->setCode($carrier . '_' . $rate->getMethod()); $rates[$carrier][$rate->getCode()] = $rate; } return $rates; } return null; }