PrestaShop es un sistema de gestión de contenidos libre y de código abierto pensado para construir desde cero tiendas en línea de comercio electrónico. Enfocado para permitir crear tiendas en línea desde pequeñas empresas a grandes corporaciones.
En marzo de 2022 lanzaron la última versión estable de Prestashop, Prestashop 8, cambiando por completo muchas características y renovando el diseño en la mayoría de aspectos.
Muchos clientes de Prestashop hoy en día deciden actualizar su ecommerce a la última versión pero ven dificultades para poder realizar dicha actualización satisfactoriamente, así que aquí os traemos un artículo sobre cómo actualizarlo paso a paso mediante CLI (Línea de comandos).
Realizar un Snapshot del servidor virtual en cuestión
Antes de empezar la actualización de versión de Prestashop es muy importante realizar un Snapshot del servidor en cuestión, ya que si no hacemos un Snapshot podremos perder la información de toda nuestra web y no poder recuperarla.
Descarga de la versión
El primer paso es verificar la última versión en https://github.com/PrestaShop/PrestaShop/releases .
La descarga se realiza en la línea de comando, como se hace aquí con la versión 8.0.2:
wget -O prestashop-upgrade.zip https://github.com/PrestaShop/PrestaShop/releases/download/8.0.2/prestashop_8.0.2.zip
Extracción de archivos
Extrae los archivos de la carpeta con el comando "unzip" en la terminal de Ubuntu:
unzip prestashop-upgrade.zip && unzip prestashop.zip
Una vez que tengas las carpetas como "classes/", "modules/", "themes/",... podrás continuar con el siguiente paso.
Limpieza de archivos de ejemplo
Evita sobrescribir los recursos de producción (imágenes, conf ...) con los datos por defecto. Estas carpetas se pueden eliminar de la nueva versión:
img/
override/
Importante
Todos los demás archivos presentes en la nueva versión sobrescribirán los archivos existentes. Todos los cambios que haya realizado en el código fuente original se perderán (esto no es recomendable, nunca debe modificar los archivos del núcleo).
Además, deberás de cambiar el nombre de la carpeta "admin" para que coincida con el nombre de la carpeta admin de su tienda. Esto evitará una duplicación no deseada del contenido de administración.
Activar el modo de mantenimiento
Esto se puede hacer desde el panel de administración:
PrestaShop >= 1.7, en Parámetros de la tienda > Configuración > Pestaña Mantenimiento > Habilitar tienda
Desactivar la caché
Si has activado un sistema de caché (por ejemplo, Memcache) en la tienda asegúrate de desactivarlo en "Parámetros avanzados" > "Rendimiento". Podrás volver a activarlo una vez finalizado el proceso de actualización. También puedes eliminar las carpetas var/cache/prod y var/cache/dev.
Importante
Nota sobre la carpeta vendor: Las actualizaciones anteriores de PrestaShop 1.7 mostraron que pueden producirse conflictos al fusionar la nueva carpeta vendor/ con la antigua. Para evitar este problema, recomendamos eliminar esta carpeta en la tienda existente antes de copiar la nueva.
rm -rf vendor/
El siguiente paso es copiar el contenido de la nueva carpeta desde el terminal:
cp -R <ruta_a_la_nueva_carpeta>/* <ruta_a_la_actual_tienda>/
Ejemplo:
cp -R ~/Descargas/prestashop/* /var/www/html/
Actualización de la base de datos
Una vez copiados los archivos, la base de datos de la tienda está lista para ser actualizada.
Cuando estés listo, ejecuta el archivo upgrade/upgrade.php del módulo autoupgrade desde la CLI del servidor:
php modules/autoupgrade/upgrade/upgrade.php
Una vez ejecutado, se mostrará un registro XML. Los resultados se encuentran en el atributo result de la primera etiqueta <action>:
ok: si se han encontrado y ejecutado las actualizaciones
error: si algo ha ido mal
info: para las acciones siguientes, que muestra los detalles del proceso
Cuando el script de actualización se encuentre algunas actualizaciones para aplicar, las consultas SQL ejecutadas se listarán junto con su respectivo resultado.
¡<?xml version="1.0" encoding="UTF-8"?><action result="ok" id=""><action result="info" id="1.7.0.5"><!
<action result="info" id="1.7.0.5"><![CDATA[[OK] PHP 1.7.0.5 : /* PHP:ps_update_tabs(); */]]></action>
<action result="info" id="1.7.0.5"><![CDATA[[OK] SQL 1.7.0.5 : ALTER TABLE `ps_currency` MODIFY `name` varchar(64) NOT NULL]]></action>
<action result="info" id="1.7.1.0"><![CDATA[[OK] SQL 1.7.1.0 : SET SESSION sql_mode = '']]></action>
<action result="info" id="1.7.1.0"><![CDATA[[OK] SQL 1.7.1.0 : SET NAMES 'utf8']]></action>
Puedes comprobar que cada acción está marcada como "OK". Si no es así, se mostrarán detalles adicionales tras la solicitud, que pueden ayudarte a solucionar el problema y a volver a ejecutar la solicitud manualmente en la base de datos. En algunos casos, puede que necesites restaurar la copia de seguridad de la base de datos y empezar de nuevo.
También puede aparecer un código de error. Cada código está relacionado con un mensaje descrito aquí:
Error #27: La tienda está ejecutando una versión más reciente que el contenido proporcionado por la carpeta de instalación.
Error #28: La tienda ya está en la versión a la que intenta actualizar.
Error #29: No se ha podido encontrar la versión actual. Compruebe el archivo de parámetros de su base de datos y la conexión a la misma.
Error #31: No se puede encontrar el directorio de actualización en la ruta de instalación, ¿existe la carpeta install/upgrade/sql y no está vacía?
Error #32: No es necesario aplicar ninguna actualización.
Error #33: Error al cargar un archivo de actualización SQL. Compruebe los permisos de la carpeta install/upgrade/sql.
Error #40: La versión proporcionada en el archivo install/install_version.php no es válida.
Error #43: Error al actualizar el esquema de la base de datos usando doctrina.
Error #44: Error al actualizar las traducciones.
Error #45: Error al habilitar el tema.
Limpieza
Antes de continuar, es necesario limpiar algunas cosas.
- La carpeta de instalación, utilizada para ejecutar las actualizaciones de la base de datos, ya no es necesaria y puede eliminarse de forma segura.
- Al abrir su tienda (en el front office o back office) en el navegador, es posible que vea algunos problemas visuales. Esto puede deberse a que los activos antiguos todavía están en la caché. Recárgalos forzando la actualización de la página (pulsa ctrl+R en Windows / Linux o cmd+R en Mac OS) o borrando la caché de tu navegador.
Actualización de módulos
Sus archivos de módulos han sido actualizados durante la copia de archivos, sin embargo muchos de ellos pueden requerir cambios adicionales en la base de datos. Comprueba en la página de módulos del Back Office para ver si hay actualizaciones pendientes de ejecución.
Ves al panel de administración e inicie sesión. Observarás que la versión mostrada ha cambiado en la página de inicio de sesión. A continuación, en el menú, haz clic en la página del módulo para llegar a su catálogo.
Esperamos haberte ayudado con este tutorial 🙂. Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites, consúltanos!