Get Order Information From Order ID in Magento 2 (Updated 2020)
In this code snippet, we will see how to fetch order information such as order items, payment, customer, billing, and shipping details from order id. You can get order id at the checkout success page from the checkout session object.
Get Order Information From Order ID using Repository
Magento 2 recommended using Repository to get the entity data. Below is the code snippet to get order information from the order id using the order repository.
<?php Class Codextblog { protected $orderRepository; public function __construct( \Magento\Sales\Api\OrderRepositoryInterface $orderRepository ){ $this->orderRepository = $orderRepository; } public function MyFunction() { $orderId = 2; $order = $this->orderRepository->get($orderId); echo $order->getIncrementId(); echo $order->getGrandTotal(); echo $order->getSubtotal(); //fetch whole payment information print_r($order->getPayment()->getData()); //fetch customer information echo $order->getCustomerId(); echo $order->getCustomerEmail(); echo $order->getCustomerFirstname(); echo $order->getCustomerLastname(); //fetch whole billing information print_r($order->getBillingAddress()->getData()); //Or fetch specific billing information echo $order->getBillingAddress()->getCity(); echo $order->getBillingAddress()->getRegionId(); echo $order->getBillingAddress()->getCountryId(); //fetch whole shipping information print_r($order->getShippingAddress()->getData()); //Or fetch specific shipping information echo $order->getShippingAddress()->getCity(); echo $order->getShippingAddress()->getRegionId(); echo $order->getShippingAddress()->getCountryId(); } }
Note: For the demonstrated purpose we have used Objectmanager.Codextblog never recommend the direct use of ObjectManager.One should always use a constructor method to instant an object.
Get Order Information From Order ID
<?php $orderid = 2; $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderid); //fetch whole order information print_r($order->getData()); //Or fetch specific information echo $order->getIncrementId(); echo $order->getGrandTotal(); echo $order->getSubtotal(); ?>
Get Order Items Information
<?php $orderid = 2; $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderid); //Loop through each item and fetch data foreach ($order->getAllItems() as $item) { //fetch whole item information print_r($item->getData()); //Or fetch specific item information echo $item->getId(); echo $item->getProductType(); echo $item->getQtyOrdered(); echo $item->getPrice(); } ?>
Get Order Payment Information
<?php $orderid = 2; $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderid); //fetch whole payment information print_r($order->getPayment()->getData()); //Or fetch specific payment information echo $order->getPayment()->getAmountPaid(); echo $order->getPayment()->getMethod(); echo $order->getPayment()->getAdditionalInformation('method_title'); ?>
Get Order Customer Information
<?php $orderid = 2; $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderid); //fetch customer information echo $order->getCustomerId(); echo $order->getCustomerEmail(); echo $order->getCustomerFirstname(); echo $order->getCustomerLastname(); ?>
Get Order Shipping And Billing Information
<?php $orderid = 2; $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderid); //fetch whole billing information print_r($order->getBillingAddress()->getData()); //Or fetch specific billing information echo $order->getBillingAddress()->getCity(); echo $order->getBillingAddress()->getRegionId(); echo $order->getBillingAddress()->getCountryId(); //fetch whole shipping information print_r($order->getShippingAddress()->getData()); //Or fetch specific shipping information echo $order->getShippingAddress()->getCity(); echo $order->getShippingAddress()->getRegionId(); echo $order->getShippingAddress()->getCountryId(); ?>
If you liked this post, then please like us on Facebook and follow us on Twitter.
Leave a Comment
(18 Comments)
Hi, I need code gift card of the Order Can I help me?
find this complex, please explain more further about where those files should be placed, called, etc, etc…
How can we get the item image in order of data
You first need to get the product id $_item->getProductId(); and then you need to load product to get its image
How to Load all Orders for Specified Customer’s billing address Phone Number
You have to do join between sales_order and sales_order_address table and filter out data by customer_id and telephone
How can I get telephone number?
Thanks
You can get telephone using below code.
get(‘Magento\Framework\App\ResourceConnection’);
//$connection = $resource->getConnection();
$orderCollection = $objectManager->create(‘Magento\Sales\Model\Order’)->getCollection();
//var_dump($orderCollection->getData());
$jsonData = json_encode($orderCollection->getData());
echo $jsonData;
What you mean by above code? Can you please explain?
getConnection(‘core_read’);
/**
* Retrieve the write connection
*/
$writeConnection = $resource->getConnection(‘core_write’);
$categoryId = 14;
$filteredOrderIds = array();
$query = ‘SELECT * FROM sales_flat_order_item’;
$results = $readConnection->fetchAll($query);
foreach ($results as $orders)
{
$orderID = $orders[‘order_id’];
$prodID = $orders[‘product_id’];
$product = Mage::getModel(‘catalog/product’);
$product->setId($prodID);
$categoryIds = $product->getResource()->getCategoryIds($product);
if (in_array($categoryId, $categoryIds))
{
$filteredOrderIds[] = $orders[‘order_id’];
// echo “”;print_r($filteredOrderIds);
}
// $fileName = ‘example.csv’;
// header(‘Content-Type: application/excel’);
// header(‘Content-Disposition: attachment; filename=”‘ . $fileName . ‘”‘);
// echo “”;print_r($orders);die(); # code…
}
$file = fopen(‘php://output’,’w’);
foreach ($filteredOrderIds as $line)
{
fputcsv($file,explode(‘,’,$line));
// echo “”;print_r($line);
}
fclose($file);
//echo “”;print_r($filteredOrderIds); # code…
//$filteredOrderIds[] = $orderId;
?>
How to Get Order details in CSV?
Very useful information….
How to get order totals?
You can get order totals using below code
Okay, But I need to get order totals in one object like $quote->getShippingAddress()->getTotals()
You can get it in one object like this
How to get order comments?
You can get order comments using below code
Useful Magento 2 Articles
Author Info
Chirag
Connect With MeWas this post helpful? Please support Us!
To Avoid Spam Downloads, We Want Your Email
away. Please submit form below.
Magento 2
Knowledge
to your Inbox