Magento: How to get qty of a specific product in an order item?

I have this script to help me get the QTY of a specific product from an order item in Magento 1.6. This needs to be visualized in a simple table. This is my code:

// Load the product collection $collection = Mage::getModel('catalog/product') ->getCollection() ->addAttributeToSelect('*'); foreach ($collection as $product) { $id = $product->getId(); $product_name = $product->getName(); $order_output = ''; $order_output .= '<table style="width: 500px">'; $order_output .= '<tr><td colspan="3"><strong>'.$product_name.'</strong></td></tr>'; $order_output .= '<tr><td><strong>Order id</strong></td><td><strong>Total price</strong></td><td><strong>Qty</strong></td><td><strong>Customer name</strong></td></tr>'; // Get all unique order IDs for items with specifix product ID $time = time(); $to = date('Ymd H:i:s', $time); $from = date('2012-07-01 08:00:00'); $orderItems = Mage::getResourceModel('sales/order_item_collection') ->addAttributeToFilter('product_id', $id) ->addAttributeToFilter('created_at', array('from' => $from, 'to' => $to)) ->addAttributeToSelect('order_id') ->load(); foreach ($orderItems as $order) { $order_data = Mage::getModel('sales/order')->load($order['order_id']); $items = $order_data->getColletion(); $order_id = $order['order_id']; $total = $order_data->getGrandTotal(); $customer_name = $order_data->getCustomerName(); foreach ($items as $item) { $product_id = $item->getProductId(); if ($product_id == $id) { $number_of_prod = $item->getQtyOrdered(); } } $order_output .= '</tr>'; $order_output .= '<td width="20%" align="left">'.$order_id.'</td>'; $order_output .= '<td width="20%">'.number_format($total, 2, '.', '').' RMB</td>'; $order_output .= '<td width="20%">'.$number_of_prod.'</td>'; $order_output .= '<td width="40%">'.$customer_name.'</td>'; $order_output .= '</tr>'; } $order_output .= '</table>'; header ("Content-Type: text/html; charset=UTF-8"); echo $order_output; } 

Everything fills correctly, and the only thing missing is QTY. You can see the attached image for output.

Any help is greatly appreciated.

enter image description here

UPDATE

When i use:

 $items = $order_data->getAllItems(); 

I get Qty, but now all orders for the corresponding products are not listed.

+6
source share
2 answers

Have you tried alternative methods to arrange qty?

 $item->getData('qty_ordered'); 

or

 $item['qty_ordered']; 
+18
source

There is another simple function for this:

 $item->getQtyOrdered(); 
+12
source

All Articles