Sincronizzazione dei prodotti tramite API

La sincronizzazione dei prodotti tramite API consente di automatizzare la creazione e l'aggiornamento dei prodotti del tuo catalogo Connectif da un sistema esterno. Puoi sincronizzare i prodotti singolarmente o eseguire aggiornamenti di massa tramite un file CSV.

In questo articolo imparerai come importare automaticamente i prodotti tramite l'API di Connectif.

  

Per utilizzare l'integrazione tramite API, avrai bisogno di un esperto con conoscenze di programmazione.

 

Prima di iniziare: casi d'uso

Questa API copre i seguenti casi d'uso:

  • Se vuoi creare o aggiornare prodotti singolarmente da un sistema esterno.
  • Se vuoi automatizzare periodicamente la sincronizzazione di tutti o gran parte dei tuoi prodotti tramite un file CSV.

 

PASSO 1. Creazione della chiave API

1. Accedi a Configurazione negozio nel menu laterale sinistro.

2. Nel selettore di schede, vai su "API e accessi IP" e clicca su API Keys.

Importación de productos mediante API - 1.png

 

3. Clicca sul pulsante Crea nuova API Key.

Importación de productos mediante API - 2.png

 

4. Nella sezione Importazioni e prodotti del pannello di creazione, abilita i permessi per "Leggere", "Scrivere" e "Cancellare" in modo massivo.

Importación de productos mediante API - 3.png

 

5. Salva la chiave API e copiala per utilizzarla successivamente nel tuo script di automazione.

Importación de productos mediante API - 4.png

 

PASSO 2. Scelta del metodo di sincronizzazione

(In questo passaggio sceglierai come inviare le informazioni dei prodotti a Connectif a seconda del volume e del modo in cui desideri aggiornare il tuo catalogo).

6. Scegli il metodo di sincronizzazione che meglio si adatta al tuo caso:

  • API Prodotti: creare o aggiornare prodotti singolarmente.
  • API Importazioni: creare o aggiornare grandi quantità di prodotti tramite un file CSV.

2.1. Sincronizzazione individuale dei prodotti

(In questa sezione configurerai le chiamate all'API Prodotti).

7. Crea lo script di automazione dal tuo sistema e includi in esso la API Key generata nel passaggio precedente.

8. Configura nello script una richiesta HTTP PATCH per creare o aggiornare il prodotto in Connectif: https://api.connectif.cloud/products/product-id/{id}

  

Sostituisci {id} con l'identificatore del prodotto nel tuo eCommerce. Questa operazione crea il prodotto se non esiste o aggiorna quello esistente.

Nella richiesta, indica:

  • La API Key per autenticare la chiamata.
  • Il tipo di contenuto application/json.
  • Le informazioni del prodotto nel corpo della richiesta.

9. Includi nel corpo della richiesta i seguenti attributi obbligatori:

  • name: nome del prodotto.
  • productDetailUrl: URL di dettaglio del prodotto, che deve essere accessibile.
  • unitPrice: prezzo unitario del prodotto.
 

I campi name, productDetailUrl e unitPrice sono obbligatori per creare o aggiornare il prodotto.

 

Consulta tutti gli attributi disponibili e impara come elaborare la struttura completa della richiesta nella documentazione dell'API.

 

Esempio 1

Una volta creata, la richiesta avrà un aspetto simile a questo:

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

const product = {
 name: "Scarpa Running",
 productDetailUrl: "https://www.midominio.com/prodotti/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. Sincronizzazione massiva dei prodotti

(In questa sezione configurerai un'importazione tramite API per creare o aggiornare prodotti in massa).

  

Per creare l'importazione dovrai effettuare una richiesta HTTP POST multipart/form-data, che invierà il file CSV e i diversi metadati (come il delimitatore, il tipo di importazione, ecc.).

10. Crea e verifica che il tuo file CSV di importazione rispetti le seguenti condizioni:

  • Utilizza la codifica “UTF-8”.
  • La prima riga contiene le intestazioni dei campi.
  • I dati dei prodotti devono utilizzare gli stessi nomi di campo indicati in questo articolo.
 

Nel CSV seguente puoi vedere un esempio di importazione di prodotti con i campi obbligatori productDetailUrl, productId, name e unitPrice, insieme ad altri campi opzionali:

productDetailUrl,productId,name,unitPrice,availability,inStockUnits,brand
https://www.midominio.com/prodotti/SKU-12345,SKU-12345,Scarpa Running,39.95,instock,25,Marca Esempio
https://www.midominio.com/prodotti/SKU-67890,SKU-67890,Scarpa Trail,49.95,outofstock,0,Marca Esempio

11. Crea lo script di automazione dal tuo sistema e includi in esso la API Key generata nel PASSO 1.

12. Configura nello script una richiesta HTTP POST al seguente endpoint: https://api.connectif.cloud/imports/ 

13. Configura la richiesta con i dati necessari per effettuare l'importazione:

  • Indica products come tipo di importazione.
  • Indica il delimitatore utilizzato nel file CSV.
  • Imposta se vuoi sovrascrivere i dati esistenti dei prodotti.
  • Imposta se vuoi aggiornare solo i campi vuoti.
  • Includi il file CSV che contiene i prodotti che vuoi importare.

14. Esegui la richiesta per avviare l'importazione

 

Impara come elaborare la struttura completa della richiesta nella documentazione dell'API.

 

Esempio 2

Una volta creata, la richiesta avrà un aspetto simile a questo:

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(`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);
});
  

Lo script crea un'importazione di prodotti a partire dal file CSV il cui percorso è impostato tramite la variabile d'ambiente FILE_PATH. Per questo, imposta products come tipo di importazione, usa , come delimitatore, sovrascrive i prodotti esistenti e mantiene updateOnlyEmptyFields su false.

Lo script crea un'importazione di prodotti a partire dal file CSV il cui percorso è impostato tramite la variabile d'ambiente FILE_PATH. Per questo, imposta products come tipo di importazione, usa , come delimitatore, sovrascrive i prodotti esistenti e mantiene updateOnlyEmptyFields su false.

 


Domande frequenti

Posso consultare da Connectif le importazioni effettuate tramite API?

Sì, il motore di importazione è lo stesso utilizzato dall'applicazione Connectif. Pertanto, potrai consultare nell'elenco delle importazioni sia quelle effettuate tramite API sia quelle effettuate da Connectif.

 

Quante importazioni si possono mettere in coda contemporaneamente?

È possibile mettere in coda un massimo di 10 importazioni contemporaneamente. Quando raggiungi questo limite, dovrai attendere il completamento di un'importazione prima di aggiungerne un'altra alla coda.

 

Qual è la dimensione massima del file CSV?

Il file CSV può avere una dimensione massima di 50 MB.

 

Posso eliminare un'importazione tramite API?

Attualmente, è possibile cancellare la cronologia delle importazioni solo negli stati finished o error.

 

Posso annullare un'importazione tramite API?

Una volta caricato il file tramite API, non è possibile annullare l'importazione.

 

 

Successo! 
La tua sincronizzazione dei prodotti tramite API è ora pronta.

 


Continua ad imparare!

Per sfruttare al massimo il potenziale del tuo account Connectif, ti consigliamo di proseguire con i seguenti articoli: