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.
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.
3. Cliquez sur le bouton Créer une nouvelle clé API.
4. Dans la section Importations et produits du panneau de création, activez les permissions pour "Lire", "Écrire" et "Supprimer" en masse.
5. Enregistrez la clé API et copiez-la pour l’utiliser plus tard dans votre script d’automatisation.
É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}
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.
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).
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.
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 Exemple11. 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
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.
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.
Continuez à apprendre !
Pour tirer pleinement parti de votre compte Connectif, nous vous recommandons de poursuivre avec les articles suivants :
Synchronisation massive de produits, pour comprendre comment fonctionne la synchronisation massive et les différences entre le Scraping Web et le Flux de Produits.
Méthodes de synchronisation et vérification des produits dans Connectif, pour découvrir les différentes manières de maintenir votre catalogue à jour.
Synchronisation des Produits via Flux, pour configurer une synchronisation massive via un Flux de Produits.
Synchronisation des Produits via Scraping Web, pour configurer une synchronisation massive via Scraping Web.