If you like to show the shipping rates on the cart page, you should enter the default address in the shipping settings and apply the following change.
In the file app/code/core/Mage/Checkout/Model/Session.php you should find the following line:
$this->_quote = $quote;
And add this code before it:
$sha = $quote->getShippingAddress(); if (!$sha->getCountry()) { $country = Mage::getStoreConfig('shipping/origin/country_id'); $state = Mage::getStoreConfig('shipping/origin/region_id'); $postcode = Mage::getStoreConfig('shipping/origin/postcode'); $quote->getShippingAddress() ->setCountryId($country) ->setRegionId($state) ->setPostcode($postcode) ->setCollectShippingRates(true); $quote->save(); }
In this code we are checking if the quote address country is set. And if it is not, we are set the default address for the current cart/quote.