magento在支付时地址栏数据重新进入时无数据的解决

magento在用户注册或支付成功前,用户退出支付流程或支付失败,再进入到支付流程的地址部分,之前输入的内容消失,解决办法如下:
1、 在template/checkout/onepage/Process.php
对于bill与shipping位置,相应增加
Mage::getSingleton(‘core/session’)->setShippingId($this->getShipping()->GetId());
Mage::getSingleton(‘core/session’)->setBillId($this->getBilling()->GetId());
2、在template/checkout/onepage/billing.phtml
头部增加以下代码
$tempaddress=$this->getAddress();
try
{
if(!$tempaddress->getId())
{
$tempadid=Mage::getSingleton(‘core/session’)->getBillId();
if($tempadid)
{
$tempaddress = Mage::getModel(‘sales/quote_address’)->load($tempadid);
}
}
}catch (Exception $e) { }

在网站站相应调用地址的变量$this->getAddress()换成$tempaddress即可。
3、在template/checkout/onepage/shipping.phtml
上述类似操作即可

这用用户在进出支付流程时,再进入就不用再次输入这些资料,降低用户的麻烦