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 azul):
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/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=CONTACT&limit=10
https://URLtienda.com/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=PRODUCT&limit=10
https://URLtienda.com/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEAL&limit=10
https://URLtienda.com/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEALABANDONED&limit=10
Paso 3: Ejemplo de 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/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=CONTACT&limit=10'
curl -s 'https://URLtienda.com/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=PRODUCT&limit=10'
curl -s 'https://URLtienda.com/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEAL&limit=10'
curl -s 'https://URLtienda.com/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEALABANDONED&limit=10'
Y lo 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: