Pular para o conteúdo principal

getProducts

Pesquise todos os objetos de produto com paginação e filtro.

Descrição

Este método pesquisa todos os objetos de produtos com paginação que não possuem uma categoria, com base nos parâmetros de consulta fornecidos (userQuery). Ele retorna uma Promise que resolve para um IProductsResponse.

Products.getProducts( body, langCode, userQuery );

Esquema de parâmetros

Esquema

body: IFilterParams[]
Corpo da solicitação. Padrão: []
exemplo:

[
{
"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
O identificador de texto do atributo indexado pelo qual os valores são filtrados. Padrão: null.
exemplo: "cor"

body.conditionMarker: string | null
Id da condição de filtro pela qual os valores são filtrados. Padrão: null.
exemplo: "igual"

body.conditionValue(required): number | null
O valor que está sendo pesquisado, padrão null.
exemplo: "novo"

body.pageUrl: string | null
Url do objeto da página da categoria.
exemplo: ["23-laminat-floorwood-maxima"]

body.pageUrls: string[] | null
Url do objeto da página da categoria.
exemplo: ["23-laminat-floorwood-maxima"]

body.statusMarker: string | null
Identificador de texto do status da página do produto (padrão não definido).
exemplo: "em_estoque"

body.title: string | null
Nome do produto.
exemplo: "Laminatboden Maxima"

body.isNested: boolean
Flag para atributos aninhados, padrão falso.
exemplo: true

langCode: string
Código do idioma. Padrão: "en_US"
exemplo: "en_US"

userQuery: IProductsQuery
Conjunto de parâmetros de consulta opcionais
exemplo:

{
"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 paginação. Padrão: 0.

userQuery.limit(required): number
Parâmetro para paginação. Padrão: 30.

userQuery.sortOrder(required): string
Ordem de classificação "DESC" | "ASC". Padrão: "DESC".

userQuery.sortKey(required): string
Campo para classificação (padrão - null). Valores possíveis: "id", "posição", "título", "data", "preço". Padrão: null.

userQuery.signPrice: string
Sinal de preço. Padrão: null.

userQuery.templateMarker: string | null
Marcador de template da página do produto, padrão null.
exemplo: "template_12345"

userQuery.statusMarker: string | null
Marcador de status da página do produto, padrão null.
exemplo: "em_estoque"

userQuery.conditionValue: string | null
O valor que está sendo pesquisado, padrão null.
exemplo: "novo"

userQuery.attributeMarker: string | null
O identificador de texto do atributo indexado pelo qual os valores são filtrados, padrão null.
exemplo: "cor"

userQuery.conditionMarker: string | null
Marcador da condição de filtro pela qual os valores são filtrados, padrão null.
exemplo: "igual"

userQuery.langCode: string
Código do idioma. Padrão: "en_US".

userQuery.ids: string
Lista de ids de produtos separados por vírgula — usada por getProductsByIds.
exemplo: "1,2,3"

Por padrão, você pode recuperar 10 objetos. Isso se deve ao limite de registro nas configurações de permissões do módulo.
Para que a paginação funcione corretamente, você precisa configurar as Permissões do Módulo de acordo com suas necessidades na seção correspondente.

Exemplos

Exemplo mínimo

const response = await Products.getProducts();

Exemplo com o parâmetro body


const body = [
{
"attributeMarker": "preço",
"conditionMarker": "mth",
"statusMarker": "aguardando",
"conditionValue": 1,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
},
{
"attributeMarker": "preço",
"conditionMarker": "lth",
"conditionValue": 3,
"pageUrls": [
"23-laminat-floorwood-maxima"
],
"isNested": false,
"title": ""
}
];

const response = await Products.getProducts(body);

Use filtros para encontrar produtos específicos:

attributeMarker: O identificador de texto do atributo indexado pelo qual os valores são filtrados. conditionMarker: O tipo de condição a ser aplicada ao valor do atributo.

MarcadorSignificadoExemplo
eqIgualstatusId = 1 (apenas ativo)
neqNão igualcategoria ≠ "arquivado"
inContém (um dos)categoria in ["eletrônicos", "livros"]
ninNão contémmarca não in ["marca_falsa"]
exsExiste (tem valor)Tem descrição
nexsNão existeSem imagem

conditionValue: O valor a ser comparado.

Exemplo de resposta

{
"items": [
{
"id": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": "my-template",
"shortDescTemplateIdentifier": "My template description",
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": [
{
"title": "Part A",
"marker": "part_a",
"value": 100
},
{
"title": "Part B",
"marker": "part_b",
"value": 200
}
],
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"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": "",
"isIcon": false,
"position": 2,
"additionalFields": {},
"isProductPreview": false
},
"img": {
"type": "image",
"value": [],
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"signedPrice": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": true,
"maxRatingScale": 5,
"isAnonymous": true,
"allowRerating": true,
"isRating": true,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"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
}
}
},
{
"id": 2955,
"attributeSetIdentifier": null,
"localizeInfos": {
"title": "Product"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 2,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": null,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": false,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {
"votes": 42,
"value": 4.5,
"like": 10,
"dislike": 2,
"method": "weighted"
},
"attributeValues": {},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
},
{
"id": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"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": 241636,
"filename": "files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png",
"contentType": "image/png",
"downloadLink": "https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png"
},
"isIcon": false,
"position": 3,
"additionalFields": {},
"isProductPreview": false
}
},
"moduleFormConfigs": [
{
"id": 12,
"formIdentifier": "review",
"moduleIdentifier": "catalog",
"isGlobal": false,
"isClosed": false,
"isModerate": false,
"viewOnlyMyData": false,
"commentOnlyMyData": false,
"entityIdentifiers": [
{
"id": "catalog",
"isNested": true
}
],
"formDataCount": 374,
"ratingCalculation": "average",
"allowHalfRatings": null,
"maxRatingScale": null,
"isAnonymous": null,
"allowRerating": null,
"isRating": null,
"entityFormDataCount": {
"2954": 374
},
"nestedEntityIdentifiers": [
"catalog"
],
"exceptionIds": []
}
],
"discountConfig": {}
}
],
"total": 3
}

