Aller au contenu principal

getProducts

Rechercher tous les objets produits avec pagination et filtre.

Description​

Cette méthode recherche tous les objets produits avec pagination et filtres, en fonction des paramètres de requête fournis (userQuery). Elle renvoie une promesse qui se résout en un IProductsResponse.

.getProducts( , , );

Schéma des paramètres​

Schéma

body: IFilterParams[]
Corps de la requête. Par défaut : []
exemple :

[
{
"attributeMarker": "price",
"conditionMarker": "mth",
"statusMarker": "waiting",
"conditionValue": 1,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
},
{
"attributeMarker": "price",
"conditionMarker": "lth",
"conditionValue": 3,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
}
]

body.attributeMarker(required): string | null
L'identifiant textuel de l'attribut indexé par lequel les valeurs sont filtrées. Par défaut : null.
exemple : "couleur"

body.conditionMarker: string | null
Id de la condition de filtre par laquelle les valeurs sont filtrées. Par défaut : null.
exemple : "égal"

body.conditionValue(required): number | string | null
La valeur recherchée, par défaut null.
exemple : "nouveau"

body.pageUrl: string | null
Url de l'objet de la page de catégorie.
exemple : ["23-laminat-floorwood-maxima"]

body.pageUrls: string[] | null
Url de l'objet de la page de catégorie.
exemple : ["23-laminat-floorwood-maxima"]

body.statusMarker: string | null
Identifiant textuel du statut de la page produit (par défaut non défini).
exemple : "en_stock"

body.title: string | null
Nom du produit.
exemple : "Laminatboden Maxima"

body.isNested: boolean
Indicateur pour les attributs imbriqués, par défaut faux.
exemple : true

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

userQuery: IProductsQueryBase
Paramètres de requête optionnels
exemple :

{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders"
}

userQuery.offset(required): number
Paramètre pour la pagination. Par défaut : 0.

userQuery.limit(required): number
Paramètre pour la pagination. Par défaut : 30.

userQuery.sortOrder(required): string
Ordre de tri "DESC" | "ASC". Par défaut : "DESC".

userQuery.sortKey(required): string
Champ pour le tri (par défaut - null). Valeurs possibles : "id", "position", "titre", "date", "prix". Par défaut : null.

userQuery.signPrice: string
Marqueur de stockage de commande pour la fixation des prix. Si le paramètre est défini, le prix est fixé pour un certain temps.
voir : Fixation du prix

Par défaut, vous pouvez récupérer 10 objets. Cela est dû à la limite d'enregistrement dans les paramètres de permissions du module.
Pour que la pagination fonctionne correctement, vous devez configurer Permissions du module selon vos besoins dans la section correspondante.

💲 signPrice verrouille le prix retourné pour une durée limitée — définissez-le sur votre marqueur de stockage de commande. Voir Fixation du prix (signPrice).

Exemples​

Exemple minimal​

const response = await Products.getProducts();

Exemple avec le paramètre body​


const body = [
{
,
,
,
,
],
,
},
{
,
,
,
],
,
}
];

const response = await Products.getProducts(body);

Utilisez des filtres pour trouver des produits spécifiques :

attributeMarker : L'identifiant textuel de l'attribut indexé par lequel les valeurs sont filtrées. conditionMarker : Le type de condition à appliquer à la valeur de l'attribut.

MarqueurSignificationExemple
eqÉgalstatusId = 1 (actif uniquement)
neqPas égalcategory ≠ "archivé"
inContient (un des)category in ["électronique", "livres"]
ninNe contient pasbrand not in ["marque_fausse"]
exsExiste (a une valeur)A une description
nexsN'existe pasPas d'image
patCorrespond au modèletitle matches "veste"
sameCorrespond exactement à la valeursku est exactement "ABC-123"
same_partCorrespond à une partie de la valeur exactementpartie de sku est exactement "ABC"

conditionValue : La valeur à comparer.

Exemple de réponse​

