Importar em etapas
Envia a planilha, valida o mapeamento, executa a importação de produtos e acompanha o andamento.
As quatro chamadas abaixo formam o fluxo completo. Guarde o job_id do primeiro passo: ele identifica a importação em todos os outros.
1. Enviar
/api/v1/vendor/import/uploadSellerEnviar a planilha
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Corpo da requisição (multipart/form-data)
filefileobrigatório.csv, .txt, .xml, .xlsx ou .xlsm. Formulário de até 64 MB. O delimitador (; ou ,) é detectado sozinho.object_typestringpadrão: productsproducts é aceito.Exemplo de requisição (enviar)
Resposta (enviar)
Campos da resposta
job_idstring (uuid)validate, execute e status.file_namestringtotal_rowsintegercsv_columnsarray of stringdetected_delimiterstringpreview_rowsarrayauto_mappingobjectcoluna para campo. Pode conter erros: revise.available_fieldsarraykey, label, label_pt e fields[] (key, required, field_type, default_value...).Erros (enviar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_import_products"]} |
| 400 | Falta file, formulário inválido, object_type diferente de products, planilha vazia ou inválida. | {"error":"vendor imports limited to products","detail":"users"} |
| 415 | Extensão não aceita. | {"error":"unsupported file type","detail":"only CSV, XLSX and XML files are accepted (got \".pdf\")"} |
2. Validar
Percorre todas as linhas aplicando o mapeamento e classifica cada uma como criar, atualizar ou ignorar. Não grava produtos. Guarda o mapeamento e as opções no trabalho.
/api/v1/vendor/import/validateSellerValidar o mapeamento
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Corpo da requisição
job_idstring (uuid)obrigatórioupload.field_mappingobjectobrigatório{"<nome da coluna na planilha>": "<campo da plataforma>"}. Colunas não mapeadas são ignoradas.optionsobjectOpções da importação.
strategystringpadrão: import_allimport_allupdate_existingcreate_newimport_all cria e atualiza; update_existing só atualiza; create_new só cria.update_existingbooleanskip_errorsbooleandelimiterstringcreate_categoriesbooleancategory_delimiterstringpadrão: ///category_path.price_formatstringpadrão: autoautodecimalcentsExemplo de requisição (validar)
Resposta (validar)
Campos da resposta
job_idstring (uuid)total_rowsintegerwill_createintegerwill_updateintegerwill_skipintegermoderation_countintegervalidbooleanfalse se há erro que impede a execução.fatalbooleantrue quando a execução não deve nem começar (por exemplo, linha em branco).errorsarrayrow, field, message.warningsarrayErros (validar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_import_products"]} |
| 400 | job_id ou field_mapping ausentes, ou corpo inválido. | {"error":"field_mapping is required"} |
| 500 | Importação inexistente ou arquivo já apagado. | {"error":"validation failed","detail":"..."} |
3. Executar
Grava os produtos. Até 1.000 linhas a chamada espera o fim e devolve as contagens finais; acima disso a importação roda em segundo plano e a resposta traz status: "processing". O vendor_id é sempre o seu.
/api/v1/vendor/import/executeSellerExecutar a importação
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Corpo da requisição
job_idstring (uuid)obrigatórioupload.field_mappingobjectobrigatório{"<nome da coluna na planilha>": "<campo da plataforma>"}. Colunas não mapeadas são ignoradas.optionsobjectAs mesmas opções de validate, mais as abaixo.
strategystringpadrão: import_allimport_allupdate_existingcreate_newupdate_existingbooleanskip_errorsbooleancreate_categoriesbooleancategory_delimiterstringprice_formatstringautodecimalcentsdry_runbooleanpadrão: falsetrue roda tudo e conta, mas não grava nada.data_modifiersarrayTransformações de valor por campo, aplicadas antes de gravar. Entram na ordem enviada e só valem para o campo indicado em field_key.
field_keystringobrigatóriofield_mapping, por exemplo price). Funciona em campos de valor único, como sku, name, price, quantity, barcode, description e weight.typestringobrigatóriononepercent_markuppercent_discountfixed_addfixed_subtracttext_prefixtext_suffixtext_replaceset_valueroundmultiplyerrors e o valor original é mantido.valuestringvalue2stringtext_replace.Exemplo de requisição (executar)
Resposta (executar)
Campos da resposta
job_idstring (uuid)statusstringcompleted ou processing.total_rowsintegerprocessed_rowsintegercreated_countintegerupdated_countintegerskipped_countintegermoderation_countintegererrorsarrayrow, field, message.warningsarrayimage_stored_countintegerimage_skipped_countintegerimage_failed_countintegerErros (executar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_import_products"]} |
| 400 | job_id ou field_mapping ausentes; planilha sem coluna de identidade; coluna obrigatória faltando. | {"error":"missing_required_column","detail":"missing required column: price"} |
| 500 | Importação inexistente, ou falha geral na execução. | {"error":"import execution failed","detail":"..."} |
4. Acompanhar
/api/v1/vendor/import/status/{id}SellerAcompanhar a importação
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatóriojob_id) devolvido pelo envio.Exemplo de requisição (acompanhar)
Resposta (acompanhar)
Campos da resposta
(campos)objectexecute, com status entre pending, processing, completed e failed.Erros (acompanhar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_import_products"]} |
| 404 | Importação inexistente. | {"error":"import job not found","detail":"..."} |