Importações via API

A Connectif permite automatizar importações em massa de contatos, produtos e cupons por meio da API de Importação.

Neste artigo, você aprenderá como importar informações de seus contatos, catálogo de produtos e cupons de compras através da API da Connectif.

  

Este artigo faz parte do guia para criar uma integração personalizada.
Se sua integração for por módulo, essa tag será inserida automaticamente em seu eCommerce.

 

Antes de começar: casos de uso

Essa API cobre os seguintes casos de uso:

  • Se você deseja automatizar periodicamente (diariamente, semanalmente...) a sincronização de todos ou da maioria dos seus contatos ou produtos.
  • Se você deseja importar cupons para um conjunto de cupons.

Esta API não cobre a importação de eventos de compras, mas pode servir como ponto de partida. Para configurar as compras, consulte a documentação da API da Connectif.

 

PASSO 1. Criação da chave API

1. Acesse a Configuração da loja no menu lateral esquerdo.

2. No seletor de abas, vá para "API e acessos IP" e clique em API Keys.

Importações mediante API (capturas agosto 24) - 1-min.png

3. Clique no botão   Criar nova chave API.

Importações mediante API (capturas agosto 24) - 2-min.png

4. Na seção Importações do painel de criação, habilite as permissões para Ler, Escrever e Excluir em massa.

Importações mediante API (capturas agosto 24) - 3-min.png

 

5. Salve a chave API e copie-a para usá-la mais tarde em seu script de automação.

Importações mediante API (capturas agosto 24) - 4-min.png

 

PASSO 2. Criação da importação

  

Para criar a importação, você precisará realizar uma requisição HTTP POST multipart/form-data, que enviará o arquivo CSV e os diferentes metadados (como delimitador, tipo de importação, etc.).

6. Crie e verifique se seu arquivo CSV de importação cumpre as seguintes condições:

  • Codificação UTF-8.
  • A primeira linha deve conter o nome dos cabeçalhos de cada campo.
  • Os cabeçalhos do arquivo de contatos devem coincidir com os IDs dos Campos do contato da Connectif, que você encontrará na sua conta, em "Contatos > Campos do contato".

API_de_importacio_n_-_5-min.png

 

No seguinte CSV, pode-se ver um exemplo onde _email, _name e _points correspondem aos identificadores dos campos de sistema Email, Nome e Pontos.

_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

 

  • Os dados de produtos devem coincidir com os nomes dos campos indicados neste artigo.
  • A importação de cupons deve conter um único cabeçalho "code".

7. Crie o script e inclua nele a chave API gerada no passo 1.

 

Exemplo

 

No exemplo a seguir, você encontrará um script básico em Node.js para automatizar a importação de contatos.

Uma vez criada a importação, ela terá o seguinte aspecto:

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

O script cria uma importação a partir de um arquivo CSV cuja rota é definida por variável de ambiente. Após criar a importação, ele verifica seu estado a cada 2 segundos e finaliza quando o estado da importação é finished

 

 

Sucesso!
As integrações via API já estão prontas.

 


Perguntas frequentes

Qual é o tamanho máximo dos arquivos a serem importados?

Os arquivos CSV a serem importados não podem exceder 50 MB de tamanho.

 

Quantas importações podem ser enfileiradas ao mesmo tempo?

É possível enfileirar até 10 importações ao mesmo tempo. Ao atingir esse limite, será necessário aguardar a conclusão de uma importação para adicionar a próxima à fila.

 

As importações realizadas via API podem ser consultadas no aplicativo Connectif?

Sim, o mecanismo de importação é o mesmo utilizado pelo aplicativo Connectif. Portanto, as importações feitas via API e pelo app estão disponíveis na lista de importações.

 

Posso excluir uma importação enfileirada ou em progresso?

Atualmente, é possível excluir importações apenas nos estados finished ou error.

 


Continue aprendendo!

Para aproveitar ao máximo sua conta Connectif, recomendamos continuar com os seguintes artigos: