Documents
A query Documents retorna os documents de uma entidade, paginados por cursor, com no máximo 50 itens por página.
A paginação segue o padrão de conexões do Storefront API: os cursores (after/before) são a hash do document e a ordenação é crescente pelo identificador do document, ou seja, na ordem em que os documents foram criados.
A query também aceita filtros opcionais por identificador externo e por data de cadastro.
Parâmetros
| Argumento | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| entityName | String | Sim | Nome da entidade. Não diferencia maiúsculas de minúsculas |
| first | Int | Sim* | Quantidade de itens a retornar, a partir do início da página. Máximo de 50 |
| last | Int | Sim* | Quantidade de itens a retornar, a partir do fim da página. Máximo de 50. Exige before |
| after | String | Não | Cursor de avanço: retorna os documents posteriores ao cursor informado |
| before | String | Não | Cursor de retorno: retorna os documents anteriores ao cursor informado |
| fields | [String] | Não | Campos a incluir no data. Quando omitido, retorna todos os campos públicos do document |
| externalIds | [String] | Não | Filtra pelos identificadores externos dos documents. Máximo de 50 valores |
| createdAt_gte | String | Não | Limite inferior da data de cadastro, em UTC, inclusive |
| createdAt_lte | String | Não | Limite superior da data de cadastro, em UTC, inclusive |
*Informe first ou last — um dos dois é obrigatório.
Combinações inválidas de paginação
firstelastjuntos;afterebeforejuntos;lastsembefore;firstcombefore;lastcomafter;- nem
firstnemlast.
Sobre o argumentofieldsOs campos pedidos que não existirem no document — ou que não forem públicos — são retornados como
null, e não omitidos. Quandofieldsé omitido, todos os itens da página são normalizados com o mesmo conjunto de campos, preenchendo comnullos que faltarem em cada document.
Filtros
Os três filtros são opcionais e combinados entre si — e com os argumentos de paginação — por E (AND): o document precisa satisfazer todos os filtros informados para aparecer na página. Quando nenhum é enviado, a query se comporta exatamente como antes da introdução deles.
Reenvie os filtros a cada páginaOs cursores carregam apenas a posição, não o critério. Pedir a página seguinte informando somente o
afterdevolve uma consulta sem filtros, sem erro algum. Ao paginar um resultado filtrado, reenvieexternalIds,createdAt_gteecreatedAt_lteem todas as chamadas.
externalIds
externalIdsFiltra pelo identificador que o document tem no sistema de origem da loja (externalId, definido na criação pela API Pública).
- Aceita até 50 valores por chamada. Acima disso, a query retorna o erro
WDC106; - Valores vazios ou compostos apenas de espaços em branco são descartados;
- Documents sem identificador externo nunca são retornados quando o filtro é informado;
- Um valor sem correspondência não é erro: ele simplesmente não traz resultado.
O identificador externo é apenas critério de buscaO
externalIdnão é exposto no nó retornado. Como ele é único entre os documents ativos da entidade, filtrar por um único valor devolve no máximo um document. Ao filtrar por vários valores, os documents retornados só podem ser distinguidos entre si se o próprio conteúdo do document publicar o identificador como campo público.
createdAt_gte e createdAt_lte
createdAt_gte e createdAt_lteDelimitam a data de cadastro do document, interpretada em UTC e sempre inclusive. São strings — e não um escalar de data — justamente para preservar a diferença entre uma data pura e uma data com horário. São aceitos:
| Formato | Exemplo | Interpretação |
|---|---|---|
| Data pura | 2026-08-31 | Ver a regra do dia inteiro abaixo |
| Data com horário, sem fuso | 2026-08-31T10:30:00 | Assumida como UTC |
| Data com horário e sufixo Z | 2026-08-31T10:30:00Z | UTC |
| Data com offset explícito | 2026-08-31T10:30:00-03:00 | Convertida para UTC (13:30:00 em UTC) |
Data pura x data com horário
createdAt_gtecomo data pura considera o início daquele dia;createdAt_ltecomo data pura cobre o dia inteiro — um document cadastrado em2026-08-31T09:00:00Zentra no resultado decreatedAt_lte: "2026-08-31";createdAt_ltecom horário vale pelo instante exato informado — o mesmo document não entra no resultado decreatedAt_lte: "2026-08-31T00:00:00".Um valor em formato não aceito — ou ambíguo entre culturas, como
31/08/2026— retorna o erroWDC106, com o motivo na extensãodetail.
Campos de retorno
| Campo | Tipo | Descrição |
|---|---|---|
| edges | [DocumentValueNodeEdge] | Itens da página, cada um com o cursor e o node |
| edges.cursor | String | Cursor do item, igual ao id do document |
| edges.node.id | String | Identificador do document, em hash |
| edges.node.data | Any | O document em JSON, com os campos públicos projetados |
| nodes | [DocumentValueNode] | Atalho para os nós da página, sem os cursores |
| pageInfo.hasNextPage | Boolean | Indica se existem documents após a página atual |
| pageInfo.hasPreviousPage | Boolean | Indica se existem documents antes da página atual |
| pageInfo.startCursor | String | Cursor do primeiro item da página. null quando a página é vazia |
| pageInfo.endCursor | String | Cursor do último item da página. null quando a página é vazia |
Exemplo
query {
documents(entityName: "ficha-tecnica", first: 2) {
edges {
cursor
node {
id
data
}
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}Mostrar resposta
{
"data": {
"documents": {
"edges": [
{
"cursor": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDF9",
"node": {
"id": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDF9",
"data": {
"sku": "ABC-123",
"cor": "Azul"
}
}
},
{
"cursor": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDJ9",
"node": {
"id": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDJ9",
"data": {
"sku": "DEF-456",
"cor": "Preto"
}
}
}
],
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": false,
"startCursor": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDF9",
"endCursor": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDJ9"
}
}
}
}Exemplo com after e fields
after e fieldsPara avançar para a próxima página, envie em after o endCursor da página anterior enquanto hasNextPage for true:
query {
documents(
entityName: "ficha-tecnica"
first: 2
after: "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDJ9"
fields: ["sku", "custo"]
) {
nodes {
id
data
}
pageInfo {
hasNextPage
endCursor
}
}
}Mostrar resposta
{
"data": {
"documents": {
"nodes": [
{
"id": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDN9",
"data": {
"sku": "GHI-789",
"custo": null
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDN9"
}
}
}
}No exemplo acima,
custoretornanullporque a propriedade não é pública (publicView: false) na entidade.
Exemplo com filtros
Documents cadastrados em agosto de 2026 cujo identificador externo seja ERP-0001 ou ERP-0003:
query {
documents(
entityName: "ficha-tecnica"
first: 10
externalIds: ["ERP-0001", "ERP-0003"]
createdAt_gte: "2026-08-01"
createdAt_lte: "2026-08-31"
) {
nodes {
id
data
}
pageInfo {
hasNextPage
endCursor
}
}
}Mostrar resposta
{
"data": {
"documents": {
"nodes": [
{
"id": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDF9",
"data": {
"sku": "ABC-123",
"cor": "Azul"
}
},
{
"id": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDN9",
"data": {
"sku": "GHI-789",
"cor": "Verde"
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": "eyJFbnRpdHkiOiJEb2N1bWVudFZhbHVlIiwiSWQiOjQ1MDN9"
}
}
}
}Para pedir a página seguinte deste mesmo resultado, envie o
endCursoremaftere reenvie os três filtros.
Updated 15 days ago

