1

典型的 magento 订单有 shipping_method。例如,就我而言,它是“flatrate_flatrate”。

如何将承运人(“flatrate”)与 shipping_method 绑定?

感谢您的回复。

4

1 回答 1

4
public function getShippingMethodsList($quoteId, $store=null)
{
    $quote = $this->_getQuote($quoteId, $store);

    $quoteShippingAddress = $quote->getShippingAddress();
    if (is_null($quoteShippingAddress->getId())) {
        $this->_fault("shipping_address_is_not_set");
    }

    try {
        $quoteShippingAddress->collectShippingRates()->save();
        $groupedRates = $quoteShippingAddress->getGroupedAllShippingRates();

        $ratesResult = array();
        foreach ($groupedRates as $carrierCode => $rates ) {
            $carrierName = $carrierCode;
            if (!is_null(Mage::getStoreConfig('carriers/'.$carrierCode.'/title'))) {
                $carrierName = Mage::getStoreConfig('carriers/'.$carrierCode.'/title');
            }

            foreach ($rates as $rate) {
                $rateItem = $this->_getAttributes($rate, "quote_shipping_rate");
                $rateItem['carrierName'] = $carrierName;
                $ratesResult[] = $rateItem;
                unset($rateItem);
            }
        }
    } catch (Mage_Core_Exception $e) {
        $this->_fault('shipping_methods_list_could_not_be_retrived', $e->getMessage());
    }

    return $ratesResult;
}
于 2012-09-03T14:31:52.530 回答