Tag Archives: módulos

Crear un hook en Prestashop 1.5

Si has llegado hasta aquí, seguramente sabes de qué hablamos. Y si no, te explicamos brevemente qué es un hook en Prestashop y para qué sirve. Prestashop funciona con módulos que se van cargando en determinados lugares de la web, dependiendo de la posición que le demos en Módulos -> Posiciones. A todos los bloques que ves en Posiciones se les llama hooks. Estos hooks, luego son llamados desde los archivos con extensión .tpl para cargar todos los módulos que contenga el hook. Entre los hooks más conocidos se encuentran: header, leftColumn, rightColumn, home y footer.

Y ahora, vamos al tutorial:

Paso 1: Lo primero que debes hacer es acceder a la base de datos de Prestashop. Para ello, accede a tu panel Plesk (si eres cliente de Aquí hay dominios) y haz clic en la pestaña Sitios web y dominios. A continuación, haz clic en Bases de datos:

Bases de datos

Paso 2: Haz clic en el nombre de la base de datos.

Nombre de la base de datos

Paso 3: Asegúrate de estar en la base de datos que has pulsado y haz clic en Webadmin.WebAdmin

Paso 4: En el buscador, empieza a escribir hook y verás las tablas ps_hook y ps_hook_alias (en nuestro caso: ahd_hook y ahd_hook_alias porque en la instalación de Prestashop cambiamos el prefijo de las tablas).

Tablas de Prestashop

Paso 5: Haz clic en ps_hook_alias y luego en Insertar.

Insertar registro

Paso 6: Escribe NuevoHook en alias y displayNuevoHook en name. Estos nombres puedes cambiarlos a tu gusto, pero intenta seguir la misma estructura que usa Prestashop. Luego lo agradecerás. Pulsa en Continuar.

Nuevo registro

Paso 7: Si lo has hecho correctamente verás un mensaje similar a este:

Fila insertada

Paso 8: Haz clic ahora en la tabla de la izquierda ps_hook y de nuevo Insertar como en el Paso 5. En este caso escribe:

  • name: displayNuevoHook (importante que sea igual al name de la tabla ps_hook_alias)
  • title: Nuevo Hook (puedes ponerle el que quieras)
  • description: Descripción de la función del hook (puedes ponerle la que quieras, pero cuanta más información, mejor)
  • Lo demás, puedes dejarlo en blanco.

    Insertar registro

    Por último, haz clic en Continuar.

    Paso 9: Ve ahora a tu panel de gestión de Prestashop y haz clic en Módulos -> Posiciones, vamos a ver si nuestro hook aparece (tendrás que bajar para encontrarlo o usar Ctrl+F o Cmd+F para buscarlo). Si te aparece… ¡todo va bien!

    Posiciones

    Paso 10: Ve al FTP y abre el archivo:
    /override/classes/controller/FrontController.php
    y sustituye lo que hay por:


    <?php
    class FrontController extends FrontControllerCore
    {
    public function initContent()
    {
    $this->process();
    if (!isset($this->context->cart))
    $this->context->cart = new Cart();
    if ($this->context->getMobileDevice() == false) {
    // These hooks aren't used for the mobile theme.
    // Needed hooks are called in the tpl files.
    if (!isset($this->context->cart))
    $this->context->cart = new Cart();
    $this->context->smarty->assign(array(
    /* === START: DO NOT TOUCH IT */
    'HOOK_HEADER' => Hook::exec('displayHeader'),
    'HOOK_TOP' => Hook::exec('displayTop'),

    'HOOK_NUEVOHOOK' => Hook::exec('displayNuevoHook'),
    'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''),
    'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''),
    /* === END: DO NOT TOUCH IT */

    /* === START: ADD HOOK | EXAMPLE */
    'HOOK_MY_USER' => Module::hookExec('myUser'),
    'HOOK_MY_CATEGORIES' => Module::hookExec('myCategories'),
    'HOOK_SEARCH' => Module::hookExec('mySearch')
    /* === END: ADD HOOK | EXAMPLE */
    ));
    } else {
    $this->context->smarty->assign(array(
    'HOOK_MOBILE_HEADER' => Hook::exec('displayMobileHeader'),
    ));
    }
    }
    }

    En la línea 19 es donde hemos añadido nuestro hook. El nombre {$HOOK_NUEVOHOOK} será el que usaremos en los .tpl para llamar a este hook. Por ejemplo, imagina que quieres colocar este hook en la página de contacto. Abre contact-form.tpl y escribe {$HOOK_NUEVOHOOK} donde quieras que aparezcan los módulos que vamos a insertar en el hook.

    Paso 11: Aún nos falta enganchar los módulos, es decir, no podemos meter un módulo en cualquier hook, los hooks a los que pueden engancharse los módulos tienen que venir especificados en el código php del módulo. Para ello, abre el php del módulo, por ejemplo /modules/blockadvertising/blockadvertising.php y busca una función de hook: public function hookTop, verás algo así:


    public function hookLeftColumn($params)
    {
    return $this->hookRightColumn($params);
    }

    Duplícala y cambia el nombre de la función, debe quedarte algo así:

    public function hookNuevoHook($params)
    {
    return $this->hookRightColumn($params);
    }

    Paso 12: Si vas a Módulos -> Posiciones, verás que el hook que has creado está vacío. Para meter ahí los módulos que quieras debes hacer clic en Trasladar un módulo o reiniciar cada módulo (cuidado si haces esto porque perderás la configuración).

    Trasladar un módulo

    ¡Listo! Si has llamado a tu hook desde la página de contacto, ahora, si entras, deberías ver el Bloque de publicidad justo donde hayas puesto {$HOOK_NUEVOHOOK}. Puedes meter tantos módulos como quieras, pero recuerda, que para cada módulo, debes crear la función del hook en el php correspondiente.

