Hotsite

A query hotsite retorna informações necessárias para a montagem de uma página de hotsite, especificado por ID ou por URL.

Requisição

Parâmetros

ParâmetroTipoObrigatórioDescrição
urlStringNãoCaminho do hotsite (slug da URL).
hotsiteIdIntegerNãoID do hotsite criado para exibição.
ignoreDisplayRulesBooleanSimQuando true, ignora as regras de exibição e retorna produtos ocultos.
partnerAccessTokenStringNãoToken de parceiro (aberto ou fechado)
📘

Nota importante:

Apesar de url e hotsiteId não serem obrigatórios, pelo menos um dos dois parâmetros deve ser passado para a requisição.

Campos

Campo

Descrição

aggregations

Informações dos produtos cadastrados no hotsite para montagem de filtros na página (ex: Cores, Marcas, categorias, etc)

banners

Lista de banners cadastrados no hotsite

bannerId

ID de identificação do banner.

bannerName

Nome descritivo do banner.

bannerUrl

URL da imagem principal do banner.

bannerAlternativeUrl

URL da imagem alternativa, configurada no campo "URL Banner Alternativo" do painel administrativo. Ideal para uso em versões mobile ou contextos específicos de exibição.

breadcrumbs

Categorias navegadas até a página do hotsite

contents

Lista de conteúdos cadastrados no hotsite

endDate

Data de expiração de exibição do hotsite

expression

Expressão utilizada para associar produtos ao hotsite

hotsiteId

ID de cadastro do hotsite

name

Nome do hotsite

pageSize

Quantidade de produtos que são mostrados por página

products

Lista de produtos associados ao hotsite paginados por cursor

productsByOffset

Lista de produtos associados ao hotsite paginados por offset

seo

Lista de elementos SEO cadastrados no hotsite

sorting

Direção e chave de ordenação definidos para o hotsite

startDate

Data de início de exibição do hotsite

subtype

Subtipo do hotsite (CATEGORY, BRAND, PORTFOLIO ou BUY_LIST)

template

Template do SE utilizado no hotsite

url

Pathname da URL do hotsite

Exemplo

Neste exemplo são pedidas informações do hotsite calcados/melissa e dos 2 primeiros produtos cadastrados:

query{
  hotsite(url:"calcados/melissa"){
  	aggregations {
      maximumPrice
      minimumPrice
    }
    breadcrumbs {
      link
      text
    }
    expression
    subtype
    pageSize
    products (first: 2) {
      nodes {
        productId
        productName
        prices {
          price
         }
      }
    }
    seo{
      content
      httpEquiv
      name
      scheme
      type
    }
  }
}
Mostrar resultado
{
  "data": {
    "hotsite": {
      "aggregations": {
        "maximumPrice": 7650,
        "minimumPrice": 8.5
      },
      "breadcrumbs": [
        {
          "link": "/calcados",
          "text": "Calçados"
        },
        {
          "link": "/calcados/melissa",
          "text": "Melissa"
        }
      ],
      "expression": "categoriaHotSite__ix:99calcados99melissa99",
      "subtype": "CATEGORY",
      "pageSize": 24,
      "products": {
        "nodes": [
          {
            "productId": 43,
            "productName": "Bota Melissa Ankle Boot Jeremy Scott Azul Preto 31916",
            "prices": {
              "price": 7650
            }
          },
          {
            "productId": 45,
            "productName": "Bota Melissa Ankle Boot Jeremy Scott Preto Opaco 31916",
            "prices": {
              "price": 7650
              }
          }
        ]
      },
      "seo": [
        {
          "content": "Melissa",
          "httpEquiv": null,
          "name": "keywords",
          "scheme": null,
          "type": "META"
        },
        {
          "content": "Melissa - Loja",
          "httpEquiv": null,
          "name": "description",
          "scheme": null,
          "type": "META"
        },
        {
          "content": "text/html; charset=iso-8859-1",
          "httpEquiv": "content-type",
          "name": null,
          "scheme": null,
          "type": "META"
        },
        {
          "content": "Melissa - Calçados - Loja",
          "httpEquiv": null,
          "name": null,
          "scheme": null,
          "type": "TITLE"
        }
      ]
    }
  }
}

Consultando Banners com URL Alternativa

O campo bannerAlternativeUrl permite que a agência implemente lógica de troca de imagem via código, consumindo a URL alternativa para dispositivos móveis, reduzindo o consumo de dados e melhorando a experiência visual em telas menores.

