Magento join EAV collection with Flat table
Joining tables in Magento when it comes to EAV with Flat table is quite complicated. Consider you want to join sales_flat_order table with customer EAV tables to get Customer’s firstname and lastname, it becomes difficult as customer’s name comes from customer_entity_varchar table.
Below code will join sales order flat table with customer EAV to get customer’s full name in the collection along with all the order details.
$coll = Mage::getModel('sales/order')->getCollection(); | |
$fn = Mage::getModel('eav/entity_attribute')->loadByCode('1', 'firstname'); | |
$ln = Mage::getModel('eav/entity_attribute')->loadByCode('1', 'lastname'); | |
$coll->getSelect() | |
->join(array('ce1' => 'customer_entity_varchar'), 'ce1.entity_id=main_table.customer_id', array('firstname' => 'value')) | |
->where('ce1.attribute_id='.$fn->getAttributeId()) | |
->join(array('ce2' => 'customer_entity_varchar'), 'ce2.entity_id=main_table.customer_id', array('lastname' => 'value')) | |
->where('ce2.attribute_id='.$ln->getAttributeId()) | |
->columns(new Zend_Db_Expr("CONCAT(`ce1`.`value`, ' ',`ce2`.`value`) AS fullname")); | |
print_r($coll->getData()); |
6 Comments
Leave a comment
Welcome to my Blog
Certifications
Honor
Recognition
Contributions
Categories
- Apache (2)
- ChatGPT (1)
- Domain name (2)
- eCommerce (2)
- htaccess (1)
- Humor (3)
- Instagram API (1)
- jQuery (4)
- JSON (1)
- Linux (10)
- Magento (142)
- Magento admin (58)
- Magento Certification (5)
- Magento error (13)
- Magento frontend (68)
- Magento Imagine (2)
- Magento Interview (5)
- Magento Master (2)
- Magento2 (10)
- Mobile (1)
- MySQL (7)
- OpenAI (1)
- OroCRM (2)
- Performance (2)
- PHP (8)
- Prototype JS (3)
- Security (4)
- Wordpress (3)
- XML (2)
Tag Cloud
500 internal server error admin answers attribute bug category checkbox checkout cookie customer difference domain name EAV error event extension interview invoice jquery linux magento magento2 magento admin magento error magento interview questions magento orm mysql observer order pinterest product products questions redirect register remove script session simplexml to array state status study guide tax url wordpress
Great! I was searching something like this since last 2 hours.
Thanks!
Thanks! Thanks! Thanks! Thanks!
great post there Kalpesh!
I spend the whole day yesterday trying to compose a wishlist collection, and join the customer and product eav elements to it. it was driving me crazy
I’m just so glad you posted such a useful solution.
Many many thanks Kalpesh
btw, I have shared your page with the G+ groups, can I have you permission to reshare the contents of your post onto my own blog? it will help me tremendously 🙂
Yes Matt, you can reshare with a backlink to this post.
Awesome.. Thank you so much! 🙂
i am new as a Magento developer. your post is absolutely great to learn and understand its awesome for the project issue.