user3793282
user3793282

Reputation: 19

How to get invoice id from order increment id

I have order increment id like 100000096 and i want to get its invoice id, please help me to achieve this in magento, i have tried with

                 $incrementId = '100000096';
               $order = Mage::getModel('sales/order')->load($incrementId);
                   $invIncrementIDs = array();
                     foreach ($order->getInvoiceCollection() as $inv) {
                         $invIncrementIDs[] = $inv->getIncrementId();
              }

But it returns an empty array.

Upvotes: 0

Views: 15155

Answers (3)

TBI
TBI

Reputation: 2809

You are using order increment id in load() function, you have to use loadByIncrementId().

Try to use this -

$orderid = '100000096'; // order increment id
$order = Mage::getModel('sales/order')->loadByIncrementId($orderid);
if ($order->hasInvoices()) {
    $invIncrementIDs = array();
    foreach ($order->getInvoiceCollection() as $inv) {
        $invIncrementIDs[] = $inv->getIncrementId();
    }
}

echo "<pre>";
print_r($invIncrementIDs);
echo "</pre>";

Upvotes: 5

Farukest
Farukest

Reputation: 1518

try this you will not regret

$order_id = "type_here_your_orderid";
$invoices = Mage::getResourceModel('sales/order_invoice_collection')
                ->setOrderFilter($order_id)
                ->load();
$invoice_id = $invoices->getData()[0]["increment_id"];
echo $invoice_id;

thats all.

Upvotes: 0

Slimshadddyyy
Slimshadddyyy

Reputation: 4073

Try this :

$orderIncrementId = '100000004'; // your order increment id

$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);

if ($order->hasInvoices()) {
    $invIncrementId = array();
    foreach ($order->getInvoiceCollection() as $invoice) {
        $invoiceIncId[] = $invoice->getIncrementId();
    }
}


echo "<pre>";print_r($invoiceIncId);echo '<br>';

In order to get Invoice id from Invoice incrementId

$incrementId = $invoiceIncId[0];
$invoive = Mage::getModel('sales/order_invoice')->loadByIncrementId($incrementId);
$invoiceId = $invoice->getId();

echo "<pre>";print_r($invoiceId);exit;

Upvotes: 1

Related Questions