En algunas versiones de Prestashop 1.6 cuando un usuario intenta realizar un pedido como invitado, aunque meta su DNI, le aparece este mensaje «El número de identificación es incorrecto o ya ha sido utilizado». En este post os explicamos cómo soluconarlo en vuestra tienda online.
¿Cuándo podéis tener este problema?
Cuando queréis que se pida el DNI de forma obligatoria y queréis que se puedan realizar pedidos como invitado. Por tanto:
– En Localización > Países, en la configuración de vuestro país «¿Necesita el número de identificación fiscal?» a SÍ, haciendo que se solicite el DNI de forma obligatoria.
– Tenéis activado en Preferencias > Pedidos «Activar el pedido express para cuentas de invitado» a SÍ.
¿Dónde está el problema?
Generalmente, cuando un usuario se registra e introduce su DNI no aparece ningún error, pero cuando pretende hacer el pedido como invitado, aunque introduzca un DNI y correcto, se muestra este error:
El número de identificación es incorrecto o ya ha sido utilizado
¿Cómo solucionarlo?
1.- Vamos a la carpeta «controllers» y copiamos el archivo AuthController.php
2.- Pegamos el archivo en la carpeta «override/controllers»
3.- Editamos el archivo en esta última carpeta
Buscamos la línea
if
($country->need_identification_number &&
(!Tools::getValue(‘dni’) ||
!Validate::isDniLite(Tools::getValue(‘dni’))))
y la sustituimos por esta otra:
//if
($country->need_identification_number &&
(!Tools::getValue(‘dni’) ||
!Validate::isDniLite(Tools::getValue(‘dni’))))
if (!Validate::isDniLite(Tools::getValue(‘dni’)))
s en nuestro archivo, sustituiremos todas las apariciones de «dni_invoice» por «dni».
4.- Como queremos que el DNI sea obligatorio, nos aseguraremos de que están bien configurados estos parámetros:
a) En Clientes > Direcciones, hay un botón, al final de la sección, en el que pone «Establezca los campos obligatorios para esta sección». Haremos clic y seleccionaremos el campo «dni». Guardaremos cambios.
b) En Localización > Países, nos iremos al país que estemos configurando y en «Formato de dirección» nos aseguraremos de que, en la caja de texto, esté el campo dni. Si no es así, lo incluiremos.
5.- Iremos a Parámetros avanzados > Rendimiento y en «Caché de plantillas» pondremos «Forzar compilación». Guardaremos cambios.
Después, haremos clic sobre el botón «Vaciar el caché» de la esquina superior derecha de esa misma sección.
6.- Una vez hecho esto, podemos volver a poner el valor de Caché de plantillas que tuviésemos puesto antes (generalmente «Recompilar las plantillas cuando los archivos sean modificados»).
Y esto es todo, vuestro problema debería estar solucionado. Si no es así, dependiendo de la versión de Prestashop, puede que tengáis que hacer otro cambio en vuestra plantilla:
Y esto es todo, vuestro problema debería estar solucionado. Si no es así, dependiendo de la versión de Prestashop, puede que tengáis que hacer otro cambio en vuestra plantilla:
1.- Tendréis que hacer una copia de este archivo
templates/nombre_de_vuestra_plantilla/authentication.tpl
por si algo va mal, poder restaurarlo.
2.- Editar ese archivo (el original)
buscaremos estas líneas
{l s=’DNI / NIF / NIE’}
y las sustituiremos por estas otras:
{l s=’DNI / NIF / NIE’}
2.- Hayamos encontrado o no esas líneas en nuestro archivo, sustituiremos todas las apariciones de «dni_invoice» por «dni».
Deja tu comentario