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

Formato do card

O JSON (spec) que define um card de dashboard: tipos, gráficos, métricas, dimensões, filtros, períodos e limites.

A spec é o documento JSON que define um card. Ela é guardada em spec no card e enviada nas rotas de criar card, preview e gerar por texto. Cada nível é estrito: um campo que não existe aqui é recusado com unknown_field, em vez de ser ignorado.

Campos da spec

CampoTipoObrigatórioDescrição
spec_versioninteirosimSempre 1. Outro valor é recusado com invalid_spec_version.
kindtextosimquery, sql, component, service ou text.
titletextosimTítulo do card.
subtitletextonãoSubtítulo.
vizobjetosimComo desenhar (abaixo).
queryobjetocom kind=queryA consulta (abaixo).
sqlobjetocom kind=sqltext (até 8000 caracteres), params, column_hints, vendor_scope. No painel do seller vendor_scope.mode precisa ser guc.
componentobjetocom kind=componentcomponent_id de uma lista fixa do painel.
serviceobjetocom kind=serviceservice_id de uma lista fixa e args (por exemplo limit).
textobjetocom kind=textcontent (até 4000 caracteres), format (markdown ou plain), align (start ou center).

viz: o desenho

CampoDescrição
typekpi, line, area, bar, hbar, stacked_bar, pie, donut, table, heatmap, gauge, sparkline, funnel, treemap, map_br, scatter, combo, pivot, text, vi_insight ou native.
snippet_idObrigatório. Identificador estável do card: letras minúsculas, números e hífen, de 2 a 63 caracteres, começando por letra ou número. Não mude ao renomear o título.
number_formatstyle (currency_cents, percent, integer, decimal, compact, duration_days, percent_of_total) e decimals.
legend, palette, colors, data_labels, icon, accent, thresholds, compare_displayApresentação. legend: top, bottom, left, right, hidden. palette: brand, categorical, sequential, diverging, custom. colors e accent são hexadecimais #RRGGBB.

Gráficos pie, donut, bar, hbar, stacked_bar, line e area exigem ao menos uma dimensão na consulta; heatmap exige duas. Sem isso a spec é recusada, porque o gráfico sairia sempre vazio.

query: a consulta

CampoDescrição
entityEntidade do catálogo, como orders, order_items, products, return_requests. A lista vem de Catálogo.
periodmode (inherit, preset, fixed, relative) com preset, from/to (YYYY-MM-DD), last_n_days (1 a 1095) e field (qual campo de data usar).
comparemode: none, previous_period ou previous_year.
metricsAté 8. Cada uma tem id e um kind: catalog (ref como orders.revenue), agg (agg de count, count_distinct, sum, avg, min, max sobre um field), ratio (num e den apontando métricas anteriores, scale raw ou percent) ou constant (value).
dimensionsAté 3. id, field e, para datas, grain (hour, day, week, month, quarter, year) e fill_gaps.
filterÁrvore de filtros: grupos {op, nodes} (com op igual a and ou or) e comparações {field, cmp} mais value, values ou right_field. Até 3 níveis e 40 nós. cmp: eq, ne, gt, gte, lt, lte, between (2 valores), in/not_in (1 a 20 valores), contains, not_contains, starts_with, ends_with, is_null, is_not_null, last_n_days, next_n_days, overdue.
orderAté 2 itens {by, dir}; by é o id de uma métrica ou dimensão, dir é asc ou desc.
limitAté 1000 linhas.
other_bucketAgrupa o excedente do limit numa linha "outros".
drill_downdetail_entity e path (ids de dimensões): o que abrir ao clicar num ponto.
postAté 6 pós-processamentos sobre uma métrica: cumulative, moving_avg (com window), percent_of_total, rank, cada um com output_id.

Cada métrica de catálogo ligada a status de pedido (por exemplo orders.revenue) aceita status_scope: {"mode": "store_default" | "custom", "include": ["codigo-do-status", ...]}. Se você não enviar, a plataforma preenche com a regra atual da loja ao salvar.

Exemplo completo

json
{
  "spec_version": 1,
  "kind": "query",
  "title": "Receita por dia",
  "viz": {
    "type": "line",
    "snippet_id": "receita-por-dia",
    "number_format": { "style": "currency_cents" }
  },
  "query": {
    "entity": "orders",
    "period": { "mode": "relative", "last_n_days": 7 },
    "metrics": [{ "id": "receita", "kind": "catalog", "ref": "orders.revenue" }],
    "dimensions": [{ "id": "dia", "field": "orders.created_at", "grain": "day" }],
    "order": [{ "by": "dia", "dir": "asc" }],
    "limit": 100
  }
}
Erros de validação

Uma spec inválida volta como 422 com {"error":"invalid card spec","detail":"codigo: mensagem (at caminho)"}. O codigo é estável (unknown_field, invalid_spec_version, invalid_period, invalid_operator...), o caminho aponta o campo.

Veja também

  • Catálogo
  • Executar dados
  • Cards
Anterior
Dashboards do seller
Próxima
Abas
Nesta página
  • Campos da spec
  • viz: o desenho
  • query: a consulta
  • Exemplo completo
  • Veja também