Pular para o conteúdo principal

getProductsByPageId

Pesquise todos os objetos de produto com paginação para a categoria selecionada.

Descrição

Este método pesquisa todos os objetos de produtos com paginação para a categoria selecionada, com base nos parâmetros de consulta fornecidos (userQuery). Ele retorna uma Promise que resolve para um array de itens, onde cada item é um objeto. Ele retorna uma Promise que resolve para um IProductsResponse.

Products.getProductsByPageId( id, body, langCode, userQuery );

Esquema de parâmetros

Esquema

id(obrigatório): número
ID da página
exemplo: 2492

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(obrigatório): 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(obrigatório): número | 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 opcional de parâmetros de consulta
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(obrigatório): número
Parâmetro para paginação. Padrão: 0.

userQuery.limit(obrigatório): número
Parâmetro para paginação. Padrão: 30.

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

userQuery.sortKey(obrigatório): 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.getProductsByPageId( id, body );

Exemplo com o parâmetro body


const body = [
{
"attributeMarker": "preço",
"conditionMarker": "mth",
"conditionValue": 1,
"statusMarker": "aguardando",
"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.getProductsByPageId( id, 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 ≠ "arquivada"
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": 2954,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Box"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 1,
"templateIdentifier": null,
"shortDescTemplateIdentifier": "product_preview",
"price": 51,
"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"
},
"isPositionLocked": false,
"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": {}
},
{
"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": {},
"isPositionLocked": false,
"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": 2957,
"attributeSetIdentifier": "products",
"localizeInfos": {
"title": "Cosmo"
},
"statusLocalizeInfos": {
"title": "Sale"
},
"isVisible": true,
"statusIdentifier": "sale",
"position": 3,
"templateIdentifier": null,
"shortDescTemplateIdentifier": null,
"price": 150,
"additional": {
"prices": {
"min": 51,
"max": 150
}
},
"sku": null,
"isSync": true,
"categories": [
"catalog"
],
"paymentStages": null,
"rating": {},
"isPositionLocked": false,
"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
}
},
"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: número
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: número
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 (pode ser nulo).
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: número
Número do item (para classificação).
exemplo: 1

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

items.additional: objeto
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 da posição de classificação (opcional).
exemplo: false

items.relatedIds: número[]
IDs de páginas de produtos relacionadas.
exemplo:

[
12345,
67890
]

items.paymentStages: desconhecido
Dados das etapas de pagamento (pode ser nulo).
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 ligando o produto às suas páginas.
exemplo:

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

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

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

productPages.productId: número
Identificador do produto.
exemplo: 15

productPages.positionId: número
Identificador da 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"
]