Aller au contenu principal

getProductsByPageUrl

Recherchez tous les objets produits avec pagination pour la catégorie sélectionnée (par son URL).

Description

Cette méthode recherche tous les objets produits avec pagination pour la catégorie sélectionnée, en fonction des paramètres de requête fournis (userQuery). Elle renvoie une promesse qui se résout en un objet IProductsResponse.

Produits.getProductsByPageUrl( url, body, langCode, userQuery );

Schéma des paramètres

Schéma

url(obligatoire) : string
URL de la page
exemple : "catalog"

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": ""
}
]

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

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

{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"statusId": 123,
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "equals",
"attributeMarker": "color"
}

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

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

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

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

userQuery.templateMarker : string | null
Marqueur de modèle de page produit, par défaut null.
exemple : "template_12345"

userQuery.statusMarker : string | null
Marqueur de statut de page produit, par défaut null.
exemple : "in_stock"

userQuery.conditionValue : string | null
La valeur recherchée, par défaut null.
exemple : "new"

userQuery.attributeMarker : string | null
L'identifiant textuel de l'attribut indexé par lequel les valeurs sont filtrées, par défaut null.
exemple : "color"

userQuery.conditionMarker : string | null
Marqueur de la condition de filtre par laquelle les valeurs sont filtrées, par défaut null.
exemple : "equals"

Exemples

Exemple minimal

const body `= [
{
"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": ""
}
]

const response = await Produits.getProductsByPageUrl('catalog', body)

Exemple de réponse

{
"items": [
{
"id": 2954,
"localizeInfos": {
"title": "Boîte"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Vente"
},
"attributeSetIdentifier": "products",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"attributeValues": {
"product-name": {
"type": "string",
"value": "product-name",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 51,
"isIcon": false,
"position": 1,
"additionalFields": [],
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 2,
"additionalFields": [],
"isProductPreview": false
},
"img": {
"type": "image",
"value": [],
"isIcon": false,
"position": 3,
"additionalFields": [],
"isProductPreview": false
}
},
"categories": [
"catalog"
],
"isVisible": true,
"isPositionLocked": false
},
{
"id": 2955,
"localizeInfos": {
"title": "Produit"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Vente"
},
"attributeSetIdentifier": null,
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": false,
"attributeValues": {},
"categories": [
"catalog"
],
"isVisible": true,
"isPositionLocked": false
},
{
"id": 2957,
"localizeInfos": {
"title": "Cosmo"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Vente"
},
"attributeSetIdentifier": "products",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"attributeValues": {
"product-name": {
"type": "string",
"value": "Cosmo",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
},
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 1,
"additionalFields": [],
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "",
"isIcon": false,
"position": 2,
"additionalFields": [],
"isProductPreview": false
},
"img": {
"type": "image",
"value": [],
"isIcon": false,
"position": 3,
"additionalFields": [],
"isProductPreview": false
}
},
"categories": [
"catalog"
],
"isVisible": true,
"isPositionLocked": false
}
],
"total": 3
}

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": "Produit 1"
},
{
"id": 67890,
"title": "Produit 2"
}
]