2012-08-13 40 views

回答

4

因为您需要地址数据(计费或运费,如果只计费,然后运费设置与结算方式相同,国家/地区,邮编区域依赖于您的运输方式),您无法做到“无关”至少有一个简单的项目(报价现有的,虚拟和可下载的产品不需要运送)。之后,你可以打电话给你的报价对象

$quote->getShippingAddress()->getGroupedAllShippingRates(); 
+1

代码中有一个小故障。你的变量设置为“()” – aki 2013-11-07 15:49:39

2

我想通了就...

$carriers = Mage::getStoreConfig('carriers', Mage::app()->getStore()->getId()); 
foreach ($carriers as $carrierCode => $carrierConfig) { 
print_R($carrierConfig); 
} 

感谢您的帮助

12

这里的另一种方式。您需要设置邮编和国家 - 即使这对您的送货方式无关紧要。

// Change to your postcode/country. 
$zipcode = '2000'; 
$country = 'AU'; 

// Update the cart's quote. 
$cart = Mage::getSingleton('checkout/cart'); 
$address = $cart->getQuote()->getShippingAddress(); 
$address->setCountryId($country) 
     ->setPostcode($zipcode) 
     ->setCollectShippingrates(true); 
$cart->save(); 

// Find if our shipping has been included. 
$rates = $address->collectShippingRates() 
       ->getGroupedAllShippingRates(); 

foreach ($rates as $carrier) { 
    foreach ($carrier as $rate) { 
     print_r($rate->getData()); 
    } 
} 
+0

非常感谢!只需注意一行:“$ cart-> save();”没有必要。 – 2014-04-22 15:15:21

+0

这是否发布另一个请求,以运输基于设置$ zipcode的运营商以获得价格? – John 2014-07-11 16:27:49

+0

@Silas Palmer,我已经使用你的上面的代码其工作正常在添加到购物车产品后添加...但我如何使用您的代码之前添加到购物车添加。 Plz帮助我。 – VijayS91 2015-03-11 17:26:49