🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Guía paso a paso: Crear un módulo básico en PrestaShop

Actualizado el 1 de diciembre de 2025

Has decidido personalizar tu tienda PrestaShop y quieres empezar por lo más básico: crear tu propio módulo. No te preocupes, no necesitas ser un desarrollador senior para lograrlo. En esta guía paso a paso, te explicaré cómo crear un módulo básico en PrestaShop desde cero, con un enfoque didáctico y práctico.

Este tutorial módulo PrestaShop está diseñado para que cualquier persona, incluso con poca experiencia en programación, pueda seguir los pasos y ver su primer módulo funcionando. Al final, tendrás las bases para entender el desarrollo módulo PrestaShop y ampliar tus conocimientos.

Vamos a crear un módulo simple que muestre un mensaje de bienvenida personalizado en la parte frontal de tu tienda. Esto te servirá como base para proyectos más complejos.


Requisitos previos antes de empezar

Antes de lanzarnos a escribir código, asegúrate de tener lo siguiente listo:

  • Un servidor con PrestaShop instalado. Puede ser local (XAMPP, WAMP, MAMP) o en un hosting real.
  • Acceso al panel de administración de tu tienda PrestaShop.
  • Un editor de texto plano. Recomiendo Visual Studio Code, Sublime Text o incluso el Bloc de notas.
  • Conocimientos básicos de PHP y HTML. No necesitas ser experto, pero entender la sintaxis te ayudará.

[INFO] Si tu hosting utiliza Syspanel (anteriormente conocido como HestiaCP), recuerda que el acceso al panel de control se realiza a través del puerto 2106 (ejemplo: tudominio.com:2106). Allí podrás gestionar archivos, bases de datos y dominios.


Paso 1: Entender la estructura de un módulo en PrestaShop

PrestaShop tiene una arquitectura de módulos muy organizada. Cada módulo es una carpeta que contiene archivos específicos. Lo mínimo indispensable es:

  • Una carpeta con el nombre del módulo (sin espacios, en minúsculas y con guiones bajos si es necesario).
  • Un archivo principal PHP con el mismo nombre de la carpeta.
  • Un archivo logo.png (opcional pero recomendado, de 32x32 píxeles).
  • Archivos de configuración como config.xml o index.php para proteger la carpeta.

Para nuestro ejemplo, llamaremos al módulo mimodulobienvenida. Así que crearemos una carpeta con ese nombre.


Paso 2: Crear la carpeta y el archivo principal del módulo

Accede a la carpeta modules de tu instalación de PrestaShop (normalmente en la raíz: /modules). Allí crea una nueva carpeta llamada mimodulobienvenida.

Dentro de esa carpeta, crea un archivo llamado mimodulobienvenida.php. Este será el corazón de nuestro módulo.

Abre el archivo con tu editor y escribe la siguiente estructura básica:

<?php
if (!defined('_PS_VERSION_')) {
    exit;
}

class Mimodulobienvenida extends Module
{
    public function __construct()
    {
        $this->name = 'mimodulobienvenida';
        $this->tab = 'front_office_features';
        $this->version = '1.0.0';
        $this->author = 'Tu Nombre';
        $this->need_instance = 0;
        $this->ps_versions_compliancy = [
            'min' => '1.7',
            'max' => _PS_VERSION_
        ];
        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('Módulo de Bienvenida');
        $this->description = $this->l('Muestra un mensaje de bienvenida personalizado en la tienda.');
        $this->confirmUninstall = $this->l('¿Estás seguro de que deseas desinstalar este módulo?');
    }
}

Explicación rápida:

  • if (!defined('_PS_VERSION_')) evita que el archivo se ejecute directamente.
  • La clase Mimodulobienvenida extiende Module, la clase base de todos los módulos.
  • En el constructor definimos propiedades como el nombre, versión, autor y compatibilidad con versiones de PrestaShop.

[TIP] El nombre de la clase debe coincidir con el nombre del archivo y la carpeta, pero en CamelCase (sin guiones). Por ejemplo, para mimodulobienvenida, la clase es Mimodulobienvenida.


Paso 3: Agregar los métodos de instalación y desinstalación

Para que el módulo funcione correctamente, debemos implementar los métodos install() y uninstall(). Estos se ejecutan cuando activas o desactivas el módulo desde el administrador.

Agrega estas funciones dentro de la clase, después del constructor:

public function install()
{
    return parent::install() &&
        $this->registerHook('displayHome');
}

public function uninstall()
{
    return parent::uninstall();
}

¿Qué hacen?

  • install(): Llama al método padre y además registra el hook displayHome. Esto significa que nuestro módulo se ejecutará en la página de inicio.
  • uninstall(): Simplemente llama al método padre para limpiar la instalación.

[WARNING] Siempre usa parent::install() y parent::uninstall() para no romper la funcionalidad base de PrestaShop.


Paso 4: Crear el método que se ejecutará en el hook

Ahora necesitamos que el módulo haga algo cuando se active el hook displayHome. Para ello, creamos un método llamado hookDisplayHome (nota: el nombre sigue la convención hook + nombre del hook en CamelCase).

Dentro de la clase, agrega:

