Magento将产品属性拉入Adminhtml订单项网格

时间:2012-06-19 16:44:16

标签: magento admin adminhtml

我正在为Magento的管理员创建一个特定功能的自定义模块。在Adminhtml网格中,我提取了订单项,但还需要提取特定于每个产品的数据,因为它当前位于数据库中。

附件是我当前的Adminhtml网格的屏幕截图。 Adminhtml Grid 我需要将产品属性(品牌,味道等)添加为网格的附加列。我该怎么做呢?我尝试添加

$collection->join()

上的

_prepareCollection()

函数,但无法确定要连接的确切表(打开平面索引)。

谢谢! 标记


感谢您的提示。不是我正在寻找的东西,因为我正在处理带有选择菜单的EAV对象,但它很接近(upvoting)。

以下是我将最终添加的集合选择:

$collection->getSelect()->join('catalog_product_index_eav', '`catalog_product_index_eav`.`entity_id` = `main_table`.`product_id` AND `catalog_product_index_eav`.`attribute_id` = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = "brand")', array('attribute_id'));
$collection->getSelect()->join('eav_attribute_option_value', '`eav_attribute_option_value`.`option_id` = `catalog_product_index_eav`.`value`', array('brand' => 'value'));

我真的不需要这个新品牌列的输入文本框中的search功能,但有谁知道如何使这项工作?收到此错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'brand' in 'where clause'

我可以进去诊断,但想到有人可能会知道他们的头脑。

1 个答案:

答案 0 :(得分:2)

您将不得不弄清楚要在联接中使用的表格。

$collection->getSelect()->join('sales_flat_order_item', '`sales_flat_order_item`.order_id=`main_table`.entity_id AND `sales_flat_order_item`.parent_item_id IS NULL  ', null);

$collection->getSelect()->join('catalog_product_entity_varchar', '`catalog_product_entity_varchar`.attribute_id=144 AND `catalog_product_entity_varchar`.entity_id = `sales_flat_order_item`.`product_id`', array('models'  => new Zend_Db_Expr('group_concat(`catalog_product_entity_varchar`.value SEPARATOR ",")')))

来源: http://www.atwix.com/magento/customize-orders-grid/