Magento在观察者中获得运送collectRates()属性

时间:2013-05-30 11:14:45

标签: magento module shipping

在collectRates方法的shippingModule中,我设置了一些值:

$method->setCarrier('test_customrate');
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod('test_customrate');
$method->setMethodTitle($this->getConfigData('name'));
$method->setPrice($this->getConfigData('price'));
$method->setCost(2);
$method->setUsername($this->getConfigData('username'));
$method->setPassword($this->getConfigData('password'));
$result->append($method);

这些值存储在结帐会话中的哪个位置? 我无法在任何地方找到它们。

我现在发现,通过观察者中的下面提到的代码,我可以得到几个值,如上所述。但是,此处不存在成本,用户名和密码等值。

 $rates = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()
->getShippingRatesCollection();


foreach ($rates as $rate) {

Mage::log($rate->getData());

}

这会检索以下结构:

 2013-06-01T15:36:10+00:00 DEBUG (7): Array
(
[rate_id] => 852
[address_id] => 93
[created_at] => 2013-06-01 15:36:06
[updated_at] => 2013-06-01 15:36:09
[carrier] => test_customrate
[carrier_title] => test_customrate
[code] => test_customrate_test_customrate
[method] => test_customrate
[method_description] => 
[price] => 0.0000
[method_title] => test123
[error_message] => 
)

1 个答案:

答案 0 :(得分:0)

我通过直接从发货模块配置获取值来解决这个问题。

像这样:

  

法师:: getStoreConfig( '部分/组/场');

所以我只是像在collectRates()中那样从system.xml获取数据。
然而这是非常静态的,我仍然希望有一种方法可以从订单中直接得到这个。

现在,这解决了我的问题。如果有任何其他方式可以随时回答