>Import Customers’ Statistic Data From CSV to Magento Backend

Import Customers’ Statistic Data From CSV to Magento Backend

Hi, my name is Gon. Today, I would like to share with you guys an exciting task relating to importing data from CVS to Magento admin. My work is to add 4 customer items, load them from .xls file and show them in 4 fields in the backend.


I have been fixing numerous sites recently, so I thought I’d share.

1. Even following the case “don’t have the module” unfortunately, my code wasn’t active. And I fixed it:

 $setup = Mage::getModel('customer/entity_setup', 'resourcename');  
 $setup->addAttribute('customer', 'school', array(  
   'type' => 'int',  
   'input' => 'select',  
   'label' => 'School',  
   'global' => 1,  
   'visible' => 1,  
   'required' => 0,  
   'user_defined' => 1,  
   'default' => '0',  
   'visible_on_front' => 1,  
     'source' => 'profile/entity_school',  
 if (version_compare(Mage::getVersion(), '1.6.0', '<='))  
    $customer = Mage::getModel('customer/customer');  
    $attrSetId = $customer->getResource()->getEntityType()->getDefaultAttributeSetId();  
    $setup->addAttributeToSet('customer', $attrSetId, 'General', 'school');  
 if (version_compare(Mage::getVersion(), '1.4.2', '>='))  
   ->getAttribute('customer', 'school')  
   ->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register'))  

I pasted the code in PHP file, uploaded to hosting and ran it. My new attribute was saved in the table ‘eav_attribute.’ Replaced by my values and I get in the backend.


2. Showing it in tab Personal Information

I had to edit a phtml file to show it, but I didn’t know what it is. I enabled the backend template hint by SQL query in phpmyadmin.

 INSERT INTO `core_config_data` (`scope`, `scope_id`, `path`, `value`)  
     VALUES ('websites', '0', 'dev/debug/template_hints', '1');  

My new attributes is customer_id, first_ultracast_orders, last_ultracast_order, ultracast_grand_total.

I can show it by call function $this->getCustomer()->getData(‘first_ultracart_order’); or this->getCustomer()->getFirst_ultracast_order();.
Note: you can be in trouble if your attribute names contain uppercase characters.

3. Editing customer’s data

I used this function to load customers data by email.

 function getCustomerByEmail($email) {   

I added new customer values by this function.

 function update($attribute_id,$value) {       

Note: Customers’ personal information have to be loaded before setting data. If my attribute is ‘first_ultracart_order’ I can set with function setFirst_ultracart_order($value);

4. Loading from CSV I and update my customer’s data.


We welcome your queries and comments on our products and services.