我在Magento中创建了一种新的送货方式,以便与Onepage Checkout一起使用。该方法出现在前端并定义,但无论何时尝试检索速率,它都返回NULL。具体在Mage/Sales/Model/Quote.php
,$method
会返回我的方法,但$rate = null
。
模块:
protected $_code = 'module_shipping';
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
$result = Mage::getModel('shipping/rate_result');
$result->append($this->_getMyShippingShippingRate());
return $result;
}
protected function _getMyShippingShippingRate()
{
$rate = Mage::getModel('shipping/rate_result_method');
$rate->setCarrier($this->_code);
$rate->setCarrierTitle($this->getConfigData('title'));
$rate->setMethod('my_ship_fn');
$rate->setMethodTitle('A New Method');
$rate->setPrice(0);
$rate->setCost(0);
return $rate;
}
public function getAllowedMethods()
{
return array(
'my_ship_fn' => 'A New Method',
);
}
Config.xml
<default>
<carriers>
<module_shipping>
<active>1</active>
<model>company_retailshipping/carrier_myshippingfn</model>
<title>A New Method</title>
<sort_order>10</sort_order>
<sallowspecific>0</sallowspecific>
</module_shipping>
</carriers>
</default>
答案 0 :(得分:0)
请详细说明“它返回NULL。特别是在Mage / Sales / Model / Quote.php中,$ method返回我的方法,但$ rate = null。” - 或许提供一些班级/行号以供参考。你的代码看起来是正确的,如果它出现在前端那么应该没问题。我可能会猜测另外一个模块也许正在干扰。