getProducts
Busca todos los objetos de producto con paginación y filtro.
Descripción
Este método busca todos los objetos de producto con paginación y filtros, basándose en los parámetros de consulta proporcionados (userQuery). Devuelve una Promesa que se resuelve en un IProductsResponse.
Products.getProducts(
body,
langCode,
userQuery
);
Esquema de parámetros
Esquema
body: IFilterParams[]
Cuerpo de la solicitud. Predeterminado: []
ejemplo:
[
{
"attributeMarker": "price",
"conditionMarker": "mth",
"statusMarker": "waiting",
"conditionValue": 1,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
},
{
"attributeMarker": "price",
"conditionMarker": "lth",
"conditionValue": 3,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
}
]
body.attributeMarker(required): string | null
El identificador de texto del atributo indexado por el cual se filtran los valores. Predeterminado: null.
ejemplo: "color"
body.conditionMarker: string | null
Id de la condición de filtro por la cual se filtran los valores. Predeterminado: null.
ejemplo: "equals"
body.conditionValue(required): number | string | null
El valor que se está buscando, predeterminado null.
ejemplo: "nuevo"
body.pageUrl: string | null
Url del objeto de la página de categoría.
ejemplo: ["23-laminat-floorwood-maxima"]
body.pageUrls: string[] | null
Url del objeto de la página de categoría.
ejemplo: ["23-laminat-floorwood-maxima"]
body.statusMarker: string | null
Identificador de texto del estado de la página del producto (predeterminado no establecido).
ejemplo: "en_stock"
body.title: string | null
Nombre del producto.
ejemplo: "Laminatboden Maxima"
body.isNested: boolean
Indicador para atributos anidados, predeterminado falso.
ejemplo: true
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
userQuery: IProductsQuery
Parámetros de consulta opcionales
ejemplo:
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders",
"templateMarker": "template_12345",
"statusMarker": "in_stock",
"conditionValue": "new",
"conditionMarker": "eq",
"attributeMarker": "color"
}
userQuery.offset(required): number
Parámetro para paginación. Predeterminado: 0.
userQuery.limit(required): number
Parámetro para paginación. Predeterminado: 30.
userQuery.sortOrder(required): string
Orden de clasificación "DESC" | "ASC". Predeterminado: "DESC".
userQuery.sortKey(required): string
Campo para ordenar (predeterminado - null). Valores posibles: "id", "position", "title", "date", "price". Predeterminado: null.
userQuery.signPrice: string
Signo de precio. Predeterminado: null.
userQuery.templateMarker: string | null
Marcador de plantilla de la página del producto, predeterminado null.
ejemplo: "template_12345"
userQuery.statusMarker: string | null
Marcador de estado de la página del producto, predeterminado null.
ejemplo: "en_stock"
userQuery.conditionValue: string | null
El valor que se está buscando, predeterminado null.
ejemplo: "nuevo"
userQuery.attributeMarker: string | null
El identificador de texto del atributo indexado por el cual se filtran los valores, predeterminado null.
ejemplo: "color"
userQuery.conditionMarker: string | null
Marcador de la condición de filtro por la cual se filtran los valores, predeterminado null.
ejemplo: "equals"
userQuery.langCode: string
Código de idioma. Predeterminado: "en_US".
userQuery.ids: string
Lista de ids de producto separada por comas — utilizada por getProductsByIds.
ejemplo: "1,2,3"
Por defecto, puedes recuperar 10 objetos. Esto se debe al límite de registros en la configuración de permisos del módulo.
Para que la paginación funcione correctamente, necesitas configurar Permisos del módulo de acuerdo a tus necesidades en la sección correspondiente.
💲
signPricebloquea el precio devuelto por un tiempo limitado — configúralo con tu marcador de almacenamiento de pedidos. Consulta Fijar el precio (signPrice).
Ejemplos
Ejemplo mínimo
const response = await Products.getProducts();
Ejemplo con el parámetro body
const body = [ { "attributeMarker": "price", "conditionMarker": "mth", "statusMarker": "waiting", "conditionValue": 1, "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }, { "attributeMarker": "price", "conditionMarker": "lth", "conditionValue": 3, "pageUrls": [ "23-laminat-floorwood-maxima" ], "isNested": false, "title": "" }];
const response = await Products.getProducts(body);
Utiliza filtros para encontrar productos específicos:
attributeMarker: El identificador de texto del atributo indexado por el cual se filtran los valores. conditionMarker: El tipo de condición a aplicar al valor del atributo.
| Marcador | Significado | Ejemplo |
|---|---|---|
| eq | Igual | statusId = 1 (solo activo) |
| neq | No igual | category ≠ "archived" |
| in | Contiene (uno de) | category in ["electronics", "books"] |
| nin | No contiene | brand not in ["fake_brand"] |
| exs | Existe (tiene valor) | Tiene descripción |
| nexs | No existe | Sin imagen |
conditionValue: El valor con el que comparar.
Ejemplo de respuesta
{
"items": [
{
"id": 3445,
"localizeInfos": {
"title": "Subscription"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"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
}
},
"attributeSetIdentifier": "subscription",
"isPositionLocked": false,
"position": 1,
"rating": {},
"paymentStages": null,
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 590,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 590
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2960,
"localizeInfos": {
"title": "Percent split"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 180,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"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
}
},
"attributeSetIdentifier": "percent_split",
"isPositionLocked": false,
"position": 2,
"rating": {},
"paymentStages": [
{
"title": "s1",
"value": 108,
"marker": "s1"
},
{
"title": "s2",
"value": 72,
"marker": "s2"
}
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 590,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 590
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2959,
"localizeInfos": {
"title": "Split"
},
"isVisible": true,
"isSync": true,
"sku": null,
"price": 120,
"additional": {
"prices": {
"min": 51,
"max": 180
}
},
"categories": [
"catalog"
],
"statusIdentifier": "sale",
"statusLocalizeInfos": {
"title": "Sale"
},
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"attributeValues": {
"p": {
"type": "float",
"value": 120,
"isIcon": false,
"position": 0,
"additionalFields": {},
"isProductPreview": false
},
"p1": {
"type": "float",
"value": 40,
"isIcon": false,
"position": 1,
"additionalFields": {},
"isProductPreview": false
},
"p2": {
"type": "float",
"value": 60,
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"p3": {
"type": "float",
"value": 20,
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
},
"currency": {
"type": "string",
"value": "usd",
"isIcon": false,
"position": 4,
"additionalFields": {},
"isProductPreview": false
}
},
"attributeSetIdentifier": "test",
"isPositionLocked": false,
"position": 3,
"rating": {},
"paymentStages": [
{
"title": "p1",
"value": 40,
"marker": "p1"
},
{
"title": "p2",
"value": 60,
"marker": "p2"
},
{
"title": "p3",
"value": 20,
"marker": "p3"
}
],
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 590,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 590
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
"..."
],
"total": 6
}
Esquema de respuesta
Esquema: IProductsResponse
total: number
El número total de productos encontrados.
ejemplo: 100
items: IProductsEntity[]
Un array de entidades de producto.
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 null).
ejemplo: "en_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo:
{ "title": "Sale" }
items.attributeSetIdentifier: string | null
Conjunto de id de atributos.
ejemplo: "set_12345"
items.position: number
Número de ítem (para ordenación).
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 null.
ejemplo: "SKU_12345"
items.isSync: boolean
Indicación de indexación de 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 producto.
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 ordenación (opcional).
ejemplo: false
items.relatedIds: number[]
Ids de páginas de productos relacionados.
ejemplo:
[
12345,
67890
]
items.paymentStages: unknown
Datos de etapas de pago (puede ser null).
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
Signo de precio.
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"
]
🔒
signedPricees el token firmado que lleva el precio bloqueado — devuélvelo cuando crees un pedido. Consulta Precio de producto fijo (signedPrice).
Ejemplos de uso
Guías paso a paso en la documentación:
- Filtrar por atributos — filtra productos por un valor de atributo utilizando marcadores de condición (
eq,neq,in,mth,lth, etc.). - Rango de precios — reduce los productos a un rango de precios específico con filtros
mth/lth.
Pruébalo en vivo
Ejecuta este método de forma interactiva en el sandbox de JS SDK — conecta tu URL de Proyecto y Token de Aplicación en la primera visita, luego abre:
- Filtrar por atributos — filtra productos por un valor de atributo utilizando marcadores de condición (
eq,neq,in,mth,lth, etc.). - Rango de precios — reduce los productos a un rango de precios específico con filtros
mth/lth.