query {
  hotsite(url: "nome-do-hotsite") {
    name
    banners {
      bannerId
      bannerName
      bannerUrl
      bannerAlternativeUrl
    }
  }
}

Response:

{
  "data": {
    "hotsite": {
      "name": "Campanha de Verão",
      "banners": [
        {
          "bannerId": 138489,
          "bannerName": "Banner Spot",
          "bannerUrl": "https://loja.fbitsstatic.net/img/b/banner-principal.png",
          "bannerAlternativeUrl": "https://loja.fbitsstatic.net/img/b/banner-mobile.png"
        }
      ]
    }
  }
}

ignoreDisplayRules

Permite exibir produtos exclusivamente em hotsites, ignorando as regras de exibição padrão do Storefront, feitas nas configurações. É especialmente útil para ações promocionais ou lançamentos de produtos "flagship" que não devem ser exibidos na busca, nas categorias, nem indexados no Google.

Ao ativar o parâmetro ignoreDisplayRules, você consegue exibir produtos que estão marcados como “ocultos” em todas as vitrines e buscas tradicionais, tornando-os visíveis somente dentro do hotsite específico.

Exemplo de chamada com o parâmetro incluído:

query {
  hotsite(
    hotsiteId: 1234, 
    url: "lancamento-loja", 
    ignoreDisplayRules: true) {
    products {
      nodes {
        productId
        productName
        prices {
          price
          listPrice
        }
        images {
          order
          url
        }
      }
    }
  }
}

Exemplo obtendo produtos de lista de compra

Neste exemplo são pedidas algumas informações do hotsite lista-compra e dos 2 primeiros produtos cadastrados, que são listas de compra, além de algumas informações de produtos da própria lista de compra:

query {
  hotsite(url: "lista-compra") {
    hotsiteId
    products(first: 2) {
      nodes{
        buyListId
        alias
        buyListProducts{
          productId
          productName
        }
      }
    }
  }
}
Mostrar resultado
{
  "data": {
    "hotsite": {
      "hotsiteId": 163640,
      "products": {
        "nodes": [
          {
            "buyListId": 1391,
            "alias": "listacompra/biquini-agatha-nervura-marrom-1391",
            "buyListProducts": [
              {
                "productId": 211667,
                "productName": "Top Agatha Nervura - Marrom"
              },
              {
                "productId": 211668,
                "productName": "Calcinha Leila Nervura - Marrom"
              }
            ]
          },
          {
            "buyListId": 1421,
            "alias": "listacompra/biquini-agatha-u-verde-1421",
            "buyListProducts": [
              {
                "productId": 211778,
                "productName": "Top Agatha - Verde"
              },
              {
                "productId": 211780,
                "productName": "Calcinha Leila - Verde"
              }
            ]
          }
        ]
      }
    }
  }
}

Ordenação Padrão

Caso nenhum parâmetro de ordenação seja especificado na query products ou productsByOffset (como por exemplo: products (first: 10, sortDirection: DESC, sortKey: PRICE), é aplicada uma lógica de ordenação padrão considerando na configuração de prioridades de categorias e hotsites, nesta ordem:

  1. Categorias: Os produtos serão ordenados de acordo com a prioridade configurada para as categorias. Isso significa que os produtos pertencentes a categorias com prioridade mais alta serão exibidos primeiro na lista de resultados.
  2. Hotsites: Caso contrário, a prioridade configurada nos hotsites será considerada para determinar a ordem de exibição. Os produtos associados a hotsites com prioridade mais alta serão listados antes dos produtos de hotsites com prioridade mais baixa.

Esse recurso oferece flexibilidade ao permitir diferentes tipos de filtros e opções de ordenação para criar vitrines personalizadas, como exibir os produtos mais vendidos ou os lançamentos mais recentes.

Retornando o campo aliasComplete relacionado ao produto

Abaixo temos um exemplo do retorno do campo aliasComplete, onde traz o alias relacionado ao produto e que leva em consideração a configuração Configuração de URL de Produto dentro do painel administrativo.

query {
  hotsite(url: "outlet") {
    name
    productsByOffset {
      items {
        alias: aliasComplete
      }
    }
  }
}
Mostrar resultado
{
  "data": {
    "hotsite": {
      "name": "outlet",
      "productsByOffset": {
        "items": [
          {
            "alias": "produto/bota-88fpc600-pvc-branca-cano-curto-73597"
          },
          {
            "alias": "produto/taxa-tde-70148"
          },
          {
            "alias": "produto/envelope-73026"
          }
        ]
      }
    }
  }
}