Estimating shipping price for product

$corehelper = Mage::helper('core');
$cheapestrate = 0;
if($_product->isSaleable())
{
	
	$_product = Mage::getModel('catalog/product')->load($_product->getId());
	$quote = Mage::getModel('sales/quote');
	$quote->getShippingAddress()->setCountryId('PL');			
	$addToCartInfo = (array) $_product->getAddToCartInfo();
	$request = new Varien_Object($addToCartInfo);
	if ($_product->getStockItem()) {
		$minimumQty = $_product->getStockItem()->getMinSaleQty();
		if($minimumQty > 0 && $request->getQty() < $minimumQty){
			$request->setQty($minimumQty);
		}
	}
	$_product->getStockItem()->setUseConfigManageStock(false);
	$_product->getStockItem()->setManageStock(false);
	$quote->addProduct($_product, $request); 
	$quote->getShippingAddress()->collectTotals();
	$quote->getShippingAddress()->setCollectShippingRates(true);
	$quote->getShippingAddress()->collectShippingRates();
	$rates = $quote->getShippingAddress()->getShippingRatesCollection();
	$_rates = array();
	if($rates->count()){
		foreach ($rates as $rate)
		{
			if((float)$rate->getPrice()>0){
				$_rates[] = $rate->getPrice();
			}
		}
		sort($_rates);
		$cheapestrate = $_rates[0];
	}