Pular para o conteúdo principal

Obter contagem total de produtos por página

Este método retorna o número total de produtos associados a uma URL específica de página de catálogo. É útil para paginação quando você precisa saber quantos produtos existem em uma determinada página, incluindo ou excluindo páginas filhas aninhadas.

✅ Propósito do cenário:

  • Obter a contagem de produtos em uma página de catálogo específica
  • Distinguir entre produtos diretos e produtos que incluem páginas aninhadas
  • Usar a contagem para paginação em páginas de categoria ou catálogo

✅ O que você precisa:

  • Um PROJECT_URL e APP_TOKEN válidos para autenticação com a API OneEntry.
  • Pelo menos uma página de catálogo com produtos no projeto
  • A URL (marcador de página) da página de catálogo alvo

📌 Importante:

  • Estes exemplos não incluem tratamento de erros.
  • Você pode gerenciar erros usando um bloco try-catch ou empregando uma construção como await Promise.catch((error) => error).
  • Passe um array vazio [] para contar todos os produtos na página sem filtragem.
  • totalInCategory conta apenas produtos diretamente na página dada; totalInCategoryWithNested também inclui produtos em páginas filhas.

📚 Veja na documentação:

📦 Referência SDK:

Experimente ao vivo

Execute este método interativamente no sandbox do JS SDK — conecte seu Project URL e App Token na primeira visita, depois abra:

  • Obter contagem total de produtos por página — Este método retorna o número total de produtos associados a uma URL específica de página de catálogo. É útil para paginação quando você precisa saber quantos produtos existem em uma determinada página, incluindo ou excluindo páginas filhas aninhadas.

Cenário

1. Importar defineOneEntry do SDK e definir PROJECT_URL e APP_TOKEN

Exemplo:

import { defineOneEntry } from 'oneentry';
import { IFilterParams } from 'oneentry/dist/products/productsInterfaces';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. Criando um cliente API com defineOneEntry()

Exemplo:

const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. Opcionalmente, defina um corpo de filtro (array vazio = todos os produtos na página)

Exemplo:

// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];

4. Chame Products.getProductsCountByPageUrl() com getProductsCountByPageUrl()

Exemplo:

const count = await Products.getProductsCountByPageUrl('products', body);

if ('statusCode' in count) {
throw new Error(count.message);
}
console.log('Count data: ', count);
Resultado:
{
"totalAll": 12,
"totalInCategory": 3,
"totalInCategoryWithNested": 3
}

Exemplo final

// 1. Import defineOneEntry from SDK and define PROJECT_URL and APP_TOKEN
import { defineOneEntry } from 'oneentry';
import { IFilterParams } from 'oneentry/dist/products/productsInterfaces';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Creating an API client with [defineOneEntry()](/docs/index/#Installation)
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Optionally define a filter body (empty array = all products on the page)
// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];

// 4. Call Products.getProductsCountByPageUrl() with [getProductsCountByPageUrl()](/docs/products/#getProductsCountByPageUrl)
const count = await Products.getProductsCountByPageUrl('products', body);

if ('statusCode' in count) {
throw new Error(count.message);
}
console.log('Count data: ', count);