getProducts
Recherchez tous les objets produits avec pagination et filtrage.
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.
Produits.getProducts(
body,
langCode,
userQuery
);
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
Indicateur 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.
💲
signPriceverrouille le prix retourné pour une durée limitée — définissez-le sur votre indicateur 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 = [ { "attributeMarker": "prix", "conditionMarker": "mth", "statusMarker": "en_attente", "conditionValue": 1, "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }, { "attributeMarker": "prix", "conditionMarker": "lth", "conditionValue": 3, "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }];
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.
| Marqueur | Signification | Exemple |
|---|---|---|
| eq | Égal | statusId = 1 (actif uniquement) |
| neq | Pas égal | catégorie ≠ "archivé" |
| in | Contient (un des) | catégorie in ["électronique", "livres"] |
| nin | Ne contient pas | marque not in ["marque_fausse"] |
| exs | Existe (a une valeur) | A une description |
| nexs | N'existe pas | Pas d'image |
| pat | Correspond au modèle | titre correspond à "veste" |
| same | Correspond exactement à la valeur | sku est exactement "ABC-123" |
| same_part | Correspond à une partie de la valeur exactement | partie 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": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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": 688,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 688
},
"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 de l'é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
Indicateur 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
🔒
signedPriceest 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 — filtrez les produits par une valeur d'attribut en utilisant des marqueurs de condition (
eq,neq,in,mth,lth, etc.). - Plage de prix — réduisez 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 — filtrez les produits par une valeur d'attribut en utilisant des marqueurs de condition (
eq,neq,in,mth,lth, etc.). - Plage de prix — réduisez les produits à une plage de prix spécifique avec des filtres
mth/lth.