Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Magento中最新订单的产品信息_Magento - Fatal编程技术网

获取Magento中最新订单的产品信息

获取Magento中最新订单的产品信息,magento,Magento,默认情况下,Magento获得了订单信息,如发货、地址,但并没有太多关于产品的信息。我想获取最新的订单信息,包括产品url、产品缩略图等。我尝试加入订单平面表以获取信息。但是我发现在sales\u flat\u order\u item表中只有产品名称。那么,如何获取产品url和缩略图呢 我在block中编写了一个函数来获取订单的一些信息,magento的新手,您是否愿意告诉我这是否是从magento获取数据的好方法,如果不是,请告诉我您的方法 public function getOr

默认情况下,Magento获得了订单信息,如发货、地址,但并没有太多关于产品的信息。我想获取最新的订单信息,包括产品url、产品缩略图等。我尝试加入订单平面表以获取信息。但是我发现在sales\u flat\u order\u item表中只有产品名称。那么,如何获取产品url和缩略图呢

我在block中编写了一个函数来获取订单的一些信息,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;
}

您可能需要使用
$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 */
}