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