Cómo instalar un módulo en PrestaShop 8 sin romper la tienda
Aprende a instalar cualquier módulo en PrestaShop 8 paso a paso, qué comprobar antes de subirlo y cómo actuar si la tienda da un error.
Subir una función nueva a una tienda online debería llevar un par de minutos, pero un archivo incompatible o un fallo oculto pueden dejar la web entera en blanco. Para instalar un módulo de PrestaShop de forma limpia solo hay que seguir un orden concreto y saber exactamente dónde tocar si algo sale mal.
En nuestra joyería online trabajamos a diario con PrestaShop 8 y mantenemos más de una docena de desarrollos propios. Con los años hemos tenido algún susto con pantallas en blanco y módulos que colisionan entre sí, así que este es el protocolo que aplicamos siempre antes de tocar nada en producción.
Antes de subir el archivo: las comprobaciones que te ahorran disgustos
La mayoría de los fallos al añadir funciones no vienen del proceso de instalación, sino de descuidos previos. Antes de tocar el panel de administración, conviene revisar tres puntos básicos:
- Compatibilidad de versiones: PrestaShop 8 renovó partes internas respecto a la rama 1.7 y retiró funciones antiguas. Comprueba que el archivo especifique compatibilidad con tu versión exacta. Además, PrestaShop 8.0 y 8.1 funcionan con versiones de PHP que van desde la 7.2 hasta la 8.1. Si tu servidor tiene una versión diferente, el módulo puede fallar nada más cargarse.
- Copia de seguridad reciente: necesitas tener un respaldo reciente de la base de datos y de las carpetas principales, especialmente
/modules/,/override/,/themes/e/img/. No des por hecho que la copia automática de tu alojamiento funciona sin haber probado alguna vez a restaurarla. - El momento adecuado: evita siempre hacer pruebas en horas con mucho tráfico o en mitad de una campaña comercial fuerte. Aunque una instalación suela ser rápida, si surge un imprevisto necesitarás margen para resolverlo sin que afecte a tus clientes.
Si el cambio es grande, lo más seguro es probar primero en una tienda de pruebas. Nosotros usamos una copia exacta de la tienda montada en local para comprobar que todo encaja antes de tocar la web real.
Los pasos para subir un módulo de PrestaShop 8 desde el panel
Un módulo empaquetado para esta plataforma es un archivo comprimido en formato ZIP. Por dentro contiene una carpeta con el mismo nombre, un archivo PHP principal con su clase, ficheros de plantilla con extensión .tpl, hojas de estilo, scripts y traducciones.
El procedimiento estándar para subirlo no requiere usar programas externos:
- Entra en el panel de control de tu tienda.
- Dirígete a la sección Módulos y entra en Gestor de módulos.
- En la esquina superior derecha, pulsa sobre el botón que indica Subir un módulo.
- Arrastra el archivo ZIP a la ventana emergente o selecciónalo desde tu ordenador.
- Espera a que termine la subida. Cuando finalice el proceso, PrestaShop mostrará un mensaje confirmando la instalación y verás el botón Configurar.
Al pulsar en Configurar accederás a la pantalla propia de ajustes que tenga ese desarrollo. Si el módulo solo añade procesos internos y no necesita opciones manuales, puede que no muestre ese botón.
Nada más terminar, vete a Parámetros avanzados > Rendimiento y pulsa el botón Borrar caché. PrestaShop guarda en memoria las plantillas compiladas y las rutas; si no vacías esa memoria temporal, es posible que los cambios visuales o los textos traducidos no aparezcan de inmediato.
Diferencia entre desactivar, desinstalar y restablecer
Cuando trabajas con módulos de PrestaShop en el gestor, tienes varias opciones disponibles junto a cada elemento. Conviene tener claro qué hace cada una para no perder datos por error:
| Acción | Qué le ocurre a los archivos | Qué le ocurre a los datos y ajustes |
|---|---|---|
| Desactivar | Se mantienen intactos en el servidor. | Se conservan las tablas y la configuración, pero el código deja de ejecutarse en la tienda. |
| Desinstalar | Se mantienen en la carpeta del servidor. | Borra sus ajustes y elimina sus tablas en la base de datos (si el módulo está bien programado). |
| Restablecer | Se mantienen los archivos originales. | Equivale a desinstalar y volver a instalar: borra la configuración y la devuelve al estado inicial. |
Si necesitas comprobar si un problema técnico lo causa un módulo concreto, pulsa únicamente en desactivar. Así evitarás borrar la información que ya tenías configurada.
Por qué el módulo no aparece donde esperabas
Instalas el archivo, el panel dice que todo ha ido bien, pero vas a la tienda y no ves nada. Esto suele ocurrir por la forma en que el sistema ubica los elementos en pantalla.
PrestaShop utiliza hooks, que son puntos de anclaje donde los módulos se enganchan para mostrar contenido o ejecutar acciones. Por ejemplo, displayHome sirve para la portada, displayProductAdditionalInfo muestra bloques cerca del botón de compra en la ficha de producto, y displayFooter sitúa elementos en el pie de página. También hay enganches funcionales sin parte visual, como actionCartSave cuando cambia un carrito o actionValidateOrder cuando entra un pedido.
Si un elemento visual no aparece, revisa estos tres motivos habituales:
- La posición dentro del enganche: entra en Diseño > Posiciones. Busca el bloque correspondiente (por ejemplo,
displayShoppingCarten el carrito) y comprueba si tu módulo está en la lista. Desde ahí puedes cambiar el orden relativo arrastrándolo hacia arriba o hacia abajo. - Incompatibilidad con el tema: si tu tienda usa una plantilla modificada o hecha a medida, puede que el diseñador haya omitido ciertos enganches. Si la plantilla no incluye la llamada a un hook en su código, el módulo no se pintará en pantalla aunque esté correctamente instalado.
- Errores silenciados en producción: algo que aprendimos al desarrollar la tienda de pruebas de PluginPilot es que PrestaShop 8, cuando funciona en modo producción, oculta los fallos que se producen dentro de los hooks visuales. Si el código falla al generar su plantilla, el módulo simplemente desaparece sin avisar y la página sigue cargando el resto de elementos.
El peligro de los overrides
Para añadir funciones avanzadas, algunos desarrolladores recurren a los overrides. Un override es un archivo que sustituye o modifica una clase o un controlador del núcleo del sistema, y se copia dentro del directorio /override/ durante la instalación.
El problema aparece cuando dos módulos distintos intentan modificar el mismo método de la misma clase nativa. En nuestra tienda hemos tenido que lidiar con overrides compartidos en partes delicadas como la gestión del carrito o el despachador de URLs, y cuando colisionan no queda más remedio que fusionar el código a mano con mucho cuidado.
Además, PrestaShop solo copia estos archivos en el momento exacto en que instalas el módulo. Si tiempo después aplicas una actualización del archivo ZIP y el desarrollador ha cambiado el override, el sistema no lo sustituye de forma automática. Siempre que puedas elegir entre dos soluciones similares, opta por la que funcione a través de hooks nativos en lugar de modificaciones por override: su mantenimiento es más limpio.
Qué hacer si la tienda da error 500 o se queda en blanco
Si tras pulsar en instalar la pantalla se queda completamente vacía o el navegador devuelve un error 500, mantén la calma. Tu tienda no se ha borrado; simplemente un archivo ha interrumpido la ejecución de PHP.
Para recuperar el control, sigue estos pasos:
- Activa el modo depuración: si todavía puedes entrar al panel de administración, ve a Parámetros avanzados > Rendimiento y pon el Modo depuración en «Sí». Al recargar la página rota, en lugar de una pantalla en blanco verás el mensaje de error exacto con el archivo y la línea que han provocado el corte. También puedes consultar los registros del servidor en la carpeta
/var/logs. - Desactiva el módulo por FTP si el panel está bloqueado: si el fallo te impide entrar al propio panel de gestión, conéctate a tu servidor mediante FTP o el gestor de archivos de tu alojamiento. Entra en el directorio
/modules/y busca la carpeta del módulo que acabas de subir. Cámbiale el nombre (por ejemplo, añadiendo _desactivado al final). Al no encontrar la ruta original, PrestaShop dejará de cargarlo al instante y la tienda volverá a estar visible. - Limpia la caché del sistema: una vez recuperada la tienda o retirado el archivo conflictivo, borra de nuevo la caché desde el panel para asegurarte de que el índice de clases del sistema se recompone sin rastros del módulo fallido.
Lo que haríamos nosotros antes de empezar
Si tienes ahora mismo un archivo descargado en tu ordenador y te dispones a subirlo, haz esto en este orden: comprueba primero en la información del desarrollador que tu versión de PHP y de PrestaShop están soportadas. A continuación, accede a tu panel de alojamiento y descarga una copia completa de tu base de datos.
Con esa copia a buen recaudo y las claves de acceso a tu servidor FTP a mano por si hiciera falta renombrar la carpeta en /modules/, ya puedes subir el ZIP desde el gestor. Si sigues esos pasos, cualquier problema que surja se quedará en un susto sin consecuencias y tu catálogo seguirá funcionando sin cortes para tus clientes.