私はMagento1.4.1.1とその上にAWRMA拡張機能を使用しています。
この拡張機能をインストールすると、管理者にRMAリクエストグリッドと保留中のRMAリクエストグリッドが表示されます。
たとえば、 customer_entity_varcharcustomer_referrer_id
に格納されているEAV(カスタム)属性に基づいて、このグリッド内のリクエストをフィルタリングできるようにしたい
拡張機能にはテーブルaw_rma_entityがあり、このテーブルにはcustomer_idも保持されます。RMAグリッドは次のようなデータをフェッチします。
$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
私が行ったもう1つの試みは、最初に顧客コレクションをロードしてから、次のコードのようにRMAエンティティデータをそれに結合することです。
$collection = Mage::getResourceModel('customer/customer_collection');
$collection->joinRight('awrma/entity', 'customer_id=entity_id', array('*'));
結果2
2回目の試行では、次のエラーが生成されます。
エラーメッセージ-------------------------------->同じID「XXX」のアイテム(Mage_Customer_Model_Customer)はすでに存在します」;
これは、販売注文グリッドで結果をフィルタリングするための同様の質問の後で、このように以前に機能していたという事実にもかかわらずです。