Magento: Save shipment information of order programatically
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
1 2 3 4 5 6 7 8 9 | <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
1 2 3 4 5 6 7 8 9 | 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);
} |
5 Comments
Leave a comment
Welcome to my Blog
Certifications
Honor
Recognition
Contributions
Categories
- Apache (2)
- ChatGPT (1)
- Domain name (2)
- eCommerce (2)
- htaccess (1)
- Humor (3)
- Instagram API (1)
- jQuery (4)
- JSON (1)
- Linux (10)
- Magento (142)
- Magento admin (58)
- Magento Certification (5)
- Magento error (13)
- Magento frontend (68)
- Magento Imagine (2)
- Magento Interview (5)
- Magento Master (2)
- Magento2 (10)
- Mobile (1)
- MySQL (7)
- OpenAI (1)
- OroCRM (2)
- Performance (2)
- PHP (8)
- Prototype JS (3)
- Security (4)
- Wordpress (3)
- XML (2)
Tag Cloud
500 internal server error admin answers attribute bug category checkbox checkout cookie customer difference domain name EAV error event extension interview invoice jquery linux magento magento2 magento admin magento error magento interview questions magento orm mysql observer order pinterest product products questions redirect register remove script session simplexml to array state status study guide tax url wordpress
Hi,
Great blog !!! I tried to contact you about magento and possible partnershp, but your sendmail.php is missing 404, so the contact form does not work at all. Please drop me an email,
thanks,
IStvan
Replace
$shipment = $observer->getEvent()->getShipment();
with
$shipment = $observer->getShipment();
Hi..
Nice share.. your article works well for me..
Btw I have problem, how to get shipping address, city etc?
$observer->getInvoice(); //return empty
I trying the same code:
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);
}
But Carrier Code is changing to aramex it is always “custom value” …
I trying the same code:
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);
}
But Carrier Code is not changing to aramex it is always “custom value” …