Comment créer une tâche périodique (tâche CRON) pour la synchronisation périodique des données

Pour effectuer la synchronisation initiale et avoir une synchronisation automatique des données de Prestashop vers Hubspot, vous devez créer un processus périodique qui appelle une URL de votre Prestashop.

Étape 1 : Obtention de l'URL pour l'appel

Dans le Back Office Prestashop, dans le menu principal > Dashboard, vous trouverez la clé d'intégration sécurisée (en bleu), situé en bas.

Copiez le lien pointant vers la clé d'intégration sécurisée, qui ressemblera à ceci :

https://URLmagasin/module/ps_hubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1

C'est l'URL qui sera appelée pour transmettre les informations pour chaque type d'objet.

Étape 2 : Création d'URL pour chaque type d'objet


Vous devez effectuer quatre appels différents, en utilisant l'URL mentionnée plus haut et en ajoutant le paramètre de l'objet que vous souhaitez synchroniser.

Modifiez l'URL de l'appel et ajoutez &object_type=objet pour les quatre types d'objets :

- Clients (CONTACT)

- Produits (PRODUCT)

- Affaires (DEAL)

- Paniers abandonnés (DEALABANDONED).

Vous pouvez également ajouter le paramètre du nombre d'objets à synchroniser pour chaque appel : &limit=numéro (recommandé).

Nous générons ainsi les quatre URL à appeler :

https://URLmagasin/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=CONTACT&limit=10

https://URLmagasin/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=PRODUCT&limit=10

https://URLmagasin/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEAL&limit=10

https://URLmagasin/module/pshubspot/webhook?secure_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ajax=1&object_type=DEALABANDONED&limit=10

Étape 3 : Exemple de configuration CRON sous Linux

Voici un exemple d'entrées dans la crontab. Les appels seront effectués toutes les 5 minutes. Il est préférable d'éviter les appels simultanés, ils doivent être effectués de manière séquentielle.

L'ordre d'exécution est indiqué ci-dessous :

- Contacts

- Produits

- Entreprises

- Paniers abandonnés

Si cet ordre n'est pas respecté, il peut y avoir des références à des objets non synchronisés, ce qui fait que les entreprises ne contiennent pas toutes les informations.

Créez un fichier exécutable, sync.sh (par exemple), etajoutez ce qui suit :

#!/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'

Et nous ajoutons à la crontab correspondante :

*/10 * * * * /chemin d'accès/sync.sh

Cet appel sera effectué toutes les 10 minutes et tentera de synchroniser 10 objets de chaque type, de manière séquentielle.

Avant de configurer le cron, il est conseillé d'exécuter sync.sh quelques fois pour vérifier le temps qu'il prend. Il est important qu'il fonctionne de manière séquentielle et qu'il n'y ait pas d'appels simultanés, car les performances du site web seraient compromises. 

Dans les installations Prestashop avec beaucoup de trafic ou des modifications de produits fréquentes, il sera nécessaire de changer le nombre de produits, de contacts ou de commandes qui sont synchronisés dans chaque appel, ou même la fréquence des appels.

L'état de la synchronisation sera visible sur le Dashboard :