Lấy tổng số lượng sản phẩm theo trang
Phương pháp này trả về tổng số lượng sản phẩm liên kết với một URL trang danh mục cụ thể. Nó hữu ích cho việc phân trang khi bạn cần biết có bao nhiêu sản phẩm tồn tại trên một trang nhất định, bao gồm hoặc không bao gồm các trang con lồng ghép.
✅ Mục đích của kịch bản:
- Lấy số lượng sản phẩm trên một trang danh mục cụ thể
- Phân biệt giữa sản phẩm trực tiếp và sản phẩm bao gồm các trang con
- Sử dụng số lượng cho phân trang trên các trang danh mục hoặc catalog
✅ Những gì bạn cần:
- Một PROJECT_URL và APP_TOKEN hợp lệ để xác thực với API OneEntry.
- Ít nhất một trang danh mục có sản phẩm trong dự án
- URL (dấu trang) của trang danh mục mục tiêu
📌 Quan trọng:
- Những ví dụ này không bao gồm xử lý lỗi.
- Bạn có thể quản lý lỗi bằng cách sử dụng khối try-catch hoặc bằng cách sử dụng một cấu trúc như await Promise.catch((error) => error).
- Truyền một mảng rỗng [] để đếm tất cả sản phẩm trên trang mà không cần lọc.
- totalInCategory chỉ đếm các sản phẩm trực tiếp trên trang đã cho; totalInCategoryWithNested cũng bao gồm các sản phẩm trên các trang con.
📚 Xem trong tài liệu:
📦 Tham khảo SDK:
Thử nghiệm trực tiếp
Chạy phương pháp này một cách tương tác trong JS SDK sandbox — kết nối URL Dự án và Mã thông báo Ứng dụng của bạn khi truy cập lần đầu, sau đó mở:
- Lấy tổng số lượng sản phẩm theo trang — Phương pháp này trả về tổng số lượng sản phẩm liên kết với một URL trang danh mục cụ thể. Nó hữu ích cho việc phân trang khi bạn cần biết có bao nhiêu sản phẩm tồn tại trên một trang nhất định, bao gồm hoặc không bao gồm các trang con lồng ghép.
Kịch bản
1. Nhập defineOneEntry từ SDK và định nghĩa PROJECT_URL và APP_TOKEN
Ví dụ:
import { defineOneEntry } from 'oneentry';
import { IFilterParams } from 'oneentry/dist/products/productsInterfaces';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. Tạo một khách hàng API với defineOneEntry()
Ví dụ:
const { Products } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Tùy chọn định nghĩa một body bộ lọc (mảng rỗng = tất cả sản phẩm trên trang)
Ví dụ:
// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];
4. Gọi Products.getProductsCountByPageUrl() với getProductsCountByPageUrl()
Ví dụ:
const count = await Products.getProductsCountByPageUrl('products', body);
if ('statusCode' in count) {
throw new Error(count.message);
}
console.log('Count data: ', count);
Kết quả:
{
"totalAll": 12,
"totalInCategory": 3,
"totalInCategoryWithNested": 3
}
Ví dụ cuối cùng
// 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);