获取Magento的订单增量ID

dou*_*ood 16 php magento

我正在尝试在success.phtml页面上获取Magento中的订单增量ID,以便我可以将其用于联盟会员跟踪.

我正在使用以下代码,但它在第二行给出错误;

$order = Mage::getSingleton('sales/order')->getLastOrderId();
$lastOrderId = $order->getIncrementId();
Run Code Online (Sandbox Code Playgroud)

错误如下:

致命错误:在第34行的非对象上调用成员函数getIncrementId():$ LastOrderId = $ order-> getIncrementId();

我想知道是否有人对如何获得订单增量ID有任何想法?这是管理员中看到的参考号,通常类似于:#1000123

小智 12

如果您在结帐成功页面上专门执行此操作 - 在success.phtml中 - 那么获取订单增量ID的代码已在模板中可用,因为它会显示给客户.

您只需要以下内容:

$orderId = $this->getOrderId();
Run Code Online (Sandbox Code Playgroud)

请注意,这不适用于其他页面,因此,您需要使用:

$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
Run Code Online (Sandbox Code Playgroud)

  • @Elzo Magento不是一个"愚蠢的观点"MVC.目的是称为块的PHP类公开phtml模板的方法.这些方法直接从Magento模型层读取以检索其数据. (2认同)

Gre*_*reg 7

您的代码中的$ order是最后一个订单ID ...正如函数名称所暗示的那样.如果这不是您想要的值,那么使用它来加载订单,然后使用getter:

$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$lastOrderId = $order->getIncrementId();
Run Code Online (Sandbox Code Playgroud)


Chi*_*007 5

这将完美地工作,我现在在我的模块中运行这个.

$last_order_increment_id = Mage::getModel("sales/order")->getCollection()->getLastItem()->getIncrementId();
Run Code Online (Sandbox Code Playgroud)

希望它有助于谢谢.:)