Lewati ke konten utama

Dapatkan total jumlah produk per halaman

Metode ini mengembalikan total jumlah produk yang terkait dengan URL halaman katalog tertentu. Ini berguna untuk paginasi ketika Anda perlu mengetahui berapa banyak produk yang ada di halaman tertentu, termasuk atau mengecualikan halaman anak yang bersarang.

✅ Tujuan skenario:

  • Mendapatkan jumlah produk di halaman katalog tertentu
  • Membedakan antara produk langsung dan produk yang termasuk halaman bersarang
  • Menggunakan jumlah untuk paginasi di halaman kategori atau katalog

✅ Apa yang Anda butuhkan:

  • PROJECT_URL dan APP_TOKEN yang valid untuk otentikasi dengan API OneEntry.
  • Setidaknya satu halaman katalog dengan produk di dalam proyek
  • URL (penanda halaman) dari halaman katalog target

📌 Penting:

  • Contoh-contoh ini tidak mencakup penanganan kesalahan.
  • Anda dapat mengelola kesalahan menggunakan blok try-catch atau dengan menggunakan konstruksi seperti await Promise.catch((error) => error).
  • Lewati array kosong [] untuk menghitung semua produk di halaman tanpa penyaringan.
  • totalInCategory hanya menghitung produk yang langsung ada di halaman yang diberikan; totalInCategoryWithNested juga termasuk produk di halaman anak.

📚 Lihat di dokumentasi:

📦 Referensi SDK:

Coba secara langsung

Jalankan metode ini secara interaktif di JS SDK sandbox — sambungkan Project URL dan App Token Anda pada kunjungan pertama, lalu buka:

  • Dapatkan total jumlah produk per halaman — Metode ini mengembalikan total jumlah produk yang terkait dengan URL halaman katalog tertentu. Ini berguna untuk paginasi ketika Anda perlu mengetahui berapa banyak produk yang ada di halaman tertentu, termasuk atau mengecualikan halaman anak yang bersarang.

Skenario

1. Impor defineOneEntry dari SDK dan definisikan PROJECT_URL dan APP_TOKEN

Contoh:

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

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

2. Membuat klien API dengan defineOneEntry()

Contoh:

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

3. Opsional mendefinisikan tubuh filter (array kosong = semua produk di halaman)

Contoh:

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

4. Panggil Products.getProductsCountByPageUrl() dengan getProductsCountByPageUrl()

Contoh:

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

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

Contoh akhir

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