searchPage
Busca rápida por objetos de página com saída limitada.
Descrição
Este método realiza uma busca rápida por objetos de página com base em uma consulta de texto (nome). Ele retorna uma Promise que resolve para um array de objetos IPagesEntity, um array vazio [] quando nada é encontrado - ou, com traficLimit: true, um array de cartões curtos IPageSearchResult.
O que você obtém depende de traficLimit
O tipo de retorno declarado é IPagesEntity[] | IPageSearchResult[] | IError:
| Config | Resultado | Contém |
|---|---|---|
traficLimit: false (padrão) | IPagesEntity[] | Entidades de página completas, com attributeValues, localizeInfos, … |
traficLimit: true | IPageSearchResult[] | O cartão de busca rápida bruto - apenas { id, title } |
No modo de economia de tráfego, não há attributeValues no resultado, então restrinja antes de lê-lo - pela sua própria flag de configuração ou pelo campo:
const found = await Pages.searchPage('cat');
if (Array.isArray(found) && found.length && 'attributeValues' in found[0]) {
// IPagesEntity[] — traficLimit is off
} else {
// IPageSearchResult[] — short cards
}
O comportamento em tempo de execução não mudou; apenas o tipo declarado agora reflete ambos os modos. Cartões curtos não carregam templateIdentifier, então nenhuma busca de template é realizada para eles.
Páginas.searchPage(
name*,
url,
langCode
);
Esquema de parâmetros
Esquema
name(obrigatório): string
Texto para buscar objetos de página (a busca é realizada no campo título do objeto localizeInfos levando em conta o idioma)
exemplo: "Sobre Nós"
url: string
URL da página
exemplo: "catalog"
langCode: string
Código do idioma. Padrão: "en_US"
exemplo: "en_US"
Exemplos
Exemplo mínimo
const response = await Pages.searchPage('cup');
Exemplo com atributos
const response = await Pages.searchPage('cup', 'en_US');
Exemplo de resposta
[
{
"id": 10,
"parentId": null,
"pageUrl": "catalog",
"depth": 0,
"localizeInfos": {
"title": "Catalog",
"htmlContent": "",
"plainContent": "",
"menuTitle": "Catalog"
},
"isVisible": true,
"blocks": [
"product_block",
"test",
"freq_ordered",
"..."
],
"type": "catalog_page",
"templateIdentifier": "template",
"attributeSetIdentifier": "page",
"attributeValues": {
"text": {
"type": "string",
"value": "catalog text",
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"number": {
"type": "integer",
"value": 10,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"real": {
"type": "real",
"value": 5,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"float": {
"type": "float",
"value": 15,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [],
"isSync": true,
"template": {
"id": 4,
"attributeSetIdentifier": null,
"title": "Template",
"generalTypeId": 4,
"identifier": "template",
"version": 0,
"generalTypeName": "catalog_page",
"attributeValues": {},
"position": 1
}
}
]
Esquema de resposta
Esquema: IPagesEntity[] | IPageSearchResult[]
id: number
O identificador do objeto.
exemplo: 8
parentId: number | null
O id da página pai, se contiver null, então é a página de nível superior.
exemplo: 10
pageUrl: string
URL única da página.
exemplo: "blog"
depth: number
Profundidade de aninhamento da página em relação ao parentId.
exemplo: 10
localizeInfos: ILocalizeInfo
O nome da página, levando em conta a localização.
exemplo:
{
"title": "Blog",
"menuTitle": "Blog",
"htmlContent": "",
"plainContent": ""
}
isVisible: boolean
Um sinal de visibilidade da página.
exemplo: true
type: PageType
Tipo de página.
exemplo: "common_page"
templateIdentifier: string | null
Id do usuário do template vinculado.
exemplo: "template"
attributeSetIdentifier: string | null
Id do conjunto de atributos.
exemplo: "page"
attributeValues: IAttributeValues
Mapa de valores de atributos indexados por marcador; objeto vazio quando nenhum.
exemplo:
{
"text": {
"type": "string",
"value": "some text",
"position": 0,
"additionalFields": []
}
}
isSync: boolean
Indicação de indexação da página.
exemplo: true
template: object
Objeto de template.
exemplo:
{}
position: number
Número do item (para ordenação).
exemplo: 2
config: Record<string, number>
Configurações de saída para páginas de catálogo.
exemplo:
{
"rowsPerPage": 1,
"productsPerRow": 1
}
products: number
O número de produtos vinculados à página.
exemplo: 0
childrenCount: number
Contagem de filhos.
exemplo: 1
blocks: IBlockEntity[] | string[]
blocos.
exemplo:
{
"id": 4,
"attributeSetIdentifier": null,
"title": "Template",
"generalTypeId": 4,
"identifier": "template",
"version": 0,
"generalTypeName": "catalog_page",
"attributeValues": {},
"position": 1
}
blocks.attributeValues: IAttributeValues
Mapa de valores de atributos indexados por marcador; objeto vazio quando nenhum.
exemplo:
{
"block-text": {
"type": "string",
"value": "some text",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
}
blocks.id: number
Identificador único do bloco.
exemplo: 1234
blocks.localizeInfos: ILocalizeInfo
Informações de localização para o bloco.
exemplo:
{
"key": "value"
}
blocks.version: number
Versão da entidade do bloco.
exemplo: 1
blocks.identifier: string
Identificador de string único para o bloco.
exemplo: "block1"
blocks.type: BlockType
Tipo do bloco.
exemplo: "product"
blocks.position: number
Posição do bloco para ordenação.
exemplo: 1
blocks.templateIdentifier: string | null
Identificador do template usado pelo bloco, ou null se não aplicável.
exemplo: "template1"
blocks.isVisible: boolean
Indica se o bloco é visível.
exemplo: true
blocks.countElementsPerRow: number
Número de elementos exibidos por linha no bloco, se aplicável.
exemplo: 3
blocks.quantity: number
Quantidade de itens no bloco, se aplicável.
exemplo: 5
blocks.similarProducts: IProductsResponse
Resposta contendo produtos similares associados ao bloco.
exemplo:
{
"total": 10,
"items": []
}
blocks.products: IProductsEntity[]
Array de entidades de produtos associadas ao bloco.
exemplo:
[
{
"id": 1,
"name": "Product 1"
},
{
"id": 2,
"name": "Product 2"
}
]
moduleFormConfigs: Array<IFormConfig>
Configurações de formulário do módulo vinculadas à página.
rating: IRating
Dados de avaliação.
total: string
Total de produtos vinculados à página.
exemplo: "10"
categoryPath: string | null
String do caminho da categoria; null para páginas aninhadas que não têm seu próprio caminho de categoria.
exemplo: "catalog"
distance: number
Distância cosseno para a consulta. Retornado apenas pelo endpoint de busca semântica (vetorial) quando debug: true é passado no corpo da busca.
exemplo: 0.12