Cambiar el orden de las páginas en el módulo Bloque CMS (blockcms) de Prestashop

Cambiar el orden de las páginas CMS es muy sencillo, pero si no lo has hecho nunca, puedes llegar a perder mucho tiempo buscando la forma, incluso tocar código cuando no es necesario…

Para ponernos en situación, estamos hablando del módulo Bloque CMS (blockcms), el cual te permite mostrar tus páginas CMS en la columna de la derecha, la izquierda o en el pie de página (footer).

Módulo Bloque CMS

Lo normal, sería ir a la configuración del módulo y buscar ahí la forma, pero no… Es tan sencillo como ir a Preferencias -> CMS e ir organizando arrastrando a través de las flechas de posición de cada página:

Flechas posición CMS

Haciendo esto, podrás tener rápidamente tus páginas de Prestashop ordenadas a tu gusto. ¿Fácil no?

Cómo instalar un módulo de Prestashop por FTP

Muchos usuarios que deciden montar su tienda con Prestashop nos preguntan cómo instalar módulos para conseguir funcionalidades que no vienen por defecto en la instalación inicial de Prestashop.

Para ello, lo primero que debes hacer es descargar el módulo, ya sea gratis o de pago. Lo más normal es que venga en un archivo zip o rar. Descomprímelo y verás la carpeta del módulo. Puede que venga también un archivo de texto con instrucciones, o algunos archivos que necesites meter en otras carpetas, como classes, pero te aconsejamos que si eres principiante empieces instalando un módulo más simple, que como hemos comentado, sería sólo una carpeta, con el nombre del módulo.

Una vez que tengas tu módulo descargado y descomprimido, sigue estos pasos: Leer más

Cómo enviar las newsletter de tu tienda Prestashop con Mailchimp

La conocida herramienta de envío masivo de correos electrónicos Mailchimp ofrece un módulo gratuito que te permitirá enviar los boletines de noticias de tu tienda Prestashop, también puedes crear listas de correo electrónico con los clientes registrados en tu tienda con varios filtros como el país, fecha de registro, ciudad, sexo, etc.

El módulo te permite agregar un formulario de inscripción  MailChimp en tu tienda online Prestashop para que los usuarios pueden registrarse directamente a tu boletín informativo.

