Получите адрес доставки на checkout_onepage_controller_success_action в Magento 2

Я хочу получить все сведения о доставке в событии checkout_onepage_controller_success_action.

Я использую следующий код:

      $event = $observer->getEvent();
$orderIds = $event->getOrderIds();
$order_id = $orderIds[0];
$shipping = $order_id->getShippingAddress()->getData();
$shippingMethod = $order_id->getShippingMethod();

Получение ошибки Ошибка: вызов функции-члена getShippingAddress() в строке.

По моему мнению, способ передачи $order_id в getShippingAddress() неверен. Может ли кто-нибудь проинформировать меня о том же? Я хочу получить полные данные по идентификатору заказа.

Раши

1 ответ

Этот код в вашем классе наблюдателя должен работать:

      protected $orderFactory;

public function __construct(
    \Magento\Sales\Model\OrderFactory $orderFactory
) {
    $this->orderFactory = $orderFactory;
}

public function execute(\Magento\Framework\Event\Observer $observer)
{
    $orderId = $observer->getEvent()->getOrderIds()[0];
    $order = $this->orderFactory->create()->load($orderId);
    $shippingInformation = $order->getShippingAddress();
}
Другие вопросы по тегам