订单列表中的Magento类别

时间:2013-10-03 14:39:45

标签: magento adminhtml

我想在销售网格视图中显示一些其他数据并能够对其进行过滤

我正在尝试为每个订单显示SKU,产品名称,总数量和产品制造商(或类别或其他属性)

使用此代码,我可以获得前三个

$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection
  ->join(
    array('s'=>'sales/order_item'),
    '`main_table`.entity_id=s.order_id',
    array(
    'skus'  => new Zend_Db_Expr('group_concat(s.sku SEPARATOR ", ")'),
    'names' => new Zend_Db_Expr('group_concat(s.name SEPARATOR ", ")'),
    'items' => new Zend_Db_Expr('count(s.qty_ordered)'),
     )
    );
$collection->getSelect()->group('entity_id');

它有效:)

要获取其他数据(es:locality,产品的自定义属性),我要进行另一次连接以获取产品数据,因此我认为我的代码应该类似于

$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection
  ->join(
    array('s'=>'sales/order_item'),
    '`main_table`.entity_id=s.order_id',
    array(
    'skus'  => new Zend_Db_Expr('group_concat(s.sku SEPARATOR ", ")'),
    'names' => new Zend_Db_Expr('group_concat(s.name SEPARATOR ", ")'),
    'items' => new Zend_Db_Expr('count(s.qty_ordered)'),
     )
    );
$collection //OR $collection->getSelect() both don't work
  ->join(
    array('p'=>'catalog/product'),
    'p.entity_id=s.product_id',
    array(
       .....
      )
    );

.... more stuff

$collection->getSelect()->group('entity_id');

但每次我尝试添加第二个连接时,我都会在日志

中收到模板o_O错误

2013-10-03T14:27:00 + 00:00调试(7):无法加载模板:[MYBASEDIR] /app/design/adminhtml/default/default/template/widget/grid/container.phtml < / p>

2013-10-03T14:27:00 + 00:00调试(7):无法加载模板:[MYBASEDIR] /app/design/adminhtml/default/default/template/page.phtml

我真的很无能......如何解决这个问题?如何在该集合中加入1个以上......?

由于

1 个答案:

答案 0 :(得分:0)

如果你想多次使用它,我认为你必须使用$collection->getSelect()->join(..);而不只是$collection->join(...);