获取Magento中最新订单的产品信息
默认情况下,Magento获得了订单信息,如发货、地址,但并没有太多关于产品的信息。我想获取最新的订单信息,包括产品url、产品缩略图等。我尝试加入订单平面表以获取信息。但是我发现在sales\u flat\u order\u item表中只有产品名称。那么,如何获取产品url和缩略图呢 我在block中编写了一个函数来获取订单的一些信息,magento的新手,您是否愿意告诉我这是否是从magento获取数据的好方法,如果不是,请告诉我您的方法获取Magento中最新订单的产品信息,magento,Magento,默认情况下,Magento获得了订单信息,如发货、地址,但并没有太多关于产品的信息。我想获取最新的订单信息,包括产品url、产品缩略图等。我尝试加入订单平面表以获取信息。但是我发现在sales\u flat\u order\u item表中只有产品名称。那么,如何获取产品url和缩略图呢 我在block中编写了一个函数来获取订单的一些信息,magento的新手,您是否愿意告诉我这是否是从magento获取数据的好方法,如果不是,请告诉我您的方法 public function getOr
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;
}
您可能需要使用
$order->getAllItems()
或$order->getAllVisibleItems()
。两者的区别在于getAllItems()返回所有项目,包括可配置/分组的产品及其子产品,而getAllVisibleItems()只返回父产品
从那里,您可以访问集合并使用$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 */
}
据我所知,您正在寻找这样的代码:
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 */
}