common.graphql

Arquivocommon

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:

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.