prestashop4

Cómo crear un módulo de Prestashop (1/X)

1 Star2 Stars3 Stars4 Stars5 Stars6 Stars7 Stars8 Stars9 Stars10 Stars (4 votes, average: 9,75 out of 10)
Loading ... Loading ...

Introducción

Prestashop es un proyecto Open source de ecommerce bastante reciente pero que apunta alto, cómo bien demuestra el premio con el que ha sido galardonado recientemente , el Open-Source Award 2010.

Es una solución muy completa y fácil de instalar y configurar…..pero, ¿cómo ampliar sus funcionalidades?, mediante su potente modularidad, ya, pero….¿cómo creo un módulo, por donde empiezo?

La documentación al respecto es más bien escasa, y ahí es dónde entra éste post. Antes de ponernos manos a la obra, dejar claro que se dan por hecho ciertos conocimientos necesarios para el desarrollo del módulo, cómo son MySql,Php y el motor de templates Smarty.

Prestashop se basa en el modelo MVC(modelo vista controlador) para gestionar la información.
Modelo->son todos los objetos que extienden la clase base “ObjectModel”, que define las funciones y comportamiento estándar para gestionar las tablas de prestashop, el CRUD(create,read,update and delete) y la base para el soporte multilenguaje.
Vista->Implementada mediante las plantillas de Smarty, que se encargan de gestionar la presentación de datos en pantalla.
Controlador->Son las clases que se encargan de la gestion del flujo de datos,recuperan los datos del modelo y los envían a la vista. Se encuentran en el directorio base de la aplicación y corresponden a las páginas  principales de la aplicación.

Dado que cualquier cambio en esa arquitectura sería elevadamente difícil de controlar y actualizar con las diferentes nuevas versiones del producto, la solución se encuentra en crear módulos, que utilizan las funciones y recursos del núcleo de la aplicación sin interferir en ella.

Creación de los ficheros que componen el módulo

Lo primero a tener en cuenta es la nomenclatura de Prestashop, el nombre de la clase dentro del fuente puede ser capitalizado “MiClase”, sin embargo, el fichero que lo contiene así cómo el directorio del módulo deben estar nombrados completamente en minúsculas y llamarse igual que la clase. Llamaremos a nuestro directorio “testmodule” y lo crearemos en “directorioBase/modules/”.

Y crearemos el fichero “testmodule.php” que extenderá de la clase base “Module”:

<!--?php Class testModule extends Module{ } ?-->

Una vez creado, el primer método que debemos definir es el __construct(), que es el que se encarga de informar a prestashop de los datos del módulo.

<!--?php Class testModule extends Module{ 	function __construct(){ 		$this--->name = 'testmodule';
		$this->displayName = 'testModule';
		$this->tab = 'Blocks';
		$this->version = 1.0;
		$this->confirmUninstall = $this->l('Are you sure you want to uninstall testModule?');
		$this->description = $this->l('Example module, it does nothing by the time');
                $this->page = basename(__FILE__, '.php');
                parent::__construct();

	}
}
?>

name->nombre del módulo(sigue la misma convención que el directorio del módulo, en minúsculas)
displayName->nombre del módulo a mostrar
tab->etiqueta bajo la cual queremos que se liste nuestro módulo en el backOffice
version->versión del módulo
confirmUninstall->mensaje de confirmación al desinstalar
description->descripción breve de la funcionalidad

Con esto ya tendremos lo suficiente para que nuestro módulo aparezca en el listado de modulos de nuestra tienda.

Si además incluimos en el directorio de nuestro módulo un fichero “logo.gif”, éste será el empleado cómo logo del módulo a la hora de listarlo en nuestra tienda.

Nuestro módulo listado en el backOffice

Nuestro módulo listado en el backOffice

Con ésto ya tenemos la estructura base del módulo, ahora nos falta hacer que se muestre en el frontOffice(o en el back, depende de que funcionalidad queramos implementar) y hacer que realmente haga algo. Todo eso lo veremos más adelante, así que estad atentos a la segunda parte del post.

  • Hector_ete

    Buen articulo! esperamos q haya mas partes

    PD: si el captcha falla al volver pa tras no aparecece el comentario

    • jmarti

      yo también espero que haya más partes, sino parecerá un “coitus interruptus” :)

      iskander, ponte una descripción, que al pulsar tu nombre, queda chulo, pero no hay nada de ti :) )

      ¿y qué modulos hay en el mundo prestashop? (para inciados como yo) ;P eso también sería un buen post

  • Gonzalo

    Se ha abierto un buen tema: Módulos Prestashop, Joomla, WordPress, …

  • afernandez

    ¿Los módulos de Prestashop son para crear las típicas tiendas online?

    • Igomez

      No exactamente. Cómo he dicho al comienzo, Prestashop es una solución que incluye todo lo necesario para crear una tienda online. Sobre esa base implementa modularidad para que añadir, eliminar o modificar funcionalidades sea más sencillo e independiente.

      • afernandez

        Ya me ha quedado más claro.

        Gracias :)

  • http://www.esteticaparati.es Emilio

    hola, no tengo mucha experiencia con la creación de módulos, pero para banners de publicidad o mensajes llamativos se pueden utilizar el “blockadvertising” y cambiar dos o tres cosas en los ficheros tpl y php para poder adaptarlo a las necesidades de cada uno. saludos

  • http://equiposfotograficos.com Yoel

    Gracias por este pos también quisiera saber si hay alguien entendido en la realización de módulos para PrestaShop que lo hiciera con las prestaciones de mi interés y yo le pagaría por dicho modulo, por favor contactarme en yoelutria@yahoo.com

  • Pingback: Cómo crear un módulo de Prestashop (3/X) : Init Developers

  • Pingback: Cómo crear un módulo de Prestashop (2/X) : Init Developers