3

我正在使用 Magento 1.4.1.1 和AW RMA 扩展

安装此扩展后,我在管理员中看到了 RMA 请求网格和待处理的 RMA 请求网格。

我希望能够根据customer_referrer_id存储在customer_entity_varchar中的 EAV(自定义)属性过滤此网格中的请求

该扩展有一个表aw_rma_entity,其中还保留了customer_id。RMA Grid 获取如下数据:

$collection = Mage::getModel('awrma/entity')
                ->getCollection();

尝试 1

我已尝试将客户实体与此表连接起来,如下所示:

$collection->getSelect()->join('customer_entity', 'customer_id = customer_entity.entity_id', array('entity_id' => 'customer_entity.entity_id'));

结果 1

这只是显示一个没有网格的页面。如果它起作用了,我会尝试加入 customer_entity_varchar 以在该customer_referrer_id字段上应用过滤器。


尝试 2

我所做的另一个尝试是先加载客户集合,然后将 RMA 实体数据加入其中,如下代码所示:

$collection = Mage::getResourceModel('customer/customer_collection');

$collection->joinRight('awrma/entity', 'customer_id=entity_id', array('*'));

结果 2

第二次尝试产生以下错误:

错误信息--------------------------------> 具有相同 id "XXX" 的项目 (Mage_Customer_Model_Customer) 已存在";

尽管事实上它在销售订单网格中过滤结果的类似问题之后以这种方式对我有用

4

1 回答 1

4

这可能不是最好的解决方案,但它很可能会起作用:

$collection = Mage::getModel('awrma/entity')->getCollection();
$collection->getSelect()->joinInner('customer_entity_varchar', 'customer_id=entity_id', array('attribute_id' =>'attribute_id','value'=>'value') );                
$logged_in_admin = Mage::getSingleton('admin/session')->getUser()->getEmail();  
$customer_referrer_attribute_id = //Set this equal to attribute_id FROM table eav_attribute WHERE attribute_code = "customer_referrer_id"     
$collection->addFieldToFilter('attribute_id', $customer_referrer_attribute_id );
$collection->addFieldToFilter('value', $customer_referrer_id);
于 2012-06-25T10:38:33.760 回答