我已经在互联网上搜索了一个答案,其中包括许多SO问题,但没有一个问题似乎为我提供了我所需要的。在Magento中获取客户订单中的订单和发票网格
我有一个客户自定义属性()。我需要能够在管理区域中的订单和发票网格中显示此项。
我已经通过复制Mage_Adminhtml_Block_Orders_Grid
到当地的游泳池,使用下面
$collection->getSelect()
->join(
'sales_flat_order_address',
'main_table.entity_id = sales_flat_order_address.parent_id',
array('email')
);
此代码,显然得到了客户的电子邮件,只适用于该订单网格。
任何人都可以帮我在这些表中获得属性?
使用CE 1.9。
UPDATE
我用下面的代码加入_prepareCollection()
列:
$gen_number_attr = Mage::getSingleton('customer/customer')->getResource()->getAttribute('gen_number');
$collection->getSelect()->joinLeft(
array(
'table_customer_number' => $gen_number_attr->getBackend()->getTable()),
'main_table.customer_id = table_customer_number.entity_id AND table_customer_number.attribute_id = '.$gen_number_attr->getId(). ' AND table_customer_number.entity_type_id = '.Mage::getSingleton('customer/customer')->getResource()->getTypeId(),
array(
'customer_number' =>'table_customer_number.value'
)
);
现在的问题是,当我试图筛选我得到以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'customer_number' in 'where clause', query was: SELECT COUNT(*) FROM `sales_flat_order_grid` AS `main_table`
INNER JOIN `sales_flat_order_address` ON main_table.entity_id = sales_flat_order_address.parent_id WHERE (`customer_number` LIKE '%123%')
任何帮助,将不胜感激!
任何帮助都将不胜感激。必须有人有一个想法 – Wildcard27
转介此http://magento.stackexchange.com/a/99000/45103 –