Document Wake - visão geral
O Storefront API permite consultar e manter os documents da loja — dados estruturados próprios, definidos pelo lojista e validados por um JSON Schema — diretamente pelo GraphQL, sem passar pela API Pública.
O recurso é composto por dois conceitos:
- Entidade de document — a definição do dado: o nome da entidade, o
schemaque descreve o formato dos documents e as permissões de acesso público; - Document — o dado em si, gravado em JSON e validado contra o
schemada entidade. - Arquivo do document — imagem ou PDF anexado ao document. Fica fora do JSON e não é validado contra o
schema.
Pelo Storefront API são expostos apenas os documents. A criação e a manutenção das entidades são feitas pela API Pública — veja Document Wake na seção API Pública.
Operações disponíveis
| Operação | Tipo | Descrição |
|---|---|---|
documents | query | Lista os documents de uma entidade, paginados por cursor |
document | query | Retorna um document pelo seu id |
documentCreate | mutation | Cria um document em uma entidade, com um arquivo opcional. |
documentUpdate | mutation | Atualiza o conteúdo de um document e, opcionalmente, substitui o arquivo. |
documentDelete | mutation | Remove um document e o seu arquivo. |
documentsSearch | query | Busca documents de uma entidade por condições sobre o conteúdo |
Permissões da entidade
O Storefront API acessa os documents como consumidor público. Isso significa que a entidade precisa liberar explicitamente cada operação, e que os documents retornam apenas os campos marcados como públicos:
publicOperations— a entidade declara quais operações são públicas (CREATE,READ,UPDATE,DELETE). Uma operação não declarada retorna o erroWDC103;publicView— cada propriedade doschemadeclara se é visível publicamente. Apenas as propriedades compublicView: trueaparecem no campodatados documents retornados.- O arquivo segue as permissões do document: anexar exige
CREATEouUPDATE, e ler exigeREAD. Não hápublicViewpara arquivo: sempre que o document é legível, a URL aparece emfiles.
As permissões são configuradas na entidade, pela API Pública. Se uma consulta retornaWDC103ou traz menos campos do que o esperado, verifique opublicOperationse opublicViewda entidade.
Além das permissões da entidade, a funcionalidade de documents precisa estar habilitada para a loja. Quando não está, todas as queries e mutations retornam o erroWDC105, independentemente dopublicOperations.
O identificador dos documents
O id de um document é exposto como uma hash (padrão de identificação global do Storefront API), e não como um número:
eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDF9
Essa mesma hash é usada como cursor na paginação da query documents e como argumento id em document, documentUpdate e documentDelete. Uma hash inválida ou de outra entidade retorna o erro Identificador de documento inválido.
O campo data
dataO conteúdo do document é retornado no campo data, um escalar dinâmico (Any): ele carrega o objeto JSON do document e, por isso, não recebe seleção de subcampos na query. O id fica sempre fora do data, no nível do nó.
Para limitar o retorno a campos específicos, use o argumento fields, disponível em documents e document.
O campo files
filesO campo files traz os arquivos anexados ao document, numa lista de DocumentFileNode com url e createdAt. Ele fica ao lado de data, e não dentro.
- Quando o document não tem arquivo, a lista vem vazia ( [ ] ), nunca
null;
filesnão é afetado porfieldsnem porpublicView;createdAté a data em que o arquivo foi vinculado ao document, em UTC;- Na query
documentsSearch, a lista vem sempre vazia; - Use a
urlexatamente como retornada.
Arquivos do document
documentCreate e documentUpdate aceitam um arquivo opcional no argumento file.
| Regra | Valor |
|---|---|
| Formatos aceitos | jpg, jpeg, png, gif, webp e pdf, sem diferenciar maiúsculas |
| Tamanho máximo | 5 MB |
| Arquivos por document | 1 |
Limite de tamanho do documentO conteúdo do document é limitado a 2.000 caracteres de JSON, validado na criação e na atualização. Um
valueacima do limite retornaWDC101, com o motivo na extensãodetaildo erro. O limite é verificado antes da validação contra oschema.
O limite vale apenas para o JSON devalue. O arquivo tem limite próprio, de 5 MB.
Filtrando a listagem
A query documents aceita, além dos argumentos de paginação, três filtros opcionais: externalIds, createdAt_gte e createdAt_lte. Eles são combinados entre si e com a paginação por E (AND), e precisam ser reenviados a cada página — os cursores carregam apenas a posição, não o critério.
Veja os detalhes em Documents.
OexternalIdde um document é apenas critério de busca no Storefront API: ele não é exposto no nó retornado. Filtrar por um único valor devolve no máximo um document, já que o identificador é único entre os documents ativos da entidade; filtrar por vários valores devolve documents que só podem ser distinguidos entre si se o próprio conteúdo do document publicar o identificador como campo público.
Exemplo utilizado nesta seção
Os exemplos a seguir usam uma entidade chamada ficha-tecnica, que libera as quatro operações públicas e cujo schema declara três propriedades:
| Propriedade | Tipo | publicView |
|---|---|---|
sku | string | true |
cor | string | true |
custo | number | false |
Como custo não é público, ele nunca aparece no data retornado pelo Storefront API.
Códigos de erro
Os erros seguem o padrão do Storefront API: a operação retorna null (ou isSuccess: false, em documentDelete) e o detalhamento vem no array errors, com o código em extensions.code.
| Código | Mensagem | Descrição |
|---|---|---|
WDC101 | Documento inválido | O document não é um objeto JSON válido, excede 2.000 caracteres ou não atende ao schema da entidade ou o arquivo foi recusado pelo serviço de arquivos (tipo não aceito, conteúdo que não corresponde à extensão ou tamanho acima do máximo |
WDC102 | Ocorreu um erro ao acessar os documentos | Erro genérico ou serviço de documents indisponível |
WDC103 | Operação não permitida para esta entidade | A operação não está declarada em publicOperations |
WDC104 | Documento ou entidade não encontrado | A entidade ou o document informado não existe |
WDC105 | A funcionalidade documents não está habilitada para a loja | A loja não tem o recurso de documents habilitado. Vale para todas as operações, mesmo as declaradas em publicOperations |
WDC106 | Filtro de documentos inválido | Filtro ou cursor inválido na listagem: data em formato não aceito ou ambíguo (31/08/2026), mais de 50 valores em externalIds, ou cursores conflitantes |
| WDC107 | A busca de documentos está temporariamente indisponível | O índice de busca está indisponível. Ocorre apenas em documentsSearch |
| WDC108 | Arquivo inválido | Arquivo recusado antes do envio: vazio, sem extensão, com extensão não aceita ou acima de 5 MB. O motivo vem na extensão detail |
| WDC109 | O serviço de arquivos está indisponível | O armazenamento de arquivos está indisponível. Ocorre apenas em escritas com arquivo; a mesma operação sem arquivo pode ser feita |
WDC200 | A requisição excedeu o tempo esperado | Tempo limite excedido na consulta aos documents |
WDC101xWDC106Os dois correspondem a um
400do serviço de documents, mas apontam consertos diferentes: oWDC101diz que o problema está no document enviado, e oWDC106que está nos parâmetros de busca da listagem — que não envia document nenhum. A mensagem específica, que diz qual filtro está errado, vem na extensãodetail.
WDC108 x WDC101Em arquivos: o
WDC108verifica nome e tamanho do arquivo; oWDC101com motivo de arquivo indica que o conteúdo não corresponde à extensão, como um PDF renomeado para.png.
WDC109 x WDC102Com
WDC102, nenhuma operação de document funciona; comWDC109, só o envio de arquivo está impedido.
Exemplo de resposta com WDC108
{
"errors": [
{
"message": "Arquivo inválido",
"path": ["documentCreate"],
"extensions": {
"code": "WDC108",
"detail": "Extensão \"svg\" não permitida. Aceitos: jpg, jpeg, png, gif, webp, pdf."
}
}
],
"data": {
"documentCreate": null
}
}Nas operações de criação e atualização, quando o document viola o schema da entidade, a extensão detail traz a violação específica:
{
"errors": [
{
"message": "Documento inválido",
"path": ["documentCreate"],
"extensions": {
"code": "WDC101",
"detail": "O documento não está de acordo com o schema da entidade: /custo Value is \"string\" but should be \"number\""
}
}
],
"data": {
"documentCreate": null
}
}Na listagem, a extensão detail é o que distingue um filtro de data malformado de um excesso de valores em externalIds:
{
"errors": [
{
"message": "Filtro de documentos inválido",
"path": ["documents"],
"extensions": {
"code": "WDC106",
"detail": "O filtro createdTo não corresponde a um formato de data aceito."
}
}
],
"data": {
"documents": null
}
}Consulte também Códigos de erros mapeados na API.
Utilização da funcionalidadePara utilizar o Document Wake, solicite o acesso via chamado ou entre em contato com o seu Customer Success.
Demais documentações:
https://wakecommerce.readme.io/docs/document
https://wakecommerce.readme.io/docs/documents
https://wakecommerce.readme.io/docs/documentcreate
https://wakecommerce.readme.io/docs/documentupdate
https://wakecommerce.readme.io/docs/documentdelete
Updated 4 days ago

