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.

.getProductsByIds( , , );

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": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"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": 807,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 807
},
"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
Identifiant de l'ensemble d'attributs.
exemple: "set_12345"

position: number
Numéro de l'élément (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
Indicateur de 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 :