Fala pessoas, recentemente andei apanhando para fazer upload de arquivo no master data da vtex. Dei uma caçada aqui na comunidade e não achei como fazer. Então segue aí o caminho das pedras. Não vou ser muito detalhado, pois estou no corre aqui.
Gravando dados
Para quem já salvou dados no master data, segue os mesmos passos e mesma API, só que a diferença que o campo file, deve ir vazio. Ao salvar e obter a resposta de sucesso pegar o ID do documento e chamar api de attachment seguindo o exemplo abaixo.
Upload do Arquivo
Enviar para API: http://api.vtex.com/{{accountName}}/dataentities/{{acronym}}/documents/{{id}}/{{field}}/attachments substituindo pelos seus dados.
{{id}} é o id do documento que criamos no passo anterior
{{field}} é o nome do campo que irá receber o arquivo no master data.
Agora vamos ao JS
/*
Iniciando o FormData para construir os valores e dados
*/
var data = new FormData(document.getElementById(idForm));
/*
Acrescentando um novo valor em uma chave existente dentro de um objeto FormData, ou adiciona a chave se ela ainda não existir.
value é padrão da vtex
*/
data.append('value', $('input#fieldId)[0].files[0]);
/*
Agora o ajax para fazer o upload.
*/
$.ajax({
url: '//api.vtex.com/{{accountName}}/dataentities/{{acronym}}/documents/{{id}}/{{field}}/attachments',
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
},
success: function (data, textStatus, request) {
},
error: function (data, textStatus, request) {
}
});
Bem, é isso qualquer duvida só falar. Foi a forma que achei para fazer isso aqui.
Abraço