Aller au contenu principal

getProductsByIds

Récupération de plusieurs produits par leurs identifiants.

Description

Cette méthode récupère plusieurs objets produit par leurs identifiants (ids séparés par des virgules). Elle renvoie une promesse qui se résout en un tableau d'objets IProductsEntity.

Produits.getProductsByIds( ids, langCode, userQuery );

Schéma des paramètres

Schéma

ids(required): string
Identifiants de la page produit pour lesquels trouver des relations
exemple : "12345,67890"

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

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

{
"limit": 30,
"offset": 0,
"signPrice": "orders"
}

userQuery.signPrice: string
Marqueur de stockage de commande pour la 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.getProductsByIds('1, 5, 8');

Exemple avec des attributs

const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsByIds('1, 5, 8', 'en_US', userQuery);
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 ["fake_brand"]
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

[
{
"id": 2954,
"localizeInfos": {
"title": "Box"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"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": 742690,
"filename": "files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.jpeg",
"contentType": "image/jpeg",
"previewLink": {
"default": [
"data:image/webp;base64,UklGRmwAAABXRUJQVlA4IGAAAADQAQCdASoQABAABUB8JbACdACZZ3P8AAD+wGsUXBs/r069WpdrcuaTNfVxqWIetuaIdIvOMkSp9iJRxE+KhA2YHbrVehhMRj/j5+DUdjWn1v5YtZ7vw0IgPi9R5vkAAAA=",
"https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.preview.default.jpeg"
]
},
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/48853cbf-4462-42c6-8b99-d14f721c21a2.jpeg",
"defaultPreview": "default"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": true
}
},
"attributeSetIdentifier": "products",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"productPages": [
{
"id": 2847,
"pageId": 10,
"productId": 2954,
"positionId": 3190,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"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": 2955,
"localizeInfos": {
"title": "Product"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"attributeValues": {
"p": {
"type": "float",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 50,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "test",
"isPositionLocked": false,
"position": 2,
"rating": {},
"paymentStages": [
{
"title": "p1",
"value": 50,
"marker": "p1"
},
{
"title": "p2",
"value": 50,
"marker": "p2"
},
{
"title": "p3",
"value": 50,
"marker": "p3"
}
],
"productPages": [
{
"id": 2848,
"pageId": 10,
"productId": 2955,
"positionId": 3191,
"categoryPath": "catalog"
}
],
"blocks": [
"product_block",
"test",
"similar"
],
"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": {}
}
]

Schéma de réponse

Schéma : IProductsEntity[]

id: number
L'identifiant unique.
exemple : 12345

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

{}

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

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

{ "title": "Sale" }

attributeSetIdentifier: string | null
Ensemble d'identifiants d'attributs.
exemple : "set_12345"

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

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

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

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

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

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

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

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

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

[
1,
2,
3
]

isVisible: boolean
Indication de la visibilité de la page.
exemple : true

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

rating: IRating
Données d'évaluation.

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

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

[
12345,
67890
]

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

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

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

{}

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

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

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..."

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: number
Identifiant unique de l'enregistrement de lien produit-page.
exemple : 16

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

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

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

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

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

[
"block_12345",
"block_67890"
]

🔒 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

Guide étape par étape dans la documentation :

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 :