getProductsByPageUrl
Pesquise por todos os objetos de produto com paginação para a categoria selecionada (pelo seu URL).
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 objeto IProductsResponse.
Produtos.getProductsByPageUrl(
url,
body,
langCode,
userQuery
);
Esquema de parâmetros
Esquema
url(obrigatório): string
URL da página
exemplo: "catalog"
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: "color"
body.conditionMarker: string | null
Id da condição de filtro pela qual os valores são filtrados. Padrão: null.
exemplo: "equals"
body.conditionValue(obrigatório): number | null
O valor que está sendo pesquisado, padrão null.
exemplo: "new"
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: "in_stock"
body.title: string | null
Nome do produto.
exemplo: "Laminatboden Maxima"
body.isNested: boolean
Flag para atributos aninhados, padrão false.
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): number
Parâmetro para paginação. Padrão: 0.
userQuery.limit(obrigatório): number
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", "position", "title", "date", "price". Padrão: null.
userQuery.signPrice: string
Sinal do 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: "in_stock"
userQuery.conditionValue: string | null
O valor que está sendo pesquisado, padrão null.
exemplo: "new"
userQuery.attributeMarker: string | null
O identificador de texto do atributo indexado pelo qual os valores são filtrados, padrão null.
exemplo: "color"
userQuery.conditionMarker: string | null
Marcador da condição de filtro pela qual os valores são filtrados, padrão null.
exemplo: "equals"
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.getProductsByPageUrl('catalog');
Exemplo com o parâmetro body
const body = [ { "attributeMarker": "price", "conditionMarker": "mth", "conditionValue": 1, "statusMarker": "waiting", "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.getProductsByPageUrl('catalog', 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.
| Marcador | Significado | Exemplo |
|---|---|---|
| eq | Igual | statusId = 1 (apenas ativo) |
| neq | Não igual | category ≠ "archived" |
| in | Contém (um dos) | category in ["electronics", "books"] |
| nin | Não contém | brand not in ["fake_brand"] |
| exs | Existe (tem valor) | Tem descrição |
| nexs | Não existe | Sem 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: 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: "in_stock"
items.statusLocalizeInfos: ILocalizeInfo
Nome de status localizado para o produto.
exemplo: { "title": "Sale" }
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 (Stock Keeping Unit), 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ários 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: 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 do 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: 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 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: "products"
items.blocks: string[]
Array de identificadores de bloco.
exemplo:
[
"block_12345",
"block_67890"
]