Aller au contenu principal

Obtenir le nombre total de produits par page

Cette méthode renvoie le nombre total de produits associés à une URL de page de catalogue spécifique. Elle est utile pour la pagination lorsque vous devez savoir combien de produits existent sur une page donnée, y compris ou excluant les pages enfants imbriquées.

✅ Objectif du scénario :

  • Obtenir le nombre de produits sur une page de catalogue spécifique
  • Faire la distinction entre les produits directs et les produits incluant les pages imbriquées
  • Utiliser le nombre pour la pagination sur les pages de catégorie ou de catalogue

✅ Ce dont vous avez besoin :

  • Une PROJECT_URL et un APP_TOKEN valides pour l'authentification avec l'API OneEntry.
  • Au moins une page de catalogue avec des produits dans le projet
  • L'URL (marqueur de page) de la page de catalogue cible

📌 Important :

  • Ces exemples n'incluent pas la gestion des erreurs.
  • Vous pouvez gérer les erreurs en utilisant un bloc try-catch ou en employant une construction comme await Promise.catch((error) => error).
  • Passez un tableau vide [] pour compter tous les produits sur la page sans filtrage.
  • totalInCategory compte uniquement les produits directement sur la page donnée ; totalInCategoryWithNested inclut également les produits sur les pages enfants.

📚 Voir dans la documentation :

📦 Référence SDK :

Essayez-le en direct

Exécutez cette méthode de manière interactive dans le bac à sable JS SDK — connectez votre Project URL et App Token lors de votre première visite, puis ouvrez :

  • Obtenir le nombre total de produits par page — Cette méthode renvoie le nombre total de produits associés à une URL de page de catalogue spécifique. Elle est utile pour la pagination lorsque vous devez savoir combien de produits existent sur une page donnée, y compris ou excluant les pages enfants imbriquées.

Scénario

1. Importer defineOneEntry depuis le SDK et définir PROJECT_URL et APP_TOKEN

Exemple :

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

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

2. Créer un client API avec defineOneEntry()

Exemple :

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

3. Optionnellement définir un corps de filtre (tableau vide = tous les produits sur la page)

Exemple :

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

4. Appeler Products.getProductsCountByPageUrl() avec getProductsCountByPageUrl()

Exemple :

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

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

Exemple 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);