Apr 28, 2013
kalpesh

Magento get all invoices and shipments of an order

Getting all the invoices of an order:

1
2
3
4
5
6
7
8
$order = Mage::getModel('sales/order')->load($orderID);
if ($order->hasInvoices()) {
    $invIncrementIDs = array();
    foreach ($order->getInvoiceCollection() as $inv) {
        $invIncrementIDs[] = $inv->getIncrementId();
    //other invoice details...
    } Mage::log($invIncrementIDs);
}

Getting all the shipments of an order:

1
2
3
4
5
$order = Mage::getModel('sales/order')->load($orderID);
foreach($order->getShipmentsCollection() as $shipment)
{
    Mage::log($shipment->getData()); //get each shipment data here...
}

4 Comments

  • It helped me a lot very very thanks for the post keep on…..

  • it would be good if you had added what does Mage::log($invIncrementIDs); logged.
    I need to get the details of items being invoiced (partially). Like their qty, sku, name, price, tax, etc.

  • everyone just had written it to this point: $invIncrementIDs[] = $inv->getIncrementId();. But can you help me? I’m working on a payment gateway where partial invoice can be created. For the first time I’m able to get $order->hasInvoices() but in there I’m unable to get the qty invoice for that item. Also, for the next time of invoice I’m unable to get $order->hasInvoices(). Why it happen so?

  • I want get count of all orders shipped in different states in india the total item sold in each state and the total amount.

Leave a comment

 

Welcome to my Blog

Kalpesh MehtaHelping Magento developers in their day-to-day development problems since 2011. Most of the problems and solutions here are my own experiences while working on different projects. Enjoy the blog and don't forget to throw comments and likes/+1's/tweets on posts you like. Thanks for visiting!

Certifications