Magento: Save shipment information of order programatically

· kalpesh

After creating invoice and shipment, it is necessary to add tracking information to shipment. Here is how to write a observer which will invoke as shipment save method is called and save tracking information programatically.

config.xml – under global -> events node

<sales_order_shipment_save_before>  
 <observers>  
 <namespace_modulename_ship_before>  
 <type>singleton</type>  
 <class>Namespace_Modulename_Model_Observer</class>  
 <method>salesOrderShipmentSaveBefore</method>  
 </namespace_modulename_ship_before>  
 </observers>  
 </sales_order_shipment_save_before>

Observer.php -> under Model directory of module

public function salesOrderShipmentSaveBefore($observer)  
 {  
 $shipment = $observer->getEvent()->getShipment();  
 $track = Mage::getModel(‘sales/order_shipment_track’)  
 ->setNumber(‘824343454454’) //tracking number / awb number  
 ->setCarrierCode(‘aramex’) //carrier code  
 ->setTitle(‘Aramex’); //carrier title  
 $shipment->addTrack($track);  
 }

#assign awb number #magento #magento admin #save shipment #save tracking info #shipment save before