Question

I am trying to get the shipping method using Object Manager

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderid);

by doing var_dump on $order->getShippingAddress()->getData() i get no such thing as shipping method, from where i can get shipping method? I am new to magento.

after referring to this link

Magento2: How to get shipping method in order using observer `sales_order_save_after`?

I don't know how to use sales_order_save_after if that's the only solution out there.

Was it helpful?

Solution

You can try below code to get shipping method.

$shippingMethod = $order->getShippingDescription();
$order->getShippingMethod();

It's getting the shipping method. Still facing any issue let me know.

OTHER TIPS

You are doing var_dump on $order->getShippingAddress()->getData(). Instead of that, do var_dump on $order->getData() and you will be able to see shipping_method.

You can get the shipping method by

$order->getShippingMethod();

or

$order->getShippingAddress()->getShippingMethod();

You will have to create an observer

events.xml

<?xml version="1.0"?>
<event name="sales_order_save_before">
    <observer name="order_save_after" instance="Vendor\ModuleName\Observer\OrderSaveAfter" />
</event>

OrderSaveAfter.php

<?php
namespace Vendor\ModuleName\Observer;

use Magento\Framework\Event\ObserverInterface;

class OrderSaveAfter implements ObserverInterface {

    public function execute(\Magento\Framework\Event\Observer $observer) {
        $order = $observer->getEvent()->getOrder();
        $order->getShippingMethod();
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top