Aller au contenu principal

getCartSimilarByProductIds

Obtenez des produits "similaires au panier" par une liste explicite de productIds.

Description

Cette méthode renvoie des produits similaires à une liste explicite d'identifiants de produits passée dans le corps de la requête (au lieu d'utiliser le panier du contexte). Elle renvoie une promesse qui se résout en un tableau d'objets IProductsEntity.

Blocks.getCartSimilarByProductIds(

marker*, body*

);

Schéma des paramètres

Schéma

marker(obligatoire): string
Marqueur de bloc
exemple: "cart_similar_block"

body(obligatoire): IBlockProductsLookup
Corps de recherche
exemple:

{
"productIds": [
1,
2
],
"langCode": "en_US"
}

body.productIds(obligatoire): number[]
Identifiants de produits à rechercher.
exemple: [1, 2, 3]

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

body.limit: number
Nombre maximum de produits à renvoyer.
exemple: 10

body.signPrice: string
Marqueur de stockage de commande pour la fixation des prix. Si le paramètre est défini, le prix est fixé pour un certain temps.

💲 signPrice verrouille le prix renvoyé 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 Blocks.getCartSimilarByProductIds('cart_similar_block', {
productIds: [1, 2, 3],
});

Exemple avec des attributs

const response = await Blocks.getCartSimilarByProductIds('cart_similar_block', {
productIds: [1, 2, 3],
langCode: 'en_US',
limit: 10,
});

Exemple de réponse

{
"items": [
{
"id": 2954,
"localizeInfos": {
"title": "Box"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"attributeSetIdentifier": "products",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"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": [
{
"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
}
},
"categories": [
"catalog"
],
"rating": {},
"isVisible": true,
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 582,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 582
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2957,
"localizeInfos": {
"title": "Cosmo"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"attributeSetIdentifier": "products",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"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": "USD",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": "",
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": true
}
},
"categories": [
"catalog"
],
"rating": {},
"isVisible": true,
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 582,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 582
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2960,
"localizeInfos": {
"title": "Percent split"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"attributeSetIdentifier": "percent_split",
"position": 5,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 180,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"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
}
},
"categories": [
"catalog"
],
"rating": {},
"isVisible": true,
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 538,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 538
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
"..."
],
"total": 5
}

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: "in_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 tirée de 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 de module (optionnel).

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

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 de produit fixe (signedPrice).