Importations via API

Connectif permet d'automatiser les importations massives de fiches de contact, de produits et de coupons via l' API d'importation.

Dans cet article, vous apprendrez comment importer les informations de vos fiches de contact, votre catalogue de produits et vos coupons d'achat via l'API de Connectif.

  

Cet article fait partie du guide pour créer une intégration sur mesure.
Si votre intégration se fait par module, cette balise sera insérée automatiquement dans votre eCommerce.

 

Avant de commencer : cas d’usage

Cette API couvre les cas d’usage suivants :

  • Si vous souhaitez automatiser périodiquement (quotidiennement, hebdomadairement...) la synchronisation de tous ou d'une grande partie de vos fiches de contact ou de vos produits.
  • Si vous souhaitez importer des coupons dans un ensemble de coupons.

Cette API ne couvre pas l'importation des événements d'achat, mais peut servir de point de départ. Pour configurer les achats, consultez la documentation de l' API de Connectif.

 

É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'onglets, allez à "API et accès IP" et cliquez sur API Keys.

Importations mediante API (capturas agosto 24) - 1-min.png

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

Importations mediante API (capturas agosto 24) - 2-min.png

4. Dans la section Importations du panneau de création, activez les autorisations pour Lecture, Écriture et Suppression en masse.

Importations mediante API (capturas agosto 24) - 3-min.png

 

5. Enregistrez la clé API et copiez-la pour l'utiliser ultérieurement dans votre script d'automatisation.

Importations mediante API (capturas agosto 24) - 4-min.png

 

ÉTAPE 2. Création de l’importation

  

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

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

  • Encodage UTF-8.
  • La première ligne doit contenir le nom des en-têtes de chaque champ.
  • Les en-têtes du fichier de fiches de contact doivent correspondre aux IDs des Champs du contact dans Connectif, que vous trouverez dans votre compte, dans "Contacts > Champs du contact".

API_de_importacio_n_-_5-min.png

 

Dans le CSV suivant, on peut voir un exemple où _email, _name et _points correspondent aux identifiants des champs système Email, Nom et Points.

_email,_name,_points
john@example.org,John,10
micheal@example.org,Michael,10
steve@example.org,Steve,20
mark@example.org,Mark,12
carl@example.org,Carl,10

 

  • Les données de produits doivent correspondre aux noms des champs indiqués dans cet article.
  • L'importation de coupons doit contenir un seul en-tête "code".

7. Créez le script et incluez-y la clé API générée à l' étape 1.

 

Exemple

 

L'exemple suivant montre un script de base en Node.js pour automatiser l'importation de fiches de contact.

Une fois l’importation créée, elle aura l’apparence suivante :

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', 'contacts')
    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(`completed ${success + errors} of ${total}`);

        if (status === 'finished') {
            console.log('Success 🎉 🎉 🎉 🎉 🎉 🎉 🎉');
            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 à partir d’un fichier CSV dont le chemin est défini par une variable d’environnement. Une fois l’importation créée, celle-ci vérifie son état toutes les 2 secondes et se termine lorsque l’état de l’importation est égal à finished.

 

 

Succès !
Les intégrations via API sont maintenant prêtes.

 


Foire aux questions

Quelle est la taille maximale des fichiers à importer ?

Les fichiers CSV à importer ne peuvent pas dépasser 50 Mo.

 

Combien d’importations peuvent être mises en file d’attente en même temps ?

Il est possible de mettre en file d’attente un maximum de 10 importations en même temps. Une fois cette limite atteinte, il faudra attendre qu’une importation soit terminée pour pouvoir en ajouter une nouvelle.

 

Les importations réalisées via API sont-elles consultables dans l’application Connectif ?

Oui, le moteur d’importation est le même que celui utilisé par l’application Connectif. Ainsi, les importations réalisées via API et application sont toutes disponibles dans la liste des importations.

 

Puis-je supprimer une importation en attente ou en cours ?

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

 


Continuez à apprendre !

Pour tirer le meilleur parti de votre compte Connectif, nous vous recommandons de continuer avec les articles suivants :