Magento:获取所有运费

时间:2012-08-13 12:17:16

标签: magento

如何获得具有magento运费的数组/对象,例如固定费率,免费送货等?

与所选地址或产品无关。

3 个答案:

答案 0 :(得分:13)

这是另一种方式。您需要设置一个拉链和国家/地区 - 即使这与您的运输方式无关。

// 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());
    }
}

答案 1 :(得分:4)

你不能这样做“无关紧要”,因为你需要地址数据(如果只是开票,那么运费设置与开票相同的运费或运费:国家,邮政编码,地区取决于您的运输方式),您不能这样做“无关”,并且需要设置和报价至少一个简单的项目(引用现有的,虚拟的和可下载的产品不需要运送)。之后,您可以调用引用对象

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

答案 2 :(得分:2)

我明白了......

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

感谢您的帮助