Magento1: Получаем список товаров из заказа (ордера)

Получаем список товаров из заказа (ордера) в Magento.

Пример кода:

$order = Mage::getModel('sales/order')->load(7);

//или

$order = Mage::getModel('sales/order')->loadByIncrementId(10000007)
$items = $order->getAllItems();
$itemcount=count($items);
$name=array();
$unitPrice=array();
$sku=array();
$ids=array();
$qty=array();

foreach ($items as $itemId => $item)
{
    $name[] = $item->getName();
    $unitPrice[]=$item->getPrice();
    $sku[]=$item->getSku();
    $ids[]=$item->getProductId();
    $qty[]=$item->getQtyToInvoice();
}

Как видно получаем масив с данными, но не все так просто.

В Magento довольно запутаная система создания заказов, к примеру этим куском кода мы можем получить список товаров для заказа который в процессе обработки.

Если заказ уже готов – Complete, то у нас будет пустой список 🙁 .

Но есть и хорошие новости, в Мадженто много дублирующих функций и методов, к примеру информацию о заказе можем получить с помощью API , которое в Magento очень хорошо реализовано.

Можно также использовать функции API напрямую в коде.

Пример кода, используем  функции API:

$apiClass = new Mage_Sales_Model_Order_Api;
$myOrderInfo = $apiClass->info('1000000001');

// номер заказа 1000000001
//1000000001 - 'increment_id'

var_dump($myOrderInfo);  //получаем весь массив с данными