Aller au contenu principal

searchPage

Recherche rapide d'objets de page avec une sortie limitée.

Description​

Cette méthode effectue une recherche rapide d'objets de page basée sur une requête textuelle (nom). Elle renvoie une Promesse qui se résout en un tableau d'objets IPagesEntity, un tableau vide [] lorsque rien n'est trouvé - ou, avec traficLimit: true, un tableau de cartes IPageSearchResult courtes.

Ce que vous obtenez dépend de traficLimit​

Le type de retour déclaré est IPagesEntity[] | IPageSearchResult[] | IError :

ConfigRésultatContient
traficLimit: false (par défaut)IPagesEntity[]Entités de page complètes, avec attributeValues, localizeInfos, …
traficLimit: trueIPageSearchResult[]La carte de recherche rapide brute - seulement { id, title }

En mode d'économie de trafic, il n'y a pas de attributeValues dans le résultat, donc affinez avant de le lire - par votre propre drapeau de configuration, ou par le champ :

const found = await Pages.searchPage('cat');

if (Array.isArray(found) && found.length && 'attributeValues' in found[0]) {
// IPagesEntity[] — traficLimit is off
} else {
// IPageSearchResult[] — short cards
}

Le comportement d'exécution reste inchangé ; seul le type déclaré reflète maintenant les deux modes. Les cartes courtes ne portent pas de templateIdentifier, donc aucune recherche de modèle n'est effectuée pour elles.

.searchPage(

, ,

);

Schéma des paramètres​

Schéma

name(obligatoire) : string
Texte pour rechercher des objets de page (la recherche est effectuée sur le champ titre de l'objet localizeInfos en tenant compte de la langue)
exemple : "À propos de nous"

url : string
URL de la page
exemple : "catalogue"

langCode : string
Code de langue. Par défaut : "en_US"
exemple : "en_US"

Exemples​

Exemple minimal​

const response = await Pages.searchPage('cup');

Exemple avec des attributs​

const response = await Pages.searchPage('cup', 'en_US');

Exemple de réponse​

[
{
"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
}
}
]

Schéma de réponse​

Schéma : IPagesEntity[] | IPageSearchResult[]

id : number
L'identifiant de l'objet.
exemple : 8

parentId : number | null
L'id de la page parente, s'il contient null, alors c'est la page de niveau supérieur.
exemple : 10

pageUrl : string
URL unique de la page.
exemple : "blog"

depth : number
Profondeur d'imbrication de la page par rapport à parentId.
exemple : 10

localizeInfos : ILocalizeInfo
Le nom de la page, en tenant compte de la localisation.
exemple :

{
"title": "Blog",
"menuTitle": "Blog",
"htmlContent": "",
"plainContent": ""
}

isVisible : boolean
Un indicateur de visibilité de la page.
exemple : true

type : PageType
Type de page.
exemple : "common_page"

templateIdentifier : string | null
Identifiant utilisateur du modèle lié.
exemple : "template"

attributeSetIdentifier : string | null
Identifiant de l'ensemble d'attributs.
exemple : "page"

attributeValues : IAttributeValues
Carte des valeurs d'attributs indexées par marqueur ; objet vide lorsqu'il n'y en a pas.
exemple :

{
"text": {
"type": "string",
"value": "some text",
"position": 0,
"additionalFields": []
}
}

isSync : boolean
Indication de l'indexation de la page.
exemple : true

template : object
Objet modèle.
exemple :

{}

position : number
Numéro de l'élément (pour le tri).
exemple : 2

config : Record<string, number>
Paramètres de sortie pour les pages de catalogue.
exemple :

{
"rowsPerPage": 1,
"productsPerRow": 1
}

products : number
Le nombre de produits liés à la page.
exemple : 0

childrenCount : number
Nombre d'enfants.
exemple : 1

blocks : IBlockEntity[] | string[]
blocs.
exemple :

{
"id": 4,
"attributeSetIdentifier": null,
"title": "Template",
"generalTypeId": 4,
"identifier": "template",
"version": 0,
"generalTypeName": "catalog_page",
"attributeValues": {},
"position": 1
}

blocks.attributeValues : IAttributeValues
Carte des valeurs d'attributs indexées par marqueur ; objet vide lorsqu'il n'y en a pas.
exemple :

{
"block-text": {
"type": "string",
"value": "some text",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
}

blocks.id : number
Identifiant unique du bloc.
exemple : 1234

blocks.localizeInfos : ILocalizeInfo
Informations de localisation pour le bloc.
exemple :

{
"key": "value"
}

blocks.version : number
Version de l'entité bloc.
exemple : 1

blocks.identifier : string
Identifiant unique sous forme de chaîne pour le bloc.
exemple : "block1"

blocks.type : BlockType
Type du bloc.
exemple : "product"

blocks.position : number
Position du bloc pour le tri.
exemple : 1

blocks.templateIdentifier : string | null
Identifiant du modèle utilisé par le bloc, ou null si non applicable.
exemple : "template1"

blocks.isVisible : boolean
Indique si le bloc est visible.
exemple : true

blocks.countElementsPerRow : number
Nombre d'éléments affichés par ligne dans le bloc, si applicable.
exemple : 3

blocks.quantity : number
Quantité d'articles dans le bloc, si applicable.
exemple : 5

blocks.similarProducts : IProductsResponse
Réponse contenant des produits similaires associés au bloc.
exemple :

{
"total": 10,
"items": []
}

blocks.products : IProductsEntity[]
Tableau d'entités de produits associées au bloc.
exemple :

[
{
"id": 1,
"name": "Product 1"
},
{
"id": 2,
"name": "Product 2"
}
]

moduleFormConfigs : Array<IFormConfig>
Configurations de formulaire de module liées à la page.

rating : IRating
Données d'évaluation.

total : string
Nombre total de produits liés à la page.
exemple : "10"

categoryPath : string | null
Chaîne de chemin de catégorie ; null pour les pages imbriquées qui n'ont pas de chemin de catégorie propre.
exemple : "catalogue"

distance : number
Distance cosinus par rapport à la requête. Renvoie uniquement par le point de terminaison de recherche sémantique (vectorielle) lorsque debug: true est passé dans le corps de la recherche.
exemple : 0.12