Hace un tiempo tuve realizar labores de actualizar una tienda Prestashop, en este caso, tenía que actualizar una tienda Prestashop 1.5 a Prestashop 1.7

Dado que no encontré en un pos todo el proceso, apunté de forma esquemática los pasos realizados.

Creo que esta entrada puede ayudar a muchas personas que se encuentren en mi misma situación, por ello la publico, a pesar de que es algo escueta de explicaciones, o por lo menos, me hubiera gustado añadir imágenes…

Antencendentes

La tienda a actualizar era un Prestashop 1.5, usaba un tema gratuito y estaba corriendo con la versión de PHP 5.4, ni siquiera soportaba la 5.6.

El objetivo era dejar corriendo la última versión de Prestashop (1.7.x) para no perder las facturas, pedidos, productos y los clientes de la tienda.

Actualizar de Prestashop 1.5 a Prestashop 1.6

Lo primero de todo ha sido hacer una copia de seguridad de los ficheros y de la base de datos, la web estaba alojada en un de CPanel.

Revisar los plugins que había instalados para ver si hay alguna funcionalidad diferente a la habitual, apunté los datos de la configuración de redsys para introducirlos en el nuevo módulo a instalar.

El módulo 1 click upgrade fallaba a la hora de instalar la versión 1.6, por lo que se ha pasado de la versión 1.5 a la 1.6 actualizando Prestashop manualmente.

Cómo actualizar Prestashop manualmente

Para ello he descargado la versión de Prestashop 1.6.1.0 desde su repositorio de versiones y la he descomprido en mi ordenador.

Ahora, he ido a la copia de seguridad, he copiado la carpeta de las imágenes de la tienda (carpeta «img») y he sobreescrito la carpeta del Prestashop recién descargado.

Podría haber trasladado la carpeta de themes, mails y translation, pero en este caso no me ha sido necesario, el tema iba a ser otro, los correos iban a ser de una nueva plantilla y la web estaba en un único idioma.

También se ha trasladado el fichero .htaccess, aunque creo no hubiera sido necesario.

Por último, se copia el fichero de contiene la conexión de la base de datos, localizado en /config/settings.inc.php

Todo ello, el Prestashop descargado junto con los elementos pegados, lo he comprimido, subido al alojamiento y lo he descomprimido en la carpeta raiz public_html(el nombre de la carpeta raiz puede variar según el alojamiento).

El resumen de este proceso es tener en la versión 1.6 de Prestashop con todas las imágenes de la web antigua y con la conexión a base de datos configurada.

Acudir a la url nombredelaweb.com/install/upgrade/upgrade.php

Ojo con no ir a la ruta de nombredelaweb.com/install/ ya que se perderían todos los datos, se estaría instalando desde cero el Prestashop.

Me muestra un mensaje de que la web se ha actualizado correctamente, pero que algunos elementos han dado fallo, en este caso era problemas del idioma, la web tenia opción de multi idioma activo, pero no tenía ninguna traducción y la web final iba a estar tan solo en castellano.

Comprobar que entra en la administracion, todo OK, me permite navegar bien por ella y hacer la gestión completa de productos (crear, editar, listar y eliminar).

La parte pública daba error, pero no me preocupaba ya que quedaba de realizar otra actualización, seguramente era problema de tema, prestashop o de que aún corría la versión 5.4 de PHP.

Al haber dos cambios de versiones de prestashop (de 1.5 a 1.6 y de 1.6 a 1.7), tenía claro que el tema y si hubiera módulos de pago comprados, no iban a funcionar en la versión 1.7. Al igual que el módulo de redsys, cookies e incluso propios del Prestashop 1.5.

Lo importante era traspasar los datos de los productos y clientes.

Actualizar de Prestashop 1.6 a Prestashop 1.7

Desactivo la caché desde las opciones avanzadas.

Desde el alojamiento, subo PHP a la versión 5.6.

Actualizo el módulo 1 click upgrade, para tratar de no hacer otra actualización manual.

Reviso la documentación de Prestashop para localizar una versión que sea compatible con PHP 5.6.

Instalo a través del módulo 1 click upgrade la versión de Prestashop seleccionada en el paso anterior, todo ha funcionado correctamente.

En el servidor, modifico la versión de PHP a la recomendada con la versión de Prestashop instalada.

Antes de instalar un Prestashop comprueba la versión de PHP mínima que necesita.

Sucede algo pareceido para instalar un tema, revisa que sea compatible con el Prestashop a instalar.

Después de actualizar a Prestashop 1.7

El front de la página aparece correctamente, pero la administración fallaba, no dejaba entrar.

Revisando el error log del servidor y luego buscando en foros encuentro que este error de no poder entrar a la adminsitración se puede solucionar al borrar la carpeta de /var/cache/prod de forma manual, se hace y ya permite entrar a la adminsitración.

