<?php ini_set('display_startup_errors', 1); error_reporting(E_ALL); //require_once("Mage.php"); ob_start(); require_once(__DIR__ . '/app/Mage.php'); umask(0); ini_set('display_errors',true); ini_set('memory_limit', '1024M'); Mage::app()->loadArea('frontend'); function getShippingEstimate($productId,$productQty,$countryId,$postcode ) { // Change below line based on your store_view_code. $quote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore('{store_view_code}')->getId()); ; $_product = Mage::getModel('catalog/product')->load($productId); $_product->getStockItem()->setUseConfigManageStock(false); $_product->getStockItem()->setManageStock(false); $quote->addProduct($_product, $productQty); $quote->getShippingAddress()->setCountryId($countryId)->setPostcode($postcode); $quote->getShippingAddress()->collectTotals(); $quote->getShippingAddress()->setCollectShippingRates(true); $quote->getShippingAddress()->collectShippingRates(); $_rates = $quote->getShippingAddress()->getShippingRatesCollection(); $shippingRates = array(); foreach ($_rates as $_rate): if($_rate->getPrice() > 0) { $shippingRates[] = array("Title" => $_rate->getMethodTitle(), "Price" => $_rate->getPrice()); } endforeach; return $shippingRates; } echo "<pre>"; //product id, quantity, country, postcode print_r(getShippingEstimate('13541','5',"IN","642001")); echo "</pre>"; ?> > If you use **multiple store view** than change below line based on your store_view_code. > $quote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore(**'{store_view_code}'**)->getId());