PrestaShop 1.7.x.x no deja que el cliente pase del formulario de dirección. El cliente le da siguiente y la página hace nada más que refrescarse. Había actualizado PrestaShop y el carrito dejó de funcionar. Los clientes pueden iniciar la creación de la cuenta, pero una vez que hacen clic para guardar la dirección, la página se actualiza y no carga la página de pago.
Esto se debe a que al actualizar, no se agregó la siguiente fila en la base de datos. Hay 2 cosas que puedes probar para arreglar esto.
Siga los pasos para solucionar el problema.
- Averigua el nombre de tu base de datos
- Obtén acceso a SSH o PHPMYADMIN para editar tu base de datos
- Ejecute la consulta a continuación y reemplaza
PREFIX_hook
conDBNAME_hook
; Tu base de datos tendrá un nombre y un prefijo distinto al mío, por lo tanto, en mi caso, si mi base de datos se llama prstadb mi consulta empezaría conINSERT INTO prstadb_hook (id_hook, name, title, etc )
– estamos editando la columnahook
en la base de datos.
INSERT INTO PREFIX_hook
(id_hook
, name
, title
, description
, active
, position
) VALUES (NULL, ‘actionValidateCustomerAddressForm’, ‘Customer address form validation’, ‘This hook is called when a customer submits its address form’, ‘1’, ‘1’);
Es posible que tu base de datos te responda indicando que los valores ya existen.
No obstante, antes de seguir al siguiente paso, borra tu caché de PrestaShop y comprueba si el problema persiste.
En el caso de que siga ocurriendo, prueba la siguiente solución.
Esencialmente, cada país tiene un conjunto de campos que son obligatorios, recuerdo haber leido, que hubo un error general para ciertos países después de que prestashop pasase a la version 1.7.x.x , que cambió el formato en la base de datos.
Sigue los pasos para corregir la base de datos.
- Dentro de su base de datos, localiza las tablas
XXX_address
yXXX_address_format
- Dentro de la tabla
XXX_address
, puedes encontrar la identificación del país que te está dando problemas. Yo creé un usuario con una dirección de España, y veo que se guardó con ID 6 como se muestra a continuación. Tu ID podría ser distinto, por lo que crea un usuario y fíjate bien.
Ve a la tabla XXX_address_format
– aquí se guardan los formatos de dirección para cada país. Nosotros hemos averiguado que en mi base de datos, España es ID 6. Localiza la entrada con ID 6 y edítala.
Lo que hice fue ver el ID de un país que funcionaba sin problemas, como Reino Unido, y compare el formato entre los dos países
Formato Correcto (PAÍS: Reino Unido) | Formato Incorrecto (PAÍS: España) | Formato Corregido (PAÍS: España) |
firstname lastname company vat_number address1 address2 city postcode Country:name phone phone_mobile | firstname lastname company vat_number address1 address2 postcode city Country:name phone | firstname lastname company vat_number address1 address2 city postcode Country:name phone phone_mobile dni |
He resaltado la diferencia entre los dos países arriba. En España, había un espacio en blanco de bajo de phone
en vez de tener phone_mobile
. El apartado de postcode city
está en una línea en vez de estar debajo del otro. Copie el formato correcto, añadí dni
al final ya que en Espana se requiere, lo pegue y le di a guardar.
También asegúrense de que lo que vayan a cambiar en la base de datos, sea igual que lo que este bajo Internacional>Lugares>Países
¡Esto es lo que tengo por ahora, si la solución les ha funcionado, apoyen la página dando a un like, o sigan nos en alguna de las redes sociales, dejen un comentario, etc – que se han ahorrado tener que contratar un desarrollador!