getProductsEmptyPage
Busca todos los objetos de producto con paginación que no tienen una categoría.
Descripción
Este método busca objetos de página de producto con paginación que no tienen una categoría, basándose en los parámetros de consulta proporcionados (userQuery). Devuelve una Promesa que se resuelve en un objeto IProductsResponse.
Products.getProductsEmptyPage(
langCode,
userQuery
);
Esquema de parámetros
Esquema
body: object
Cuerpo de la solicitud. Predeterminado:
ejemplo:
{}
langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"
userQuery: IProductsQueryBase
Conjunto opcional de parámetros de consulta
ejemplo:
{
"limit": 30,
"offset": 0,
"sortOrder": "DESC",
"sortKey": "id",
"signPrice": "orders"
}
userQuery.offset(requerido): number
Parámetro para la paginación. Predeterminado: 0.
userQuery.limit(requerido): number
Parámetro para la paginación. Predeterminado: 30.
userQuery.sortOrder(requerido): string
Orden de clasificación "DESC" | "ASC". Predeterminado: "DESC".
userQuery.sortKey(requerido): string
Campo para ordenar (predeterminado - null). Valores posibles: "id", "position", "title", "date", "price". Predeterminado: null.
userQuery.signPrice: string
Marcador de almacenamiento de pedido para la fijación de precios. Si se establece el parámetro, el precio se fija por un tiempo determinado.
ver: Fijación del precio
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 como tu marcador de almacenamiento de pedidos. Ver Fijación del precio (signPrice).
Ejemplos
Ejemplo mínimo
const response = await Products.getProductsEmptyPage();
Ejemplo con atributos
const userQuery = {
"offset": 0,
"limit": 30,
"sortOrder": "DESC",
"sortKey": "id"
};
const response = await Products.getProductsEmptyPage('en_US', userQuery);
Usa 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 que se aplica al valor del atributo.
| Marcador | Significado | Ejemplo |
|---|---|---|
| eq | Igual | statusId = 1 (solo activo) |
| neq | No igual | role ≠ "Viewer" |
| in | Contiene (uno de) | role in ["Editor", "Manager"] |
| nin | No contiene | email not in ["@temp.com"] |
| exs | Existe (tiene valor) | Tiene lastLogin |
| nexs | No existe | Nunca ha iniciado sesión |
| pat | Coincide con el patrón | identifier matches "man" |
| same | Coincide exactamente con el valor | identifier is exactly "admin1" |
| same_part | Coincide con una parte del valor exactamente | parte de identifier es exactamente "adm" |
conditionValue: El valor con el que comparar.
Ejemplo de respuesta
{
"total": 15,
"items": [
{
"localizeInfos": {
"title": "Товар"
},
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"id": 1764,
"isVisible": true,
"isSync": true,
"price": 0,
"additional": {
"prices": {
"min": 0,
"max": 100
}
},
"blocks": [],
"sku": "0-123",
"productPages": [
{
"id": 8997,
"pageId": 1176,
"productId": 8872
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"statusLocalizeInfos": {
"title": "Товар"
},
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "my-template-short",
"attributeValues": {
"marker": {
"value": "",
"type": "string",
"position": 1,
"isProductPreview": false,
"isIcon": false,
"additionalFields": {
"marker": {
"type": "string",
"value": "test"
}
}
}
},
"attributeSetIdentifier": "my-set",
"statusIdentifier": "my-status",
"position": 1,
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"formModuleConfigs": [
{
"id": 1,
"formIdentifier": "reg",
"moduleIdentifier": "user",
"entityIdentifiers": [],
"isGlobal": true,
"isClosed": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"formDataCount": 0,
"entityFormDataCount": {},
"exceptionIds": [
"shop"
],
"nestedEntityIdentifiers": [
"avto-aksessuary",
"fm-moduliatory",
"avtomobilnye-derzhateli",
"videoregistratory-radiolokatory"
],
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true
}
],
"discountConfig": {
"discounts": [
{
"id": 5,
"identifier": "summer-sale",
"type": "DISCOUNT",
"localizeInfos": {
"title": "Summer Sale"
},
"startDate": "2026-01-01T06:32:19.736Z",
"endDate": "2026-01-28T06:32:22.632Z",
"discountValue": {
"value": 30,
"maxAmount": 0,
"discountType": "FIXED_PRICE",
"applicability": "TO_PRODUCT"
},
"exclusions": [
{
"id": 2
}
],
"position": 3,
"conditionLogic": "OR",
"gifts": [
{
"id": 3,
"localizeInfos": {
"title": "hhh222"
},
"attributeSetIdentifier": "attr-set-1",
"statusIdentifier": null,
"statusLocalizeInfos": {},
"templateIdentifier": null,
"price": 90,
"sku": null,
"attributeValues": {
"price1": {
"type": "integer",
"value": "90",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
},
"isVisible": true
}
],
"conditions": [
{
"conditionType": "PRODUCT",
"entityIds": [
{
"id": 4,
"isNested": false
},
{
"isNested": false
}
],
"value": null
},
{
"conditionType": "ATTRIBUTE",
"entityIds": [
{
"isNested": false
}
],
"value": {
"value": "100",
"condition": "eq"
}
}
]
}
],
"discountPrice": 90,
"settings": {
"allowStacking": true,
"maxDiscountValue": 30,
"allowGiftStacking": false
}
}
},
{
"localizeInfos": {
"title": "Товар"
},
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"id": 1764,
"isVisible": true,
"isSync": true,
"price": 0,
"additional": {
"prices": {
"min": 0,
"max": 100
}
},
"blocks": [],
"sku": "0-123",
"productPages": [
{
"id": 8997,
"pageId": 1176,
"productId": 8872
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"statusLocalizeInfos": {
"title": "Товар"
},
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "my-template-short",
"attributeValues": {
"marker": {
"value": "",
"type": "string",
"position": 1,
"isProductPreview": false,
"isIcon": false,
"additionalFields": {
"marker": {
"type": "string",
"value": "test"
}
}
}
},
"attributeSetIdentifier": "my-set",
"statusIdentifier": "my-status",
"position": 1,
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"formModuleConfigs": [
{
"id": 1,
"formIdentifier": "reg",
"moduleIdentifier": "user",
"entityIdentifiers": [],
"isGlobal": true,
"isClosed": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"formDataCount": 0,
"entityFormDataCount": {},
"exceptionIds": [
"shop"
],
"nestedEntityIdentifiers": [
"avto-aksessuary",
"fm-moduliatory",
"avtomobilnye-derzhateli",
"videoregistratory-radiolokatory"
],
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true
}
],
"discountConfig": {
"discounts": [
{
"id": 5,
"identifier": "summer-sale",
"type": "DISCOUNT",
"localizeInfos": {
"title": "Summer Sale"
},
"startDate": "2026-01-01T06:32:19.736Z",
"endDate": "2026-01-28T06:32:22.632Z",
"discountValue": {
"value": 30,
"maxAmount": 0,
"discountType": "FIXED_PRICE",
"applicability": "TO_PRODUCT"
},
"exclusions": [
{
"id": 2
}
],
"position": 3,
"conditionLogic": "OR",
"gifts": [
{
"id": 3,
"localizeInfos": {
"title": "hhh222"
},
"attributeSetIdentifier": "attr-set-1",
"statusIdentifier": null,
"statusLocalizeInfos": {},
"templateIdentifier": null,
"price": 90,
"sku": null,
"attributeValues": {
"price1": {
"type": "integer",
"value": "90",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
},
"isVisible": true
}
],
"conditions": [
{
"conditionType": "PRODUCT",
"entityIds": [
{
"id": 4,
"isNested": false
},
{
"isNested": false
}
],
"value": null
},
{
"conditionType": "ATTRIBUTE",
"entityIds": [
{
"isNested": false
}
],
"value": {
"value": "100",
"condition": "eq"
}
}
]
}
],
"discountPrice": 90,
"settings": {
"allowStacking": true,
"maxDiscountValue": 30,
"allowGiftStacking": false
}
}
}
]
}
Esquema de respuesta
Esquema: IProductsResponse
attrValue: string
Valor del atributo.
items: IProductsEntity[]
Array de entidades de producto.
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: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nombre de estado localizado para el producto.
ejemplo:
{ "title": "Sale" }
items.attributeSetIdentifier: string | null
Conjunto de identificadores de atributos.
ejemplo: "set_12345"
items.position: number
Número del ítem (para ordenar).
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 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 ordenación (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 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 descuentos.
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"
]
productIds: string[]
Array de ids de productos.
total: number
Total de conteo.
🔒
signedPricees el token firmado que lleva el precio bloqueado — devuélvelo cuando crees un pedido. Ver Precio fijo del producto (signedPrice).