public function hookDisplayHome($params)
{
    $this->context->smarty->assign([
        'mensaje_bienvenida' => '¡Bienvenido a nuestra tienda! Disfruta de tus compras.',
    ]);

    return $this->display(__FILE__, 'views/templates/hook/bienvenida.tpl');
}

Explicación:

  • Usamos $this->context->smarty->assign() para pasar variables a la plantilla.
  • La variable mensaje_bienvenida contiene el texto que queremos mostrar.
  • Finalmente, llamamos a $this->display() para renderizar la plantilla que crearemos a continuación.

Paso 5: Crear la plantilla (archivo .tpl)

PrestaShop usa Smarty como motor de plantillas. Necesitamos crear un archivo .tpl que contendrá el HTML que se mostrará.

Dentro de la carpeta mimodulobienvenida, crea la siguiente estructura de carpetas:

mimodulobienvenida/
  views/
    templates/
      hook/
        bienvenida.tpl

Ahora, abre el archivo bienvenida.tpl y escribe:

<div class="alert alert-info">
    <p>{$mensaje_bienvenida}</p>
</div>

[INFO] La variable {$mensaje_bienvenida} se reemplazará con el texto que definimos en PHP. Puedes usar HTML y CSS para darle estilo.


Paso 6: Subir e instalar el módulo en PrestaShop

Una vez que tengas todos los archivos listos, es hora de ponerlo a prueba.

  1. Sube la carpeta mimodulobienvenida a la carpeta /modules de tu servidor. Puedes usar FTP, el administrador de archivos de Syspanel (puerto 2106) o cualquier método que prefieras.
  2. Ve al panel de administración de PrestaShop (normalmente tudominio.com/adminXXXX).
  3. Navega a Módulos -> Gestor de módulos.
  4. Busca tu módulo en la lista (usa el filtro o búscalo por nombre). Debería aparecer como "Módulo de Bienvenida".
  5. Haz clic en Instalar. Si todo está correcto, verás un mensaje de éxito.

[TIP] Si no ves el módulo, verifica que el nombre de la carpeta y el archivo PHP coincidan exactamente, y que no haya errores de sintaxis en el código.


Paso 7: Verificar el resultado en la tienda

Una vez instalado, visita la página de inicio de tu tienda. Deberías ver un mensaje de bienvenida en la parte superior, dentro de un recuadro azul (estilo alerta de Bootstrap).

Si no aparece, revisa lo siguiente:

  • ¿El hook displayHome está disponible en tu tema? Algunos temas personalizados pueden no incluirlo.
  • ¿El módulo está activo? Ve a la lista de módulos y asegúrate de que esté habilitado.
  • ¿Hay errores en los logs de PrestaShop? Puedes revisarlos en Parámetros avanzados -> Logs.

Personalización y próximos pasos

Ahora que tienes un módulo funcional, puedes experimentar:

  • Cambiar el hook: Prueba con displayTop, displayFooter o displayLeftColumn. Solo necesitas modificar el registerHook en install() y crear el método correspondiente.
  • Agregar configuración: Implementa un formulario en el back office para que el administrador pueda cambiar el mensaje de bienvenida.
  • Usar CSS/JS: Puedes agregar archivos de estilo y scripts usando los métodos registerStylesheet() y registerJavascript().

[WARNING] Siempre haz una copia de seguridad de tu tienda antes de instalar módulos en producción. Un error en el código puede dejar tu sitio inaccesible.


Preguntas frecuentes (FAQ)

¿Puedo crear un módulo sin saber PHP?

Aunque es posible siguiendo tutoriales, entender PHP te ayudará a personalizar y solucionar problemas. Recomiendo aprender lo básico.

¿Por qué mi módulo no aparece en el panel de administración?

Causas comunes: nombre de carpeta incorrecto, error de sintaxis en PHP, o falta de permisos de lectura en los archivos.

¿Cómo desinstalo el módulo?

En el panel de administración, ve a la lista de módulos, busca el tuyo y haz clic en "Desinstalar". Luego puedes eliminar la carpeta del servidor.

¿Qué es un hook en PrestaShop?

Es un punto de anclaje en el código donde los módulos pueden "engancharse" para mostrar contenido o ejecutar acciones. Hay hooks en todo el front y back office.

¿Necesito usar Syspanel para gestionar módulos?

No es obligatorio, pero si tu hosting usa Syspanel (puerto 2106), te facilitará la subida de archivos y la gestión de bases de datos. Es una herramienta muy útil.


Conclusión

Has completado tu primer desarrollo módulo PrestaShop. Ahora sabes cómo crear un módulo básico, instalarlo y hacer que muestre contenido en la tienda. Este es el punto de partida para crear funcionalidades más complejas, como integraciones con APIs, sistemas de pago o personalizaciones avanzadas.

Recuerda que la práctica es clave. Experimenta con diferentes hooks, agrega configuración y no temas cometer errores; cada error es una oportunidad para aprender.

Si este tutorial módulo PrestaShop te ha sido útil, compártelo con otros comerciantes que quieran dar sus primeros pasos en la personalización de sus tiendas. ¡El límite es tu imaginación!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel