Sincronização de produtos via API

A sincronização de produtos via API permite automatizar a criação e atualização dos produtos do seu catálogo no Connectif a partir de um sistema externo. Você pode sincronizar produtos individualmente ou realizar atualizações em massa por meio de um arquivo CSV.

Neste artigo, você aprenderá como importar produtos automaticamente via API do Connectif.

Para usar a integração via API, será necessário um especialista com conhecimentos em programação.

 

Antes de começar: casos de uso

Esta API cobre os seguintes casos de uso:

  • Se você quiser criar ou atualizar produtos individualmente a partir de um sistema externo.
  • Se você quiser automatizar periodicamente a sincronização de todos ou grande parte dos seus produtos por meio de um arquivo CSV.

 

PASSO 1. Criação da chave API

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

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

Importación de productos mediante API - 1.png

 

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

Importación de productos mediante API - 2.png

 

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

Importación de productos mediante API - 3.png

 

5. Salve a chave API e copie-a para usar posteriormente no seu script de automação.

Importación de productos mediante API - 4.png

 

PASSO 2. Escolha do método de sincronização

(Neste passo você escolherá como enviar as informações dos produtos para o Connectif conforme o volume e a forma como precisa atualizar seu catálogo).

6. Escolha o método de sincronização que melhor se adapta ao seu caso:

  • API de Produtos: Criar ou atualizar produtos individualmente.
  • API de Importações: Criar ou atualizar grandes quantidades de produtos por meio de um arquivo CSV.

2.1. Sincronização individual de produtos

(Nesta seção você configurará as chamadas para a API de Produtos).

7. Crie o script de automação a partir do seu sistema e inclua nele a API Key gerada no passo anterior.

8. Configure no script uma requisição HTTP PATCH para criar ou atualizar o produto no Connectif: https://api.connectif.cloud/products/product-id/{id}

Substitua {id} pelo identificador do produto no seu eCommerce. Esta operação cria o produto se ele não existir ou atualiza o existente.

Na requisição, informe:

  • A API Key para autenticar a chamada.
  • O tipo de conteúdo application/json.
  • As informações do produto no corpo da requisição.

9. Inclua no corpo da requisição os seguintes atributos obrigatórios:

  • name: nome do produto.
  • productDetailUrl: URL de detalhe do produto, que deve ser acessível.
  • unitPrice: preço unitário do produto.

Os campos name, productDetailUrl e unitPrice são obrigatórios para criar ou atualizar o produto.

Consulte todos os atributos disponíveis e aprenda como elaborar a estrutura completa da requisição na documentação da API.

 

Exemplo 1

Uma vez criada, a requisição terá um aspecto semelhante a este:

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

const product = {
 name: "Tênis de Corrida",
 productDetailUrl: "https://www.meudominio.com/produtos/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. Sincronização em massa de produtos

(Nesta seção você configurará uma importação via API para criar ou atualizar produtos em massa).

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

10. Crie e verifique se seu arquivo CSV de importação atende às seguintes condições:

  • Use codificação “UTF-8”.
  • A primeira linha contém os cabeçalhos dos campos.
  • Os dados dos produtos devem usar os mesmos nomes de campo indicados em este artigo.

No CSV a seguir, você pode ver um exemplo de importação de produtos com os campos obrigatórios productDetailUrl, productId, name e unitPrice, junto com outros campos opcionais:

productDetailUrl,productId,name,unitPrice,availability,inStockUnits,brand
https://www.meudominio.com/produtos/SKU-12345,SKU-12345,Tênis de Corrida,39.95,instock,25,Marca Exemplo
https://www.meudominio.com/produtos/SKU-67890,SKU-67890,Tênis Trail,49.95,outofstock,0,Marca Exemplo

11. Crie o script de automação a partir do seu sistema e inclua nele a API Key gerada no PASSO 1.

12. Configure no script uma requisição HTTP POST para o seguinte endpoint: https://api.connectif.cloud/imports/

13. Configure a requisição com os dados necessários para realizar a importação:

  • Indique products como tipo de importação.
  • Informe o delimitador usado no arquivo CSV.
  • Defina se deseja sobrescrever os dados existentes dos produtos.
  • Defina se deseja atualizar apenas os campos que estiverem vazios.
  • Inclua o arquivo CSV que contém os produtos que deseja importar.

14. Execute a requisição para iniciar a importação

Aprenda como elaborar a estrutura completa da requisição na documentação da API.

 

Exemplo 2

Uma vez criada, a requisição terá um aspecto semelhante a este:

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

O script cria uma importação de produtos a partir do arquivo CSV cujo caminho é definido pela variável de ambiente FILE_PATH. Para isso, define products como tipo de importação, usa , como delimitador, sobrescreve os produtos existentes e mantém updateOnlyEmptyFields como false.

O script cria uma importação de produtos a partir do arquivo CSV cujo caminho é definido pela variável de ambiente FILE_PATH. Para isso, define products como tipo de importação, usa , como delimitador, sobrescreve os produtos existentes e mantém updateOnlyEmptyFields como false.

 


Perguntas frequentes

Posso consultar no Connectif as importações realizadas via API?

Sim, o motor de importação é o mesmo utilizado pelo aplicativo Connectif. Portanto, você poderá consultar na lista de importações tanto as feitas via API quanto as feitas diretamente pelo Connectif.

 

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

É possível enfileirar até 10 importações simultaneamente. Ao atingir esse limite, você deverá aguardar a conclusão de uma importação para adicionar outra na fila.

 

Qual é o tamanho máximo do arquivo CSV?

O arquivo CSV pode ter tamanho máximo de 50 MB.

 

Posso excluir uma importação via API?

Atualmente, é possível apagar o histórico de importações apenas nos estados finished ou error.

 

Posso cancelar uma importação via API?

Uma vez carregado o arquivo via API, não é possível cancelar.

 

Sucesso! 
Sua sincronização de produtos via API já está pronta.

 


Continue aprendendo!

Para aproveitar todo o potencial da sua conta no Connectif, recomendamos continuar com os seguintes artigos: