我正在尝试在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)
您的代码中的$ order是最后一个订单ID ...正如函数名称所暗示的那样.如果这不是您想要的值,那么使用它来加载订单,然后使用getter:
$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$lastOrderId = $order->getIncrementId();
Run Code Online (Sandbox Code Playgroud)
这将完美地工作,我现在在我的模块中运行这个.
$last_order_increment_id = Mage::getModel("sales/order")->getCollection()->getLastItem()->getIncrementId();
Run Code Online (Sandbox Code Playgroud)
希望它有助于谢谢.:)