| 
       一、 后台订单列表grid页 1) 在订单grid列表中显示订单商品 奈何google又TM被封死了,百度能找到的方法,用起来不行。 因注:此文档已有两年多了,可以参考,硬搬会有几处错误), 几经修改将此功能写成了插件(Ludao_Adminrender), 试过简单暴力的方法,都不能翻页。 
 增加如支付方式、地址等, 由于join的数据表都是单列, 会简单一些。 而这里增加订单物品列(与显示物品缩略图类似), 用到 group_concat 。 文件路径: app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php, 其实插件是无需修改这部分的,只是为了简单。 ![]() 
        $collection = Mage::getResourceModel($this->_getCollectionClass());
        // 增加
        $itemTable = $collection->getTable('sales/order_item');
        $collection->getSelect()->joinLeft(
                                    $itemTable, 
                                    "{$itemTable}.order_id=`main_table`.entity_id",
                                    array('order_products' => new Zend_Db_Expr('group_concat('. $itemTable .'.name SEPARATOR "<br>")'))
                                )
                                ->group('main_table.entity_id');
        $this->setCollection($collection);
        return parent::_prepareCollection();
	![]() ![]() 
      // 修改 _prepareColumns(), 在ship to name 后增加列
        $this->addColumn('order_products', array(
            'header'    => Mage::helper('sales')->__('Order Products'),
            'index'        => 'order_products',
    //   'renderer'    => 'adminrenderer/adminhtml_sales_order_grid',
            'sortable'    => false,
       'filter'     => false,
            'type'        => 'text'
       ));
	![]() 此暴力方法是从我插件中独立出来的,貌似翻不了页,最好的还是重写 collection。 ![]() // app/code/local/Ludao/Adminrenderer/etc/config.xml <sales_resource> <rewrite> <order_grid_collection>Ludao_Adminrenderer_Model_Resource_Sales_Order_Grid_Collection</order_grid_collection> </rewrite> </sales_resource> ![]() 俺插件的collection : app/code/local/Ludao/Adminrenderer/Model/Resource/Sales/Order/Grid/Collection.php , 重写 getSelectCountSql() ![]() 
<?php
class Ludao_Adminrenderer_Model_Resource_Sales_Order_Grid_Collection extends Mage_Sales_Model_Resource_Order_Grid_Collection{
 
    /**
     * Get SQL for get record count
     * @return Varien_Db_Select
     */
    public function getSelectCountSql()
    {
        $countSelect = parent::getSelectCountSql();
        if (Mage::app()->getRequest()->getControllerName() == 'sales_order') {
            $countSelect->reset(Zend_Db_Select::GROUP);
            $countSelect->reset(Zend_Db_Select::COLUMNS);
            $countSelect->columns("COUNT(DISTINCT main_table.entity_id)");
            
        }
        return $countSelect;
    }
}
	![]() 简单来讲,就是重置掉 查询计数的Sql 的 group_concat 字段。 详情还是参见前面的链接。 
 
 二、 后台订单View页 1) 加入图片预览。 修改 app/design/adminhtml/default/default/template/sales/order/view/items/renderer/default.phtml, 在 <?php if ($this->canDisplayContainer()): ?> 之前插入: ![]() 
        <div style="width:60px;height:60px;float:left;display:inline-block;">
            <?php $_product =  Mage::getModel('catalog/product')->load($_item->getProductId());?>
            <a target="_blank" href="<?php echo $_product->getImageUrl(); ?>">
                <img height="60" width="60" src="<?php echo $_product->getThumbnailUrl(); ?>">
            </a>
        </div>
	![]() (责任编辑:最模板)  | 
    

