Aller au contenu principal

getProductsByPageId

Rechercher tous les objets produits avec pagination pour la catégorie sélectionnée.

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 tableau d'éléments, où chaque élément est un objet. Elle renvoie une promesse qui se résout en un IProductsResponse.

Produits.getProductsByPageId( id, body, langCode, userQuery );

Schéma des paramètres

Schéma

id(obligatoire) : nombre
Identifiant de la page
exemple : 2492

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(obligatoire) : chaîne | null
L'identifiant textuel de l'attribut indexé par lequel les valeurs sont filtrées. Par défaut : null.
exemple : "couleur"

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

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

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

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

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

body.title : chaîne | null
Nom du produit.
exemple : "Laminatboden Maxima"

body.isNested : booléen
Indicateur pour les attributs imbriqués, par défaut faux.
exemple : vrai

langCode : chaîne
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",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}

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

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

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

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

userQuery.signPrice : chaîne
Symbole de prix. Par défaut : null.

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

userQuery.statusMarker : chaîne | null
Marqueur de statut de page produit, par défaut null.
exemple : "en_stock"

userQuery.conditionValue : chaîne | null
La valeur recherchée, par défaut null.
exemple : "nouveau"

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

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

userQuery.langCode : chaîne
Code de langue. Par défaut : "en_US".

userQuery.ids : chaîne
Liste d'identifiants de produits séparés par des virgules — utilisée par getProductsByIds.
exemple : "1,2,3"

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.

Exemples

Exemple minimal

const response = await Products.getProductsByPageId( id, body );

Exemple avec le paramètre body


const body = [
{
"attributeMarker": "prix",
"conditionMarker": "mth",
"conditionValue": 1,
"statusMarker": "en_attente",
"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.getProductsByPageId( id, 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 égalcatégorie ≠ "archivé"
inContient (un des)catégorie in ["électronique", "livres"]
ninNe contient pasmarque not in ["marque_fausse"]
exsExiste (a une valeur)A une description
nexsN'existe pasPas d'image

conditionValue : La valeur à comparer.

Exemple de réponse

{
"items": [
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"isPositionLocked": false,
"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": {
"size": 241636,
"filename": "files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png",
"contentType": "image/png",
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"attributeSetIdentifier": null,
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": false,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"attributeValues": {},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"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
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
],
"total": 3
}

Schéma de réponse

Schéma : IProductsResponse

total : nombre
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 : nombre
L'identifiant unique.
exemple : 12345

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

items.statusIdentifier : chaîne | null
Identifiants de statut de page produit (peut être null).
exemple : "en_stock"

items.statusLocalizeInfos : ILocalizeInfo
Nom de statut localisé pour le produit.
exemple : { "title": "Vente" }

items.attributeSetIdentifier : chaîne | null
Identifiant de l'ensemble d'attributs.
exemple : "set_12345"

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

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

items.additional : objet
Valeur supplémentaire de l'index.
exemple : { prices: { min: 5 max: 150 } }

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

items.isSync : booléen
Indication de l'indexation de la page.
exemple : vrai

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

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

items.categories : chaîne[]
Catégories de produits.
exemple :

[
1,
2,
3
]

items.isVisible : booléen
Indicateur de visibilité de la page.
exemple : vrai

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

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

items.isPositionLocked : booléen
Indicateur de verrouillage de la position de tri (optionnel).
exemple : faux

items.relatedIds : nombre[]
Identifiants des pages de produits connexes.
exemple :

[
12345,
67890
]

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

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

items.templateIdentifier : chaîne | null
Identifiant utilisateur du modèle lié.
exemple : "template_12345"

items.shortDescTemplateIdentifier : chaîne | null
Identifiant utilisateur du modèle lié pour une courte description.
exemple : "short_desc_template_12345"

items.signedPrice : chaîne
Symbole de prix.

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

productPages.id : nombre
Identifiant unique de l'enregistrement de lien produit-page.
exemple : 16

productPages.pageId : nombre
Identifiant de la page à laquelle le produit est lié.
exemple : 4

productPages.productId : nombre
Identifiant du produit.
exemple : 15

productPages.positionId : nombre
Identifiant de position de tri au sein de la page.
exemple : 244

productPages.categoryPath : chaîne
Chemin de catégorie de la page à laquelle le produit appartient.
exemple : "produits"

items.blocks : chaîne[]
Tableau d'identifiants de blocs.
exemple :

[
"block_12345",
"block_67890"
]