2011-12-25 2 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(). Разница между ними заключается в том, что 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 */ 
} 
Смежные вопросы