在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] =>
)
答案 0 :(得分:0)
我通过直接从发货模块配置获取值来解决这个问题。
像这样:
法师:: getStoreConfig( '部分/组/场');
所以我只是像在collectRates()中那样从system.xml获取数据。
然而这是非常静态的,我仍然希望有一种方法可以从订单中直接得到这个。
现在,这解决了我的问题。如果有任何其他方式可以随时回答