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.
Más posts relacionados
Involucrado en ecommerce desde 2010. Freelance especializado en tiendas online Magento y Shopify. Desde consultoría y programación hasta posicionamiento en buscadores junto a CRO.
Mi experiencia y pasión por el desarrollo y marketing online me hacen una fuente confiable para las empresas que buscan optimizar sus tiendas en línea y alcanzar sus objetivos.
Esta ruta no la tengo: /app/code/local/Mage/Customer
espero tu respuesta gracias
Hola Luis, ese directorio lo tienes que crear tu para indicar a Magento que has modificado el codigo original
Gracias. Lo voy a probar. Saludos
hago lo que me indicaron en las instrucciones pero no me guarda el campo en la base. que puedo estar haciendo mal, tengo la version 1.7.0.2
Yo estoy intentando agregar dos campos, en mi caso el checkout de un carrito de compras, necesito que los clientes pongan dos nombres de personas autorizadas para recibir la mercancía… lo intente con este proceso, pero no funciono ¿será por que intento que sean campos obligatorios?
Hola que tal, no la tengo muy claro pero ya hice el campo que necesito en el checkout de mi tienda, debo entrar y crear también el campo en la base de datos? no me queda muy claro el tema, gracias por la ayuda
Hola, segui el tutorial, pero no me guarda los datos en la base de datos, alguna idea?