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 Promise qui se résout en un objet IProductsResponse - un conteneur avec items (les produits), total et totalFound - et non un tableau brut.
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.
voir : Fixation du prix
💲
signPriceverrouille 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": 4,
"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": 732,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 732
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2955,
"localizeInfos": {
"title": "Product"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"attributeSetIdentifier": "test",
"position": 5,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"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
}
},
"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": 732,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 732
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 3445,
"localizeInfos": {
"title": "Subscription"
},
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"attributeSetIdentifier": "subscription",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"sku": null,
"isSync": true,
"attributeValues": {
"price": {
"type": "integer",
"value": 150,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"currency_products": {
"type": "string",
"value": "USD",
"isIcon": false,
"position": 1,
"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": 732,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 732
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
"..."
],
"total": 5,
"totalFound": 5
}
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": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]
items.id: number
L'identifiant unique.
exemple: 12345
items.localizeInfos: ILocalizeInfo
Le nom des produits, en tenant compte de la localisation.
exemple:
{}
items.statusIdentifier: string | null
Identifiants de statut de page produit (peut être nul).
exemple: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nom de statut localisé pour le produit.
exemple:
{ "title": "Sale" }
items.attributeSetIdentifier: string | null
Identifiant de l'ensemble d'attributs.
exemple: "set_12345"
items.position: number
Numéro d'article (pour le tri).
exemple: 1
items.price: number | null
La valeur du prix de la page produit prise dans l'index.
exemple: 150.00
items.additional: object
Valeur supplémentaire de l'index.
exemple:
{
"prices": {
"min": 5,
"max": 150
}
}
items.sku: string | null
SKU du produit (Stock Keeping Unit), peut être nul.
exemple: "SKU_12345"
items.isSync: boolean
Indication de l'indexation de la page.
exemple: true
items.attributeValues: IAttributeValues
Tableau de valeurs d'attributs de l'index, représenté.
exemple:
[
{
"id": "color",
"value": "red"
}
]
items.categories: string[]
Catégories de produits.
exemple:
[
1,
2,
3
]
items.isVisible: boolean
Indication de la visibilité de la page.
exemple: true
items.moduleFormConfigs: Array<IFormConfig>
Configurations de formulaire de module (facultatif).
items.rating: IRating
Données d'évaluation.
items.isPositionLocked: boolean
Indicateur de verrouillage de la position de tri (facultatif).
exemple: false
items.relatedIds: number[]
Identifiants des pages de produits connexes.
exemple:
[
12345,
67890
]
items.paymentStages: unknown
Données des étapes de paiement (peut être nul).
exemple: null
items.distance: number
Distance de pertinence de recherche vectorielle (sémantique). Présente uniquement dans les résultats de recherche vectorielle.
exemple: 0.42
items.discountConfig: Record<string, unknown>
Objet de configuration de remise.
exemple:
{}
items.templateIdentifier: string | null
Identifiant utilisateur du modèle lié.
exemple: "template_12345"
items.shortDescTemplateIdentifier: string | null
Identifiant utilisateur du modèle lié pour une courte description.
exemple: "short_desc_template_12345"
items.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..."
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"
}
]
items.blocks: string[]
Tableau d'identifiants de blocs.
exemple:
[
"block_12345",
"block_67890"
]
totalFound: number
Nombre de produits correspondants avant l'application des limites ; renvoyé par les points de terminaison de produits de bloc (similarProducts, recommandations de panier/liste de souhaits, commandes fréquentes). Facultatif.
exemple: 2
🔒
signedPriceest le jeton signé qui porte le prix verrouillé — renvoyez-le lorsque vous créez une commande. Voir Prix fixe du produit (signedPrice).