Puedes configurar el módulo para agregar automáticamente cada nuevo cliente que opte por recibir boletines de noticias de tu tienda a una lista seleccionada mediante un cron, o puedes hacerlo de forma manual en cualquier momento con sólo pulsar un botón.

Toda una gestión completa que nos facilita la comunicación y fidelización de nuestros clientes de una forma cómoda y sencilla. Veamos los pasos necesarios para descargar, instalar y configurar dicho módulo:

  • Accedemos a la siguiente web para descargar el módulo, http://mailchimp.kweb.ro/download-module/
  • Accedemos al panel de administración de Prestashop, entramos en la pestaña “módulos”, hacemos clic en la opción “Añadir un módulo a partir de mi ordenador“ y seleccionamos el archivo descargado en el paso anterior para subirlo.
  • Buscamos el módulo tecleando en la caja de búsqueda “mailchimp” y hacemos clic en el botón “instalar” y una vez instalado hacer clic en “configurar”
Módulo Gratuito Prestashop para Mailchimp
Módulo Prestashop
  • La imagen anterior muestra la configuración de este módulo con ocho números entre paréntesis, que son los pasos siguientes que daremos.
  • (1) > Necesitamos crearnos una cuenta en Mailchimp si no la tenemos ya creada, para ello hacemos clic en botón “Create a Mailchimp Account”.
  • (2) > Generamos la ApiKey, para ello entramos en nuestra cuenta de Mailchimp y hacemos clic en Account > Extras > API Keys&Info, como indica el cuadro de instrucciones y hacemos clic en el botón “Add A Key” para generarla, la copiamos y pegamos en la configuración del módulo.
  • (3) > Introducimos nuestro email que servirá para hacer pruebas antes de enviar los emails a los clientes.
  • (4) > Desde la herramienta Mailchimp accedemos al menú superior y hacemos clic en “Lists” y después en el botón “Create List” para crearnos una lista, la cual utilizaremos para almacenar los contactos que se registren mediante el formulario que nos ofrece Mailchimp. Una vez creada la lista hacemos clic en la opción “Forms” de la lista, añadimos los campos que necesitemos para el formulario y entramos al apartado “Share it”, hacemos clic en el botón “Create Hml Code” para copiar el código y pegarlo en la configuración del módulo.
  • (5) > Hacemos clic en el botón “Save” para guardar los datos introducidos en la configuración.
  • (6) > Hacemos clic en “gestiona los hooks” para comprobar en que parte de nuestra tienda Prestashop se mostrará el formulario.
  • (7) > Si queremos mostrar el formulario en cualquier otra parte, hacemos clic en “Posiciones” y después en “Trasladar un módulo”, elegimos este módulo de Mailchimp y el Hook o posición en la cual queremos mostrarlo y por último guardamos.
  • (8) > Hacemos clic para entrar al apartado desde donde vamos a gestionar las campañas de envíos de emails.
Módulo Gratuito Prestashop para Mailchimp
Gestionar envío de Newsletter
  • (A) > La lista de clientes que se ha registrado para comprar en nuestra tienda podemos filtrarla por los datos de cada columna, como en el ejemplo de la imagen donde he tecleado en ciudad “Yecla” y seguidamente he pulsado en el botón “Filtro” para que solo me tome aquellos clientes de dicha ciudad.
  • (B) > En ese desplegable elegimos el nombre de la lista creada anteriormente que en mi caso le llamé “Suscripción mi tienda” y en esa lista elegida será donde se guardaran los datos de los usuarios que se suscriban utilizando el formulario anteriormente creado.
  • (C) > Hacemos clic en el botón “Add new users” para añadir a la lista elegida todos los clientes que se hayan registrado en nuestra tienda y hayan marcado durante el registro la opción de recibir el Newsletter. Podemos utilizar el filtro descrito en el punto (A) y filtrar por fechas o el campo que nos interese.
  • (D) > Desde la herramienta Mailchimp podemos crear una campaña con el contenido de la Newsletter y desde aquí podremos lanzar el envío de la campaña a todos los usuarios de la lista asociada.

Puedes consultar más información sobre Prestashop y Mailchimp en el blog del Profesor Yale