Una vez que ya podía acceder a la administración queda tan solo instalar el nuevo tema, instalar los métodos de pago correspondientes y los plugins de cookies y de RGPD.

Importante instalar el módulo ps_emailalerts o bien «Alertas por correo electrónico» que hace llegar al adminstrador los correos informando de las nuevas compras.

También se hizo limpieza de los módulos antiguos de las otras versiones de PS, siendo estos eliminados e instalando los nuevos actualizados.

Cambiar el idioma de la adminsitración de Prestashop

La versión instalada del Prestashop a través del módulo 1 click upgrade era inglesa, para modificar el idioma de la adminstración de Prestashop acudir a  International –> Translations –> Añadir / Actualizar un idioma.

En el correo de confirmación de compra no aparecen los artículos comprados

Realizando unas compras de prueba, en el correo que recibia el cliente de la web, no aparecia el listado de los artículos que habia comprado.

El problema era que en la carpeta de los correos en castellano /mails/es faltaban los ficheros «order_conf_cart_rules.tpl», «order_conf_cart_rules.txt» y «order_conf_product_list.tpl», «order_conf_product_list.txt».

Estos ficheros sin embargo si están en la carpeta de los correos en inglés, /mails/en, por lo que al copiarlos de la carpeta en inglés a la de español, se solventa el problema.

Información sacada de aqui.

Acceso denegado a los pedidos en la administración

Probando con el usuario que iba a entregar al administrador final de la tienda, la opción de pedidos  y las opciones de parámetros de la tienda y parámertos avanzados mostraban un mensaje de «acceso denegado».

La solución encontrada en esta web y que me ha funcionado ha sido ejecutar la siguiente SQL

INSERT into ps_access (id_profile, id_authorization_role)
SELECT 1, par.id_authorization_role 
FROM ps_authorization_role par
WHERE par.id_authorization_role NOT IN (
SELECT pa.id_authorization_role FROM ps_access pa
WHERE pa.id_profile = 1
)

Revisa que tus tablas empiecen por ps_, en este puede que tengas que adecuar los nombres ps_access y ps_authorization_role

Cómo depurar errores en Prestashop

Si aparecen pantallas en blanco, no se puede entrar en la adminsitración de la tienda o alguna funcionalidad falla, se debe obtener información para saber qué falla.

Para obtener información y depurar errores en Prestashop se pueden realizar las siguientes acciones:

Habilitar el modo depuración

Activar el modo depuración presentará en pantalla errores y advertencias sobre lo que sucede en nuestra tienda, se puede activar de dos formas.

En el fichero de configuración

Entra al administrador de archivos de tu hosting, o bien por FTP, y localiza el fichero /config/defines.inc.php

Localiza la siguiente línea.

define(‘_PS_MODE_DEV_’, false);

Se debe poner el valor «true».

define(‘_PS_MODE_DEV_’, true);

En la administración de Prestashop

En la administración de tu tienda, acude a Parámetros Avanzados > Rendimiento, aparecerá la opción para activar o desactivar el «modo debug».

Revisar el error log del servidor

Se debe revisar el error log de tu alojamiento, ahí aparecerán los errores que «rompen» tu web, algunos de los errores comentados anteriormente se han podido resolver gracias a la información obtenida del error log de php.

Elimina la caché manualmente

Hay ocasiones que la caché puede provocar algún fallo, eliminar los ficheros de la caché manualmente solventa muchos errores… Para ello accede a través de tu FTP a tu alojamiento y elimina todos los ficheros que existan en las siguientes carpetas:

  • /app/cache/dev/
  • /app/cache/prod/

Luego vuelve a tu página y recarga con Control + F5 (es una forma de borrar de la caché del navegador la página actual, es como si se visitara por primera vez)

Si usas mac, los comando para limpiar la caché de una página es CMD + SHIFT + R

Deshabilita módulos instalados

Puede darse el caso de que algún módulo recien instalado pueda «romper» la plataforma, no es algo habitual si se usan módulos comprados o de opiniones contratadas, pero podría pasar.

Entra en modo incógnito

La caché de Prestashop es muy puñetera y puede jugar malas pasadas, si estás depurando revisa los cambios aplicados con el modo incógnito de tu navegador.

Conclusión

Hacer dos cambios de versión de Prestashop ha sido toda una odisea, pasar de Prestashop 1.5 a Prestashop 1.6 se hizo de forma manual, mientras que el último cambio se hizo a través de plugin 1-click upgrade del propio Prestashop.

Se entrontraron varios problemas en la versión 1.7 pero gracias a la comunidad de usuarios se solventaron todos los errores, habiendo actualizado con éxito la plataforma.

¡Valora este artículo y ayúdame a mejorar la calidad del blog!
(Votos: 0 Promedio: 0)