Como crear un proceso periódico (CRON) para la sincronización periódica de datos

Para realizar la sincronización inicial y tener una sincronización de datos de forma automática desde Prestashop hacia Hubspot se debe crear un proceso periódico que se llame a una URL de Prestashop

Paso 1: Obtención de la URL para la llamada

Dentro del panel de administración de Prestashop, en el menú principal -> Dashboard, en la parte inferior se halla la clave segura de integración (en color azúl):

Se debe copiar el enlace al que apunta la clave segura de integración, que tendrá el siguiente aspecto:

https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1

Es la URL a la que se llama para traspasar la información para cada tipo de objeto.

Paso 2: Creación de URLs para cada tipo de objeto

Hay que realizar 4 llamadas diferentes, usando la URL anterior, y añadiendo el parámetro de objeto que se desea sincronizar.

Hay que modificar la URL de llamada y añadir &object_type=objeto para los cuatro tipos de objetos:

- Clientes (CONTACT)

- Productos (PRODUCT)

- Negocios (DEAL)

- Carritos abandonados (DEALABANDONED).

También se puede añadir el parámetro del número de objetos a sincronizar para cada llamada: &limit=número (recomendado).

De esta forma, generamos las cuatro URL de llamada:

https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=CONTACT&limit=10

https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=PRODUCT&limit=10

https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEAL&limit=10

https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEALABANDONED&limit=10

 

Paso 3: Ejemplo configuración CRON (linux)

Esto es un ejemplo de las entradas para el crontab. Las llamadas se realizarán cada 5 minutos. Es preferible evitar llamadas concurrentes, se deben hacer de forma secuencial.

El orden de ejecución es el que se muestra a continuación:

- Contactos

- Productos

- Negocios

- Carritos abandonados

Si no se realiza en este orden, puede haber referencias a objetos sin sincronizar, lo que provocaría que los negocios no contuvieran toda la información.

Se crea un fichero ejecutable, sync.sh (por ejemplo), y se añade lo siguiente:

#!/bin/bash
curl -s 'https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=CONTACT&limit=10'
curl -s 'https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=PRODUCT&limit=10'
curl -s 'https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEAL&limit=10'
curl -s 'https://URLtienda.com/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEALABANDONED&limit=10'

Y añadimos al crontab correspondiente:

*/10 * * * * /RutaAlFichero/sync.sh

Esto realizará la llamada cada 10 minutos, e intentará sincronizar 10 objetos de cada tipo, de forma secuencial.

Antes de configurar el cron, es recomendable ejecutar sync.sh un par de veces para ver cuanto tiempo requiere. Es importante que funcione de forma secuencial y que no haya llamadas concurrentes, ya que el rendimiento de la página web se verá comprometido. 

En instalaciones de Prestashop con mucho tráfico o modificaciones frecuentes de productos, será necesario cambiar la cantidad de productos, contactos o pedidos que se sincronizan en cada llamada, o la frecuencia de las llamadas.

El estado de la sincronización será visible en el Dashboard: