Synchronisation des produits via API

La synchronisation des produits via API permet d’automatiser la création et la mise à jour des produits de votre catalogue Connectif depuis un système externe. Vous pouvez synchroniser les produits individuellement ou effectuer des mises à jour massives via un fichier CSV.

Dans cet article, vous apprendrez comment importer automatiquement des produits via l’API de Connectif.

Pour utiliser l’intégration via API, vous aurez besoin d’un expert ayant des connaissances en programmation.

 

Avant de commencer : cas d’usage

Cette API couvre les cas d’usage suivants :

  • Si vous souhaitez créer ou mettre à jour des produits individuellement depuis un système externe.
  • Si vous souhaitez automatiser périodiquement la synchronisation de tous ou d’une grande partie de vos produits via un fichier CSV.

 

ÉTAPE 1. Création de la clé API

1. Accédez à Configuration de la boutique dans le menu latéral gauche.

2. Dans le sélecteur d’onglet, allez à "API et accès IP" et cliquez sur Clés API.

Importación de productos mediante API - 1.png

 

3. Cliquez sur le bouton Créer une nouvelle clé API.

Importación de productos mediante API - 2.png

 

4. Dans la section Importations et produits du panneau de création, activez les permissions pour "Lire", "Écrire" et "Supprimer" en masse.

Importación de productos mediante API - 3.png

 

5. Enregistrez la clé API et copiez-la pour l’utiliser plus tard dans votre script d’automatisation.

Importación de productos mediante API - 4.png

 

ÉTAPE 2. Choix de la méthode de synchronisation

(À cette étape, vous choisirez comment envoyer les informations des produits à Connectif selon le volume et la manière dont vous souhaitez mettre à jour votre catalogue).

6. Choisissez la méthode de synchronisation qui correspond le mieux à votre cas :

  • API Produits : Créer ou mettre à jour des produits individuellement.
  • API Importations : Créer ou mettre à jour un grand nombre de produits via un fichier CSV.

2.1. Synchronisation individuelle des produits

(Dans cette section, vous configurerez les appels à l’API Produits).

7. Créez le script d’automatisation depuis votre système et incluez-y la clé API générée à l’étape précédente.

8. Configurez dans le script une requête HTTP PATCH pour créer ou mettre à jour le produit dans Connectif : https://api.connectif.cloud/products/product-id/{id}

Remplacez {id} par l’identifiant du produit dans votre eCommerce. Cette opération crée le produit s’il n’existe pas ou met à jour celui existant.

Dans la requête, indiquez :

  • La clé API pour authentifier l’appel.
  • Le type de contenu application/json.
  • Les informations du produit dans le corps de la requête.

9. Incluez dans le corps de la requête les attributs obligatoires suivants :

  • name : nom du produit.
  • productDetailUrl : URL de détail du produit, qui doit être accessible.
  • unitPrice : prix unitaire du produit.

Les champs name, productDetailUrl et unitPrice sont obligatoires pour créer ou mettre à jour le produit.

Consultez tous les attributs disponibles et apprenez comment élaborer la structure complète de la requête dans la documentation de l’API.

 

Exemple 1

Une fois créée, la requête aura un aspect similaire à ceci :

const apiKey = "VOTRE_CLE_API";
const productId = "SKU-12345";
const url = `https://api.connectif.cloud/products/product-id/${productId}`;

const product = {
 name: "Chaussure de running",
 productDetailUrl: "https://www.mondomaine.com/produits/SKU-12345",
 unitPrice: 39.95
};

async function main() {
 const response = await fetch(url, {
   method: "PATCH",
   headers: {
     "Authorization": `apiKey ${apiKey}`,
     "Content-Type": "application/json"
   },
   body: JSON.stringify(product)
 });

 const result = await response.json();
 console.log(result);
}

main();

 

2.2. Synchronisation massive des produits

(Dans cette section, vous configurerez une importation via API pour créer ou mettre à jour des produits en masse).

Pour créer l’importation, vous devrez effectuer une requête HTTP POST multipart/form-data, qui enverra le fichier CSV ainsi que les différents métadonnées (comme le délimiteur, le type d’importation, etc.).

10. Créez et vérifiez que votre fichier CSV d’importation respecte les conditions suivantes :

  • Utilisez un encodage “UTF-8”.
  • La première ligne contient les en-têtes des champs.
  • Les données des produits doivent utiliser les mêmes noms de champs que ceux indiqués dans cet article.

