How to add custom fields to Customer Registration and Account page in magento

經過測試,一下的代碼在magento CE1.4 1.5 1.6 均好使

Magento Provides the default customer registration form with very few fields like name,email,pwd etc. But in realtime we need to get more details from the customer during registration. In order to achieve this we may have to create custom module that extends the magento customer module.

Step 1: We Start with Our module activation file first it just specifies the module name its location and Active Status. This file must be placed in app/etc/modules/ directory asapp/etc/modules/Mydons_Customer.xml


Step 2: Next we need to create our config.xml file. Here we specify the model class name of our module. Then in the global tag we specify our custom field for our customer. Here iam creating a custom field called mobile.
Our config.xml should be placed in the directoryapp/code/local/Mydons/Customer/etc/config.xml


Under the resources tag I have added the customer setup class name. The only model class available in this module is Mydons_Customer_Model_Entity_Setup. This class is a subclass ofMage_Customer_Model_Entity_Setup class.

Step 3: Now We need to create a Model Class we specified in the Previous step. This class contains only a single method called getDefaultEntities. You can copy the getDefaultEntities Method from the Base class Mage_Customer_Model_Entity_Setup and paste it in our model class Mydons_Customer_Model_Entity_Setup. This File must reside in our Model directoryapp/code/local/Mydons/Customer/Model/Entity/Setup.php

Step 4: We are going to add our custom field mobile in the customer array of the getDefaultEntities Method as shown below


Step 5: In Our Final Step we need to create our setup file which is a install script in the directoryapp/code/local/Mydons_Customer/sql/customerattribute_setup/mysql4-install-0.1.0.php


Here in the first part i have added the customer attribute to EAV table with attribute Properties. For Magento version 1.3 this part alone is enough to make the custom field save to the database. However for latest versions like Magento 1.4 and 1.5 we need an additional step to save in Customer Attribute table. First we get the Eav attribute using its attribute code and then we need to Set in which forms the custom field is going to be used.
After this Step we can add our custom field in the register and account edit template files. The custom field will now be saved to the database.



發佈了165 篇原創文章 · 獲贊 14 · 訪問量 78萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章