Tema, CSS e ícone do app
Lê as cores, fontes e medidas da loja, as mesmas como variáveis de CSS prontas, e o ícone PNG usado quando a loja é instalada como aplicativo.
O tema é a identidade visual da loja: paleta de cores, fontes, arredondamento, largura máxima, logotipo. Estas três rotas entregam esses dados de três jeitos: como objeto completo (theme), como variáveis de CSS prontas (theme/css) e como imagem do ícone do aplicativo (pwa/icon/{size}). As três são públicas e não exigem login.
Ler o tema
/api/v1/storefront/themePúblicaConsulta o tema da vitrine
Devolve o tema atual. Quando a loja tem um tema ativo, as cores, fontes, arredondamento, largura e CSS próprio vêm do estilo ativo daquele tema (e sobrepõem os valores gerais), e active_theme_slug identifica o tema. Resposta sem cache.
Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/theme"Resposta
{
"id": "20299fa2-f761-434f-aa54-811e242f65a3",
"logo_url": "/uploads/dfe2555e/theme/logo/8034a261_logo-v1.png",
"favicon_url": "",
"store_name": "Loja de Demonstração Venddor",
"primary_color": "#2563eb",
"secondary_color": "#2563eb",
"accent_color": "#f59e0b",
"bg_color": "#ffffff",
"text_color": "#1f2937",
"header_bg_color": "#ffffff",
"footer_bg_color": "#2563eb",
"link_color": "#2563eb",
"link_hover_color": "#1f54c8",
"heading_color": "#1f2937",
"muted_text_color": "#797f87",
"border_color": "#e5e7eb",
"button_text_color": "#ffffff",
"font_family": "Inter, sans-serif",
"heading_font": "Inter, sans-serif",
"border_radius": "8px",
"max_width": "1280px",
"custom_css": "",
"custom_head_html": "",
"font_size_base": "16px",
"font_size_lg": "20px",
"font_size_sm": "14px",
"line_height_base": "1.6",
"heading_weight": "800",
"header_layout": "left",
"footer_columns": 4,
"sidebar_position": "left",
"extended_config": {},
"pwa_enabled": true,
"pwa_short_name": "",
"active_theme_slug": "default",
"updated_at": "2026-09-06T05:23:00.918969Z"
}Campos da resposta
iduuidlogo_urlstring/uploads/ e são relativos ao domínio da loja.favicon_urlstringstore_namestringprimary_colorstring#2563eb).secondary_colorstringaccent_colorstringbg_colorstringtext_colorstringheader_bg_colorstringfooter_bg_colorstringlink_colorstringlink_hover_colorstringheading_colorstringmuted_text_colorstringborder_colorstringbutton_text_colorstringfont_familystringfont-family).heading_fontstringborder_radiusstring8px).max_widthstring1280px).font_size_basestringfont_size_lgstringfont_size_smstringline_height_basestringheading_weightstringcustom_cssstringstyle.custom_head_htmlstringhead da página.header_layoutstringleftcenteredfooter_columnsinteger234sidebar_positionstringleftrightnoneextended_configobjectpwa_enabledbooleanpwa_short_namestringactive_theme_slugstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 404 | Loja não identificada | {"error":"tenant not found","message":"could not resolve storefront from request"} |
| 500 | Falha ao ler | {"error":"failed to get theme","detail":"..."} |
Ler as variáveis de CSS
/api/v1/storefront/theme/cssPúblicaRead the theme as CSS custom properties
Devolve o mesmo tema em forma de variáveis de CSS: um mapa pronto (variables) e um bloco de texto (css) com :root { ... } para colar numa tag style. É o jeito mais curto de aplicar a paleta, sem você montar os nomes.
Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/theme/css"Resposta
{
"variables": {
"--border-radius": "8px",
"--color-accent": "#f59e0b",
"--color-bg": "#ffffff",
"--color-border": "#e5e7eb",
"--color-button-text": "#ffffff",
"--color-footer-bg": "#2563eb",
"--color-header-bg": "#ffffff",
"--color-heading": "#1f2937",
"--color-link": "#2563eb",
"--color-link-hover": "#1f54c8",
"--color-muted-text": "#797f87",
"--color-primary": "#2563eb",
"--color-secondary": "#2563eb",
"--color-text": "#1f2937",
"--font-family": "Inter, sans-serif",
"--font-heading": "Inter, sans-serif",
"--font-size-base": "16px",
"--font-size-lg": "20px",
"--font-size-sm": "14px",
"--heading-weight": "800",
"--line-height-base": "1.6",
"--max-width": "1280px"
},
"css": ":root {\n --color-link: #2563eb;\n --color-primary: #2563eb;\n ...\n}"
}Campos da resposta
variablesobjectnome da variável para valor. Os nomes começam com --.cssstring:root. O exemplo acima está abreviado.Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao calcular | {"error":"failed to compute CSS vars","detail":"..."} |
Ícone do aplicativo
/api/v1/storefront/pwa/icon/{size}PúblicaConsulta o ícone do app em PNG
Gera o ícone usado quando a loja é instalada como aplicativo (PWA) ou fixada na tela inicial: o logotipo da loja centralizado sobre a cor de fundo do tema, com uma margem de segurança de 12% para ícones arredondados. Se a loja não tem logotipo utilizável, devolve um ícone padrão. A resposta é uma imagem PNG, não JSON, com cache público de 5 minutos.
Parâmetros de caminho
sizeintegerobrigatório192512192 e 512 existem; qualquer outro valor responde 404.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/pwa/icon/192" -o icon-192.pngResposta
HTTP/1.1 200 OK
Content-Type: image/png
Cache-Control: public, max-age=300
<bytes do PNG>Erros
| Status | Quando | Corpo |
|---|---|---|
| 404 | size diferente de 192 ou 512 | 404 page not found (texto simples) |