【问题标题】:Magento 2 : How to get order id in guest checkout before success page?Magento 2:如何在成功页面之前在客人结帐中获取订单 ID?
【发布时间】:2017-02-11 06:09:33
【问题描述】:

我正在使用 Magento 2.1.3。我想在成功页面之前在客人结帐中获取订单 ID。我在谷歌上搜索并找到了一些这样的代码。

$orderIncrementId = $this->checkoutSession->getLastRealOrderId();

使用 chcekout seesion \Magento\Checkout\Model\Session 对象,我尝试获取订单 ID,但它不起作用。 在 magento 1.x 中,我们可以使用相同的方法轻松地从结帐会话中获取订单 ID。在 magento 2.x 中,我们无法做到这一点。

在 magento 2.x 中,如何在成功页面之前在访客结帐中获取订单 ID?

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: magento2


    【解决方案1】:

    试试这些代码行:

    $this->checkoutSession->getQuote()->reserveOrderId();
    $reservedOrderId = $this->checkoutSession->getQuote()->getReservedOrderId();
    

    【讨论】:

    • $this->checkoutSession->getQuote()->reserveOrderId();使用这一行,magento 设置订单增量 id。在此语句之后,您可以通过以下语句获取订单 ID:$order_id = $this->_checkoutSession->getQuote()->getReservedOrderId();
    • 请编辑您的答案以帮助他人。非常感谢。
    • 能知道如何通过 API 做到这一点吗?
    【解决方案2】:
    $this->_checkoutSession->getQuote()->reserveOrderId();
    $order = $this->_checkoutSession->getQuote()->getReservedOrderId();
    

    【讨论】:

    • 当一年前给出完全相同的答案时,您如何为自己创建一个可接受的答案,这很奇怪。最好接受那个。
    • 在结帐会话中,当我刷新订单 ID 时自动更改意味着如果 orderId 为 9 并且当我刷新结帐页面时它将为 10,请查看它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2016-02-10
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多