common.graphql
Arquivocommon
common
Dentro da pasta Queries existe um arquivo chamado common.graphql. As queries colocadas dentro desse arquivo são executadas em todas as renderizações de páginas, respeitando-se nossos tempos de cache*.
O objetivo do common.graphql
é centralizar consultas GraphQL que precisam estar disponíveis em todas as páginas.
Assim, evita-se repetir queries idênticas em vários arquivos e garante-se que informações essenciais estejam sempre carregadas, evitando duplicações.
Exemplos comuns de uso:
- Menus e grupos de menus para navegação;
- Scripts customizados por tipo de página;
- Configurações globais da loja, como IDs do Google Tag Manager ou Google Analytics
Entre outras informações que irão aparecer sempre em todas as páginas.
Estrutura e funcionamento
- Localização:
Queries/common.graphql
- Nome fixo: o arquivo deve se chamar exatamente
common.graphql
- Execução: é carregado automaticamente para todas as páginas
- Disponibilidade no Scriban: o resultado das queries fica acessível através da variável global
common
Exemplo prático
Arquivo common.graphql
:
common.graphql
:query Common($url: String!, $scriptPageTypes: [ScriptPageType!], $partnerAccessToken: String) {
menuGroups(url: $url, partnerAccessToken: $partnerAccessToken) {
menuGroupId
position
menus {
menuId
parentMenuId
name
cssClass
link
order
}
}
scripts(url: $url, pageType: $scriptPageTypes) {
name
pageType
position
priority
content
}
gtm_id: shopSettings(settingNames: "GoogleTagManagerId") {
name
value
}
gtag_id: shopSettings(settingNames: "Google-Analytics-Ids") {
name
value
}
}
Acesso no Scriban:
<!-- Exemplo: Listando menus do primeiro grupo -->
<ul>
{{ for menu in common.menu_groups[0].menus }}
<li><a href="{{ menu.link }}">{{ menu.name }}</a></li>
{{ end }}
</ul>
<!-- Exemplo: Adicionando Google Tag Manager -->
{{ if common.gtm_id.size > 0 }}
<script>/* Código do GTM usando {{ common.gtm_id[0].value }} */</script>
{{ end }}
Boa prática:
Mantenha o common.graphql
enxuto
Adicione apenas dados realmente necessários em todas as páginas.
Evite sobrecarregar com queries pesadas ou específicas de páginas individuais.
Nota
As queries existentes dentro do arquivo
common.graphql
ficam cacheadas para melhor performance e rodam uma vez a cada 12 horas, em média.
Updated 9 days ago