{
"items": [
{
"id": 3445,
"localizeInfos": {
"title": "Subscription"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "subscription",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2960,
"localizeInfos": {
"title": "Percent split"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 180,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"s0": {
"type": "float",
"value": 180,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"s1": {
"type": "float",
"value": 60,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"s2": {
"type": "float",
"value": 40,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "percent_split",
"isPositionLocked": false,
"position": 2,
"rating": {},
"paymentStages": [
{
"title": "s1",
"value": 108,
"marker": "s1"
},
{
"title": "s2",
"value": 72,
"marker": "s2"
}
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2959,
"localizeInfos": {
"title": "Split"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 120,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"p": {
"type": "float",
"value": 120,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 40,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 60,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 20,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "test",
"isPositionLocked": false,
"position": 3,
"rating": {},
"paymentStages": [
{
"title": "p1",
"value": 40,
"marker": "p1"
},
{
"title": "p2",
"value": 60,
"marker": "p2"
},
{
"title": "p3",
"value": 20,
"marker": "p3"
}
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
"..."
],
"total": 6
}

Schéma de réponse​

Schéma : IProductsResponse

total: number
Le nombre total de produits trouvés.
exemple : 100

items: IProductsEntity[]
Un tableau d'entités de produits.
exemple :

[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]

items.id: number
L'identifiant unique.
exemple : 12345

items.localizeInfos: ILocalizeInfo
Le nom des produits, en tenant compte de la localisation.
exemple :

{}

items.statusIdentifier: string | null
Identifiants de statut de la page produit (peut être null).
exemple : "en_stock"

items.statusLocalizeInfos: ILocalizeInfo
Nom de statut localisé pour le produit.
exemple :

{ "title": "Sale" }

items.attributeSetIdentifier: string | null
Id de l'ensemble d'attributs.
exemple : "set_12345"

items.position: number
Numéro d'élément (pour le tri).
exemple : 1

items.price: number | null
La valeur du prix de la page produit prise dans l'index.
exemple : 150.00

items.additional: object
Valeur supplémentaire de l'index.
exemple :

{
"prices": {
"min": 5,
"max": 150
}
}

items.sku: string | null
SKU du produit (Stock Keeping Unit), peut être null.
exemple : "SKU_12345"

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

items.attributeValues: IAttributeValues
Tableau de valeurs d'attributs de l'index, représenté.
exemple :

[
{
"id": "color",
"value": "red"
}
]

items.categories: string[]
Catégories de produits.
exemple :

[
1,
2,
3
]

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

items.moduleFormConfigs: Array<IFormConfig>
Configurations de formulaire du module (optionnel).

items.rating: IRating
Données d'évaluation.

items.isPositionLocked: boolean
Indicateur de verrouillage de la position de tri (optionnel).
exemple : false

items.relatedIds: number[]
Ids des pages de produits connexes.
exemple :

[
12345,
67890
]

items.paymentStages: unknown
Données des étapes de paiement (peut être null).
exemple : null

items.distance: number
Distance de pertinence de recherche vectorielle (sémantique). Présent uniquement dans les résultats de recherche vectorielle.
exemple : 0.42

items.discountConfig: Record<string, unknown>
Objet de configuration de remise.
exemple :

{}

items.templateIdentifier: string | null
Id utilisateur du modèle lié.
exemple : "template_12345"

items.shortDescTemplateIdentifier: string | null
Id utilisateur du modèle lié pour une courte description.
exemple : "short_desc_template_12345"

items.signedPrice: string
Le prix signé du produit est obtenu avec les données du produit lorsque signPrice est défini.
voir : Prix fixe du produit
exemple : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

items.productPages: IProductPageRef[]
Tableau de références de pages de produits liant le produit à ses pages.
exemple :

[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]

items.blocks: string[]
Tableau d'identifiants de blocs.
exemple :

[
"block_12345",
"block_67890"
]

totalFound: number
Nombre de produits correspondants avant l'application des limites ; retourné par les points de terminaison de produits de bloc (similarProducts, recommandations de panier/liste de souhaits, fréquemment commandés). Optionnel.
exemple : 2

🔒 signedPrice est le jeton signé qui porte le prix verrouillé — renvoyez-le lorsque vous créez une commande. Voir Prix fixe du produit (signedPrice).


Exemples d'utilisation​

Guides étape par étape dans la documentation :

  • Filtrer par attributs — filtrer les produits par une valeur d'attribut en utilisant des marqueurs de condition (eq, neq, in, mth, lth, etc.).
  • Plage de prix — restreindre les produits à une plage de prix spécifique avec des filtres mth / lth.

Essayez-le en direct​

Exécutez cette méthode de manière interactive dans le bac à sable JS SDK — connectez votre URL de projet et votre jeton d'application lors de votre première visite, puis ouvrez :

  • Filtrer par attributs — filtrer les produits par une valeur d'attribut en utilisant des marqueurs de condition (eq, neq, in, mth, lth, etc.).
  • Plage de prix — restreindre les produits à une plage de prix spécifique avec des filtres mth / lth.