观察者返回'No such entity with orderId' magento 2 中的订单存储库



当执行事件"controller_action_predispatch_checkout_index_index"时,我正在尝试从数据库中获取订单(不是结帐后将创建的那个,数据库中已经存在的那个,并且之前创建的那个。我正在通过订单存储库加载订单,它可以工作

use MagentoSalesApiOrderRepositoryInterface as OrderRepository;
$this->orderRepository->get($approvalOrderId);

当我尝试在执行事件"sales_order_place_after"时加载相同的订单并使用相同的代码示例时,它不起作用。我收到错误"没有具有 orderId = 的此类实体"。

可能是当时订单尚未保存。但是您正在观察的事件已经携带该顺序对象。您可以在观察器执行函数中尝试以下代码吗?

public function execute(EventObserver $observer)
{
$order = $observer->getEvent()->getOrder();
//do something with the $order
}

最新更新