2013-04-15 4 views
6

मेरे पास यह स्क्रिप्ट है जो मुझे Magento 1.6 में ऑर्डर आइटम से किसी विशिष्ट उत्पाद की QTY प्राप्त करने में मदद करती है। यह एक साधारण तालिका में कल्पना की जानी चाहिए। यह मेरा कोड अब तक है:Magento: ऑर्डर आइटम में किसी विशिष्ट उत्पाद की qty कैसे प्राप्त करें?

// 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('Y-m-d 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; 
} 

सबकुछ सही ढंग से पॉप्युलेट हो रहा है और केवल एक ही चीज़ गायब है। आप आउटपुट के लिए संलग्न छवि देख सकते हैं।

किसी भी मदद की बहुत सराहना की जाती है।

enter image description here

अद्यतन

जब मैं का उपयोग करें:

$items = $order_data->getAllItems(); 

मैं मात्रा मिल लेकिन अब संबंधित उत्पादों के सभी आदेशों सूचीबद्ध नहीं है।

+0

इसके अलावा जब मैं echo $ product_id कि वर रिक्त है तो मुझे लगता है कि है कि इस लाइन: $ product_id = $ आइटम,> getProductId(); गलत है। – Ismailp

उत्तर

17

क्या आपने qty आदेश देने के लिए वैकल्पिक तरीकों का प्रयास किया है?

$item->getData('qty_ordered'); 

या

$item['qty_ordered']; 
+0

हां, दूसरा समाधान पूरी तरह से काम किया! धन्यवाद! – Ismailp

+0

कोई समस्या नहीं! –

12

इस के लिए एक और सरल समारोह है:

$item->getQtyOrdered(); 
संबंधित मुद्दे