onepage-checkout - 订单成功页面错误
问题描述
我已经能够开发一个模块,在单击 PlaceOrder 按钮后将客户重定向到支付网关(外部 url)。在支付网关上完成交易后,我重定向到 Magento 上的控制器,这使我可以获取交易状态并安全地保存到自定义表。保存后,我重定向到checkout_onepage_success.xml
并包含了我的 template="Vendor_Module::checkout/success.phtml" 但我不断收到错误消息-
1 exception(s): Exception #0 (Magento\Framework\Exception\InputException): Id required
解决方案
如果您正在覆盖 Onepage 成功控制器并实现您的自定义逻辑,在这种情况下,您将不会在成功操作控制器中调度的“checkout_onepage_controller_success_action”事件中获得 LastOrderId。
这就是为什么它会抛出“需要 Id”输入异常。
避免覆盖 Onepage 控制器操作
<preference for="Magento\Checkout\Controller\Onepage\Success" type="Arman\Checkout\Controller\Onepage\Success" />
不要在成功控制器中集成您的特定代码,而是尝试使用在成功操作控制器中调度的观察者 checkout_onepage_controller_success_action 并在观察者中实现您的逻辑。
public function execute(\Magento\Framework\Event\Observer $observer)
{
try {
$orderIds = $observer->getEvent()->getOrderIds();
//enter code here
} catch (Exception $e) {
}
}
希望,它将解决您的问题,因为我遇到了同样的错误,并且通过这种方法为我解决了
推荐阅读
- c++ - Mask RCNN OpenVino - C++ API
- mongodb - MongoDB 提示()失败 - 不确定是否是因为索引仍在索引
- excel - 偶尔会遇到运行时错误 1004
- python - dict_keys 对象不支持索引
- postgresql - Postgres 11 Standby 永远赶不上
- c - 指向数组的初始化指针
- hyperledger-fabric - 一次生成大量资产时出现超时错误
- css - 上下文菜单颜色
- html - HTML5 视频在 macOS Safari 上播放,而不是 iOS Safari
- r - 使用 ggplot2 和 facet_wrap 绘制估计值而不重新拟合模型