Magento2 结帐时获取下一个订单增量编号?

我正在开发自定义付款网关。它使用OrderIncrementID来识别付款的订单。在下订单(即结帐后),我可以运行所有功能,但结帐页面本身除外。

在结帐页面上,未创建订单,获取OrderIncrementID似乎非常困难。我们必须覆盖结帐中的订单创建,以便将在选择付款方式之后创建订单,这听起来很复杂,而且覆盖流程很危险。一种替代方法是使用QuoteID,但是要权衡的是我必须实现从QuoteIDOrderIncrementID的转换。

在这种情况下,我该怎么办才能在结帐页面中获取OrderIncrementID特别是选择付款方式后

回答:如果有帮助,您可以获取报价的保留订单ID。尝试这个:

$incrementId = $quote->getReservedOrderId();

或者,您可以获取如下所示的订单增量ID:

$quote->reserveOrderId();

根据该方法的注释,这将:

/**
 * Generate new increment order id and associate it with current quote
 *
 * @return Mage_Sales_Model_Quote
 */
public function reserveOrderId()

另外,如果您愿意,也可以挂接到事件:sales_model_service_quote_submit_before

然后在事件处理程序中获取incidenceId,如下所示:

public function doSomething($observer){//observer for the event
    $quote = $observer->getEvent()->getQuote();
    $incrementId = $quote->getReservedOrderId();
    //do stuff
} 

版权属于: sbboke版权所有。

转载时必须以链接形式注明作者和原始出处及本声明。

张贴在magento2教程标签:

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论