2011-12-25 14 views
0

Magentoでは、出荷時、住所などの注文情報がありますが、製品に関する情報はほとんどありません。私は最新の注文情報に製品のURL、製品のサムネイルなどを含めたいと思っています。私はフラットテーブルを注文して情報を入手しようとします。しかし、sales_flat_order_itemテーブルには商品名しかないことがわかりました。では、どのようにして製品のURLとサムネイルを取得できますか?Magentoの最新の製品情報を入手

私はmagentoからの注文についての初心者の情報を得るためにブロックに関数を書いています。これがマゼンタからデータを取得する良い方法であるかどうか教えてください。あなたはおそらくやって欲しい

public function getOrderCollection() { 
    $orders = Mage::getModel('sales/order')->getCollection(); 
    $orders->getSelect() 
     ->join(
      array('addr' => Mage::getSingleton('core/resource')->getTableName('sales/order_address')), 
      'main_table.entity_id = addr.parent_id', 
      array('addr.*') 
     )  
     ->join(
      array('itemz' => Mage::getSingleton('core/resource')->getTableName('sales/order_item')), 
      'main_table.entity_id = itemz.order_id', 
      array('itemz.*') 
     ) 
     ->join(
      array('product' => Mage::getSingleton('core/resource')->getTableName('catalog/product')), 
      'itemz.product_id = product.entity_id', 
      array('product.*') 
     ) 
     ; 
    $orders 
     ->addAttributeToFilter('main_table.status', 'Processing') 
     ->addAttributeToFilter('addr.address_type', 'shipping') 
     ->addAttributeToSort('main_table.entity_id', 'asc') 
     ; 


    return $orders; 
} 

答えて

0

$order->getAllItems()または$order->getAllVisibleItems()を使用しています。 2つの違いは、getAllItems()は構成可能/グループ化された製品とその子を含むすべての項目を返しますが、getAllVisibleItems()は親製品のみを返します。そこから

あなたは、このように製品をロードする必要がありますコレクションをするforeachと$item->getProduct()を使用するか、または可能性が高いことができます。

Mage::getModel('catalog/product')->load($item->getProductId()); 

私はあなたがこのようなコードを探している伝えることができるものから:

$items = $order->getAllItems(); 
foreach ($items as $item) { 
    $product = Mage::getModel('catalog/product')->load($item->getProductId()); 
    /* Use product methods here to get required data */ 
} 
関連する問題