VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

Importação e exportação

Como exportar cadastros em planilha e importar produtos, categorias, características, marcas, clientes e preços por quantidade, com o mapa de todas as rotas.

Importar e exportar em lote é a forma de levar um catálogo inteiro para a Venddor (vindo de uma planilha ou de um ERP) e de tirar os dados da loja para conferir, corrigir fora e subir de novo. Esta seção cobre as rotas simples: uma chamada exporta um arquivo, outra recebe um arquivo e grava os registros. O assistente de importação em etapas, com mapeamento de colunas e predefinições, está em Importação avançada.

Pontos-chave
  • Todas as rotas são da API de administração (/api/v1/admin/...) e exigem Authorization: Bearer <JWT> de um administrador. Cada grupo de rotas pede um privilégio diferente (tabela abaixo).
  • Arquivos aceitos na importação: .csv, .txt, .xml, .xlsx e .xlsm. Qualquer outra extensão volta 415. Planilhas Excel usam só a primeira aba.
  • Valores em planilha são reais em decimal (49,90), não centavos. A exportação de produtos e a importação usam ponto e vírgula como separador e vírgula como decimal.
  • Importações grandes de produtos rodam em segundo plano: a resposta é 202 com um job_id que você consulta até terminar.
  • Toda exportação aceita ?count=1: em vez do arquivo, devolve {"count": N} com o número de linhas que o arquivo teria.

Como funciona

Exportar

Você chama um GET em /api/v1/admin/export/<cadastro> e recebe o arquivo como anexo (Content-Disposition: attachment). O formato padrão é CSV em UTF-8 com BOM, para o Excel abrir os acentos certos. Para receber XLSX ou XLS, mande ?format=xlsx ou ?format=xls. Um valor de format desconhecido cai em CSV.

Os filtros vão na query string. ids aceita uma lista de ids separados por vírgula e exporta só esses registros. status aceita a letra (A, H, D) ou a palavra por extenso em português ou inglês (ativo, oculto, inativo, active...). Uma palavra que a plataforma não conhece volta 400 unknown_record_status, em vez de um arquivo vazio.

Importar

Você envia o arquivo em multipart/form-data, no campo file. A plataforma lê o cabeçalho, detecta o separador (, ou ;), valida linha a linha e grava. O resultado é um resumo (ImportResult) com contagens e a lista de erros por linha. Para produtos, a importação é um upsert pelo SKU: SKU novo cria, SKU existente atualiza.

Baixar o modelo→Preencher a planilha→Pré-visualizar→Importar→Acompanhar o job

Registros e letras de status

Os cadastros guardam o status em uma letra:

LetraSignificadoAparece na loja
AAtivoSim
HOcultoNão
DDesativadoNão

Na importação de produtos, uma célula de status que a plataforma não reconhece não derruba a linha: o produto vira ativo e a linha ganha um aviso no relatório de erros.

Privilégios por grupo de rotas

RotasPrivilégio exigido
Exportar produtos, modelos de produto e categoria, preços por quantidade; importar produtos, imagens em ZIP e preços por quantidademanage_catalog
Exportar e importar categoriasmanage_categories
Exportar e importar características e marcasmanage_features
Exportar e importar usuáriosmanage_users
Exportar pedidosmanage_orders
Exportar páginas e promoçõesmanage_content
Importar XML e importar de uma URLmanage_settings
Consultar job, andamento, cancelar e baixar errosmanage_catalog

Sem o privilégio, a resposta é 403. A exportação de usuários traz CPF e CNPJ: conceda esse privilégio com cuidado.

Conceitos-chave

Separador, decimal e acentos

O modelo de produtos usa ; e vírgula decimal (49,90), o padrão brasileiro do Excel. Os modelos de categorias e promoções usam ,. Na importação, o separador é detectado sozinho. Preços aceitam o prefixo R$ e a vírgula decimal; valores negativos são recusados.

Importação síncrona e assíncrona

A rota de importação de produtos escolhe o caminho pelo tamanho do arquivo. Até 256 linhas de dados e 1 MiB, com as opções padrão, ela grava na hora e devolve 200 com o resumo. Acima disso, ou se você mandar qualquer opção diferente do padrão, ela cria um job e devolve 202. Veja Importar produtos.

Jobs

Um job tem os status pending, processing, completed e failed. Você acompanha pelo andamento, pode cancelar e baixa um CSV com os erros por linha. Veja Jobs de importação.

