Saltar al contenido principal

getCartSimilarByProductIds

Obtiene productos "similares al carrito" mediante una lista explícita de productIds.

Descripción

Este método devuelve productos similares a una lista explícita de identificadores de productos que se pasan en el cuerpo de la solicitud (en lugar de usar el carrito del contexto). Devuelve una Promesa que se resuelve en un objeto IProductsResponse: un contenedor con items (los productos), total y totalFound - no un array simple.

Blocks.getCartSimilarByProductIds(

marker*, body*

);

Esquema de parámetros

Esquema

marker(requerido): string
Marcador de bloque
ejemplo: "cart_similar_block"

body(requerido): IBlockProductsLookup
Cuerpo de búsqueda
ejemplo:

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

body.productIds(requerido): number[]
Identificadores de productos a buscar.
ejemplo: [1, 2, 3]

body.langCode: string
Código de idioma. Predeterminado: "en_US".

body.limit: number
Número máximo de productos a devolver.
ejemplo: 10

body.signPrice: string
Marcador de almacenamiento de pedidos para fijación de precios. Si se establece el parámetro, el precio se fija por un tiempo determinado.
ver: Fijación del precio

💲 signPrice bloquea el precio devuelto por un tiempo limitado: configúralo con tu marcador de almacenamiento de pedidos. Ver Fijación del precio (signPrice).

Ejemplos

Ejemplo mínimo

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

Ejemplo con atributos

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

Ejemplo de respuesta

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

Esquema de respuesta

Esquema: IProductsResponse

total: number
El número total de productos encontrados.
ejemplo: 100

items: IProductsEntity[]
Un array de entidades de productos.
ejemplo:

[
{
"id": 12345,
"title": "Product 1"
},
{
"id": 67890,
"title": "Product 2"
}
]

items.id: number
El identificador único.
ejemplo: 12345

items.localizeInfos: ILocalizeInfo
El nombre de los productos, teniendo en cuenta la localización.
ejemplo:

{}

items.statusIdentifier: string | null
Identificadores de estado de la página del producto (puede ser nulo).
ejemplo: "in_stock"

items.statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo:

{ "title": "Sale" }

items.attributeSetIdentifier: string | null
Id del conjunto de atributos.
ejemplo: "set_12345"

items.position: number
Número del ítem (para ordenamiento).
ejemplo: 1

items.price: number | null
El valor del precio de la página del producto tomado del índice.
ejemplo: 150.00

items.additional: object
Valor adicional del índice.
ejemplo:

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

items.sku: string | null
SKU del producto (Unidad de Mantenimiento de Stock), puede ser nulo.
ejemplo: "SKU_12345"

items.isSync: boolean
Indicación de indexación de la página.
ejemplo: true

items.attributeValues: IAttributeValues
Array de valores de atributos del índice, representados.
ejemplo:

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

items.categories: string[]
Categorías de productos.
ejemplo:

[
1,
2,
3
]

items.isVisible: boolean
Un signo de visibilidad de la página.
ejemplo: true

items.moduleFormConfigs: Array<IFormConfig>
Configuraciones de formularios del módulo (opcional).

items.rating: IRating
Datos de calificación.

items.isPositionLocked: boolean
Indicador de bloqueo de posición de ordenamiento (opcional).
ejemplo: false

items.relatedIds: number[]
Ids de páginas de productos relacionadas.
ejemplo:

[
12345,
67890
]

items.paymentStages: unknown
Datos de etapas de pago (puede ser nulo).
ejemplo: null

items.distance: number
Distancia de relevancia de búsqueda vectorial (semántica). Presente solo en resultados de búsqueda vectorial.
ejemplo: 0.42

items.discountConfig: Record<string, unknown>
Objeto de configuración de descuento.
ejemplo:

{}

items.templateIdentifier: string | null
Id de usuario de la plantilla vinculada.
ejemplo: "template_12345"

items.shortDescTemplateIdentifier: string | null
Id de usuario de la plantilla vinculada para una descripción corta.
ejemplo: "short_desc_template_12345"

items.signedPrice: string
El precio firmado del producto se obtiene junto con los datos del producto cuando signPrice está establecido.
ver: Precio fijo del producto
ejemplo: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

items.productPages: IProductPageRef[]
Array de referencias de páginas de productos que vinculan el producto a sus páginas.
ejemplo:

[
{
"id": 16,
"pageId": 4,
"productId": 15,
"positionId": 244,
"categoryPath": "products"
}
]

items.blocks: string[]
Array de identificadores de bloques.
ejemplo:

[
"block_12345",
"block_67890"
]

totalFound: number
Número de productos coincidentes antes de aplicar límites; devuelto por los endpoints de productos de bloque (similarProducts, recomendaciones de carrito/lista de deseos, pedidos frecuentes). Opcional.
ejemplo: 2

🔒 signedPrice es el token firmado que lleva el precio bloqueado: devuélvelo cuando crees un pedido. Ver Precio fijo del producto (signedPrice).