Magento在付款信息块电子邮件中获取最后订单ID

时间:2012-02-10 11:21:09

标签: email magento block payment

Magento New Order Email

见上图是Magento新订单确认电子邮件的图片。 在我们正在开发的网站上,我们使用Fontis Australia扩展(http://www.magentocommerce.com/magento-connect/fontis-australia.html)来实施BPay支付方式。扩展程序正常,但在订单确认电子邮件中,电子邮件参考始终显示000000。

我尝试查看它,看到生成的参考号需要订单ID作为输入才能生成正确的参考号。 扩展程序使用此代码获取付款信息​​块上的最后一个订单号:     $ order_id = Mage :: getSingleton('checkout / session') - > getLastRealOrderId();

我尝试使用并打印其他控制器的结果,它显示正确的订单号。但似乎对于电子邮件中的付款信息块,无法检索订单号信息。实际上,同样的块也在结账成功页面上调出,并且显示正确。

有人可以建议其他方式在Magento电子邮件中获取付款信息​​块上的最后一个订单ID吗?

1 个答案:

答案 0 :(得分:3)

在信息模板中,您可以使用$order = $this->getInfo()->getOrder();获取Mage_Sales_Model_Order个对象。然后,您可以通过$ order->getData('increment_id')获取当前订单ID。

但是使用此代码,您会在结帐过程中收到错误,因为$this->getInfo()会返回其他模型。

所以解决方案,对我来说没有错误,是:

$info = $this->getInfo();   
if ($info instanceof Mage_Sales_Model_Order_Payment) {
    $order = $info->getOrder();
    echo $order->getData('increment_id'));
}