Datas e filtros de data

date_from e date_to usam YYYY-MM-DD. Se date_from for maior que date_to, a resposta é 400 invalid_date_range.

Endpoints

MétodoCaminhoPara que serveAuth
GET/api/v1/admin/export/productsExporta produtosadmin
GET/api/v1/admin/export/categoriesExporta categoriasadmin
GET/api/v1/admin/export/featuresExporta característicasadmin
GET/api/v1/admin/export/brandsExporta marcasadmin
GET/api/v1/admin/export/qty-discountsExporta preços por quantidadeadmin
GET/api/v1/admin/export/usersExporta usuáriosadmin
GET/api/v1/admin/export/ordersExporta pedidosadmin
GET/api/v1/admin/export/pagesExporta páginas de conteúdoadmin
GET/api/v1/admin/export/promotionsExporta promoçõesadmin
GET/api/v1/admin/export/products/templateBaixa o modelo de produtosadmin
GET/api/v1/admin/export/categories/templateBaixa o modelo de categoriasadmin
GET/api/v1/admin/export/features/templateBaixa o modelo de característicasadmin
GET/api/v1/admin/export/brands/templateBaixa o modelo de marcasadmin
GET/api/v1/admin/export/qty-discounts/templateBaixa o modelo de preços por quantidadeadmin
GET/api/v1/admin/import/products/templateBaixa o modelo de importação de produtosadmin
POST/api/v1/admin/import/products/previewSimula a importação sem gravar produtosadmin
POST/api/v1/admin/import/productsImporta produtos de um arquivo ou de uma URLadmin
GET/api/v1/admin/import/jobs/{id}Consulta um job de importaçãoadmin
GET/api/v1/admin/import/jobs/{id}/progressAndamento resumido do jobadmin
POST/api/v1/admin/import/jobs/{id}/cancelPede o cancelamento do jobadmin
GET/api/v1/admin/import/jobs/{id}/errors.csvBaixa os erros por linhaadmin
POST/api/v1/admin/import/categoriesImporta categoriasadmin
POST/api/v1/admin/import/featuresImporta característicasadmin
POST/api/v1/admin/import/brandsImporta marcasadmin
POST/api/v1/admin/import/usersImporta usuáriosadmin
POST/api/v1/admin/import/qty-discountsImporta preços por quantidade (assíncrono)admin
POST/api/v1/admin/import/product-images-zipImporta imagens de produtos de um ZIPadmin
POST/api/v1/admin/import/xmlEnvia um XML para o assistente de importaçãoadmin
POST/api/v1/admin/import/from-urlBaixa um arquivo de uma URL para o assistenteadmin

Erros comuns

  • Mandar o arquivo no campo errado: o campo precisa se chamar file. Qualquer outro nome volta 400 missing file field in form.
  • Mandar preço em centavos numa planilha: 4990 é lido como R$ 4.990,00. Planilhas usam reais (49,90).
  • Importar produto sem vendor_id: produto novo exige o seller. Sem ele, a linha é recusada.
  • Esperar arquivo vazio de uma exportação filtrada por uma palavra de status inventada: a API recusa com 400, mas uma letra solta (Z) passa direto e devolve um arquivo só com o cabeçalho.
  • Tratar 202 como "terminou": 202 só diz que o job começou. Consulte o job até completed ou failed.
  • Ler o corpo de um erro de exportação como arquivo: quando falha antes de escrever, o corpo é JSON ({"error", "detail"}).
  • Reenviar a mesma planilha de preços por quantidade esperando duplicar: o modo padrão (merge) atualiza as faixas existentes.

Próximos passos

Importar produtos
Pré-visualizar, importar e usar o modelo.
Jobs de importação
Andamento, cancelamento e relatório de erros.
Importação avançada
Mapeamento de colunas e predefinições.
Erros da API
Formatos de erro e códigos de status.
Anterior
Modificadores de dados
Próxima
Exportar catálogo
Nesta página
  • Como funciona
  • Exportar
  • Importar
  • Registros e letras de status
  • Privilégios por grupo de rotas
  • Conceitos-chave
  • Separador, decimal e acentos
  • Importação síncrona e assíncrona
  • Jobs
  • Datas e filtros de data
  • Endpoints
  • Erros comuns
  • Próximos passos