Dans le CSV suivant, vous pouvez voir un exemple d’importation de produits avec les champs obligatoires productDetailUrl, productId, name et unitPrice, ainsi que d’autres champs optionnels :

productDetailUrl,productId,name,unitPrice,availability,inStockUnits,brand
https://www.mondomaine.com/produits/SKU-12345,SKU-12345,Chaussure de running,39.95,instock,25,Marque Exemple
https://www.mondomaine.com/produits/SKU-67890,SKU-67890,Chaussure trail,49.95,outofstock,0,Marque Exemple

11. Créez le script d’automatisation depuis votre système et incluez-y la clé API générée à l’ÉTAPE 1.

12. Configurez dans le script une requête HTTP POST vers le point de terminaison suivant : https://api.connectif.cloud/imports/

13. Configurez la requête avec les données nécessaires pour effectuer l’importation :

  • Indiquez products comme type d’importation.
  • Indiquez le délimiteur utilisé dans le fichier CSV.
  • Définissez si vous souhaitez écraser les données existantes des produits.
  • Définissez si vous souhaitez mettre à jour uniquement les champs vides.
  • Incluez le fichier CSV contenant les produits que vous souhaitez importer.

14. Exécutez la requête pour lancer l’importation

Apprenez comment élaborer la structure complète de la requête dans la documentation de l’API.

 

Exemple 2

Une fois créée, la requête aura un aspect similaire à ceci :

const fetch = require('node-fetch');
const fs = require('fs');
const FormData = require('form-data');

const apiKey = process.env.API_KEY;
const filePath = process.env.FILE_PATH;

async function main() {
   const form = new FormData();

   form.append('type', 'products');
   form.append('delimiter', ',');
   form.append('overrideExisting', 'true');
   form.append('updateOnlyEmptyFields', 'false');
   form.append('file', fs.createReadStream(filePath));

   const response = await fetch('https://api.connectif.cloud/imports', {
       method: 'POST',
       headers: {
           'Authorization': `apiKey ${apiKey}`,
           ...form.getHeaders()
       },
       body: form
   });

   if (!response.ok) {
       console.error(response.status, await response.json());
       process.exit(1);
   }

   const { id, total } = await response.json();

   while (true) {
       const getResponse = await fetch(
           `https://api.connectif.cloud/imports/${id}`,
           {
               method: 'GET',
               headers: {
                   'Authorization': `apiKey ${apiKey}`
               }
           }
       );

       const { success, errors, status } = await getResponse.json();

       console.log(`terminé ${success + errors} sur ${total}`);

       if (status === 'finished') {
           console.log('Succès');
           process.exit(0);
       }

       await new Promise(resolve = setTimeout(resolve, 2000));
   }
}

main().catch(error = {
   console.error(error);
   process.exit(1);
});

Le script crée une importation de produits à partir du fichier CSV dont le chemin est défini via la variable d’environnement FILE_PATH. Pour cela, il définit products comme type d’importation, utilise , comme délimiteur, écrase les produits existants et maintient updateOnlyEmptyFields à false.

Le script crée une importation de produits à partir du fichier CSV dont le chemin est défini via la variable d’environnement FILE_PATH. Pour cela, il définit products comme type d’importation, utilise , comme délimiteur, écrase les produits existants et maintient updateOnlyEmptyFields à false.

 


Questions fréquentes

Puis-je consulter depuis Connectif les importations effectuées via API ?

Oui, le moteur d’importation est le même que celui utilisé par l’application Connectif. Par conséquent, vous pouvez consulter dans la liste des importations celles effectuées via API ainsi que celles réalisées depuis Connectif.

 

Combien d’importations peuvent être mises en file d’attente simultanément ?

Il est possible de mettre en file d’attente un maximum de 10 importations à la fois. Lorsque vous atteignez cette limite, vous devez attendre qu’une importation soit terminée avant d’en ajouter une autre à la file.

 

Quelle est la taille maximale du fichier CSV ?

Le fichier CSV peut avoir une taille maximale de 50 Mo.

 

Puis-je supprimer une importation via API ?

Actuellement, il est possible de supprimer l’historique des importations uniquement dans les états finished ou error.

 

Puis-je annuler une importation via API ?

Une fois le fichier chargé via l’API, il n’est pas possible d’annuler l’importation.

 

Succès !
Votre synchronisation des produits via API est maintenant prête.

 


Continuez à apprendre !

Pour tirer pleinement parti de votre compte Connectif, nous vous recommandons de poursuivre avec les articles suivants :