Jump to content

Campo nuevo en el alta de clientes


Softdesire
 Share

Recommended Posts

Muy buenos días,

 

He estado buscando en el foro y no he encontrado ninguna incidencia parecida o solucionada, así que me dedico a detallarla por si alguien nos puede echar una mano.

 

Para ubicarnos, hemos creado una página con Prestashop en su última versión 1.6, con un plantilla personalizada. Prestashop no está nada enfocado a los clientes como empresa, o por lo menos eso nos parece, así que hemos añadido (modificado) dos campos a la hora de registrarse, tal y como aparece en la foto que adjunto. El campo razón social es realmente el de "Company/Empresa" y el de "Número de Identificación/DNI" lo hemos cambiado por CIF; estos dos campos aparecen también ahora en "Sus datos personales" (identity.tpl). Copiamos las dos nuevas variables del código fuente del apartado "Añadir nueva dirección", en dónde ya no aparecen estas dos, es decir de adress.tpl a autentication.tpl

 

Ahora llega el problema: La Razón Social se guarda sin problemas pero el Número de identificación no hay manera de hacer que se guarde. Agradecería vuestros comentarios y ayudas.

 

Un saludo y gracias de antemano.

post-412267-0-13656100-1409129390_thumb.png

Edited by Softdesire (see edit history)

Share this post


Link to post
Share on other sites

En la imagen que adjuntas no aparece nada raro...vamos que ni sale el error que os da con el CIF y por lo tanto poco se puede hacer. 

Siguiendo tu comentario se me ocurre que simplemente halláis cambiado el texto del campo y no la validación, por lo que dará un error al no ser válido el CIF. 

Aporta más datos para poder decir algo más concreto porque sino va a ser muy complicado. 

  • Like 1

Share this post


Link to post
Share on other sites

Mucha gracias jesa por tu respuesta.

 

Adjunto mando un pantallazo de los cambios que realizamos en "authentication.tpl". El problema es que no da ningún error, el proceso de registro sigue para adelante, y guarda también el campo de "Razón Social", el cual se muestra en "Sus datos personales", donde copiamos el mismo código. El que no se muestra es el de "Número de identificación"

 

Dejo adjunto también el apartado de Datos personales, en donde aparece la "Razón social" pero no el "número de identificación". *He quitado los campos de nombre, apellido y dirección de correo electrónico por razones obvias.

 

 

Gracias y perdón si me explicar o detallar el problema.

post-412267-0-57517600-1409130965_thumb.png

post-412267-0-65859300-1409131272_thumb.png

Share this post


Link to post
Share on other sites

Ok, creo que ya se lo que os está ocurriendo. El número de identificación fiscal en realidad va unido a la dirección para permitir que se pueda cambiar según la dirección de envío. Al crear un cliente con el formato rápido, no estás introduciendo una dirección postal y por lo tanto no te está guardando nada. 

 

Lo primero que haría sería comprobar en la bbdd si se están guardando direcciones vacías solamente con el CIF y la razón social. De todas formas, si solamente vais a requerir un CIF y no contempláis que pueda cambiar, yo casi que modificaría la bbdd para añadir estos campos a la tabla del cliente y no generar direcciones vacías en la tabla de direcciones. 

  • Like 1

Share this post


Link to post
Share on other sites

Efectivamente jesa, 

 

He creado un nuevo campo con el nombre "cif" en la base de datos y lo hemos añadido en todos los pasos correspondientes: authentication.tpl, authController.php, y Customer.php

 

Para la base de datos:

ALTER TABLE `ps_customer` 
ADD `cif` VARCHAR( 100 )

 

Para authentication.tpl

<div class="form-group">
<label for="cif">{l s='Número de identificación'}</label>
 <input type="text" class="form-control" name="cif" id="cif" value="{if isset($smarty.post.cif)}{$smarty.post.cif}{/if}" />
<span class="form_info">{l s='NIF / CIF / EORI'}</span>
 </div>
 

En authcontroller.php lo hemos copiado tal y como están las variables de lastname y firstname.

 

En Customer.php

public $cif;      y

'cif' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),

 

 

Más o menos eso ha sido todo y funciona perfectamente. 

Gracias por vuestra ayuda.

Edited by Softdesire (see edit history)

Share this post


Link to post
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More