Esquema de resposta

Esquema: IProductsResponse

total: number
O número total de produtos encontrados.
exemplo: 100

items: IProductsEntity[]
Um array de entidades de produtos.
exemplo:

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

items.id: number
O identificador único.
exemplo: 12345

items.localizeInfos: ILocalizeInfo
O nome dos produtos, levando em conta a localização.
exemplo:

items.statusIdentifier: string | null
Identificadores de status da página do produto (podem ser nulos).
exemplo: "em_estoque"

items.statusLocalizeInfos: ILocalizeInfo
Nome de status localizado para o produto.
exemplo: { "title": "Venda" }

items.attributeSetIdentifier: string | null
Id do conjunto de atributos.
exemplo: "set_12345"

items.position: number
Número do item (para classificação).
exemplo: 1

items.price: number | null
O valor do preço da página do produto retirado do índice.
exemplo: 150.00

items.additional: object
Valor adicional do índice.
exemplo: { prices: { min: 5 max: 150 } }

items.sku: string | null
SKU do produto (Unidade de Manutenção de Estoque), pode ser nulo.
exemplo: "SKU_12345"

items.isSync: boolean
Indicação de indexação da página.
exemplo: true

items.attributeValues: AttributeType
Array de valores de atributos do índice, representados.
exemplo:

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

items.categories: string[]
Categorias de produtos.
exemplo:

[
1,
2,
3
]

items.isVisible: boolean
Um sinal de visibilidade da página.
exemplo: true

items.moduleFormConfigs: Array<IFormConfig>
Configurações de formulário do módulo (opcional).

items.rating: IRating
Dados de classificação.

items.isPositionLocked: boolean
Indicador de bloqueio de posição de classificação (opcional).
exemplo: false

items.relatedIds: number[]
Ids de páginas de produtos relacionados.
exemplo:

[
12345,
67890
]

items.paymentStages: unknown
Dados das etapas de pagamento (podem ser nulos).
exemplo: null

items.discountConfig: Record<string, unknown>
Objeto de configuração de desconto.
exemplo:

items.templateIdentifier: string | null
Id do usuário do template vinculado.
exemplo: "template_12345"

items.shortDescTemplateIdentifier: string | null
Id do usuário do template vinculado para uma descrição curta.
exemplo: "short_desc_template_12345"

items.signedPrice: string
Sinal de preço.

items.productPages: IProductPageRef[]
Array de referências de páginas de produtos vinculando o produto às suas páginas.
exemplo:

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

productPages.id: number
Identificador único do registro de link produto-página.
exemplo: 16

productPages.pageId: number
Identificador da página à qual o produto está vinculado.
exemplo: 4

productPages.productId: number
Identificador do produto.
exemplo: 15

productPages.positionId: number
Identificador de posição de classificação dentro da página.
exemplo: 244

productPages.categoryPath: string
Caminho da categoria da página à qual o produto pertence.
exemplo: "produtos"

items.blocks: string[]
Array de identificadores de bloco.
exemplo:

[
"block_12345",
"block_67890"
]