Magento: como añadir nuevos campos en el registro

Si queremos añadir nuevos campos al formulario de registro de usuario, Magento no nos lo va a poner fácil. En el repositorio de extensiones si que disponemos de aplicaciones de pago donde crear múltiples campos para agregarlos al formulario pero, en mi caso, que sòlo hablamos de un par de campos fijos lo he conseguido de otra manera.
A continuación los archivos a tocar:
/app/design/frontend/template/default/customer/form/register.phtml
/app/code/local/Mage/Customer/Model/entity/Setup.php copiado de /app/code/core/Mage/Customer/Model/entity/Setup.php.
/app/code/local/Mage/Customer/etc/config.xml copiado de /app/code/core/Mage/Customer/etc/config.xml.
Manos a la obra. En mi caso he añadido 2 campos no obligatorios y no editables posteriormente por el usuario al formulario de registro. Son el campo empresa y actividad principal. Editaremos el register.phtml y colocaremos los 2 campos de texto:
Estos nuevos campos no están registrados en la bbdd. Para hecerlo lo más práctico es añadir el siguiente código al principio de la vista y acceder al formulario una sólo vez. De esta manera habremos creado los 2 nuevos campos.
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttribute('customer', 'empresa', array(
'label' => 'Empresa',
'type' => 'varchar',
'input' => 'text',
'visible' => true,
'required' => false,
'position' => 1,
));
$setup->addAttribute('customer', 'actividad', array(
'label' => 'Actividad',
'type' => 'varchar',
'input' => 'text',
'visible' => true,
'required' => false,
'position' => 2,
));
Seguidamente en app/code/local/Mage/Customer/Model/Entity/Setup.php dentro de la función getDefaultEntities añadimos los campos debajo del campo email por ejemplo:
'actividad' => array(
'required' => false,
'visible' => true,
'label' => 'actividad',
'sort_order' => 61,
),
'empresa' => array(
'required' => false,
'visible' => true,
'label' => 'empresa',
'sort_order' => 62,
),
Seguidamente en /app/code/local/Mage/Customer/etc/config.xml editamos el tag customer account y añadimos los nuevos campos:
.... 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
De esta manera habremos conseguido añadir estos nuevos campos al formulario de registro. Éstos, en nuestro caso, sólo seran vistos y editables, una vez guardados, dentro del admin. Si quisieramos que el propio usuario pudiera cambiarlos tendrÃamos que editar la vista edit.phtml del usuario.
Jose Nieto – Diseñador Web
luis:
Jul 22, 11 a las 4:32Esta ruta no la tengo: /app/code/local/Mage/Customer
espero tu respuesta gracias
admin:
Jul 30, 11 a las 15:46Hola Luis, ese directorio lo tienes que crear tu para indicar a Magento que has modificado el codigo original
luis:
Nov 30, 11 a las 2:38Gracias. Lo voy a probar. Saludos