Max 解决方案非常到位,但缺少一些重要步骤,我将详细说明他的原始方法
通过将 app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tab/Product.php 复制到 app/code/local/Mage/Adminhtml/Block/Catalog/Category/Tab 来创建产品选项卡的新本地覆盖/产品.php
修改网格视图涉及 2 个函数。_prepareCollection 和 _prepareColumns
_prepareColumns 通过添加对 addColumn 函数的调用,就像:
$this->addColumn('size', array(
'header' => Mage::helper('catalog')->__('Size'),
'width' => '80',
'index' => 'size'
));
_prepareCollection,默认情况下,网格中加载的产品集合只有几个属性(名称,sku,价格)如果您只使用文本字段,您需要做的添加我们的 now 属性 ->addAttributeToSelect('size') now属性,那么这是您必须做的修改的扩展,但是如果您的属性是例如下拉列表,您将需要对准备集合进行进一步的更改:
(可选)下拉属性仅存储选择的选项的值,因此我们需要为 addColumns 调用提供一个选项数组,以便 Magento 可以正确显示值,我们可以通过以下方式做到这一点:
在产品的本地副本上,将以下内容添加到 _prepareColumns 函数
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'colour');
$options = array();
foreach( $attribute->getSource()->getAllOptions(true, true) as $option ) {
$options[$option['value']] = $option['label'];
}
$this->addColumn('colour', array(
'header' => Mage::helper('catalog')->__('Colour'),
'width' => '80',
'index' => 'colour',
'type' => 'options',
'options' => $options
));