How to get tracking info in observer Magento 2?
-
11-10-2020 - |
Question
I am trying to get tracking number and courier name while submitting a shipment in backend but I am not getting these data in observer. below is the code.
events.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_order_shipment_save_after">
<observer name="trackShiping" instance="Aftership\Track\Observer\Tracking"/>
</event>
</config>
Tracking.php
<?php
namespace Aftership\Track\Observer;
use Magento\Framework\Event\ObserverInterface;
class Tracking implements ObserverInterface {
protected $logger;
public function __construct( \Psr\Log\LoggerInterface $logger) {
$this->logger = $logger;
}
/**
* @param \Magento\Framework\Event\Observer $observer
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$magento_order = $observer->getShipment()->getOrder();
$data = $magento_order->getData();
$this->logger->info('Data', $data);
}
}
In system.log I am not getting data related to tracking. What I am doing wrong. Please help me to get tracking data.
Solution
OK I found the answer I need to use sales_order_shipment_track_save_after instead of sales_order_shipment_save_after.
After that in observer
we can get track data using $observer->getEvent()->getTrack()
hope it'll help someone
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange