在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);
这些值存储在 checkout 会话中的何处?我在任何地方都找不到它们。
现在我发现在观察器中使用下面提到的代码,我可以得到上面提到的一些值,但是,一些值,如成本,用户名和密码,在这里不存在。
$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条答案
按热度按时间ryhaxcpt1#
我通过直接从运输模块配置中获取值来解决这个问题。
就像这样:
mage::getStoreConfig('节/组/字段');
因此,我只是像在collectRates()中那样从system.xml获取数据。
然而,这是相当静态的,我仍然希望有一个方法来直接从订单中获得这一点。
现在这解决了我的问题。如果有什么知道任何其他的方法,请随时回答