给magento后台订单加入详情预览 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>
(责任编辑:最模板) |

ecshop鲜花模板
人气:657
仿万家购物返利网程序源
人气:5666
ecshop仿御灵珠宝商城模板
人气:497
ecshop秒杀插件
人气:4582
ecshop内衣服装综合模板
人气:1237
ecshop英文外贸基本模板-特
人气:1629