Chuyển đến nội dung chính

Lấy tổng số lượng sản phẩm

Phương pháp này trả về tổng số lượng sản phẩm trong dự án của bạn. Bạn có thể tùy chọn truyền một bộ lọc để chỉ đếm các sản phẩm phù hợp với các điều kiện cụ thể.

✅ Mục đích của kịch bản:

  • Lấy tổng số lượng sản phẩm
  • Tùy chọn lọc theo các điều kiện thuộc tính
  • Sử dụng số lượng cho phân trang hoặc kiểm tra tính khả dụng

✅ 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 sản phẩm trong dự án

📌 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 mà không cần lọc.

📚 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 lần đầu truy cập, sau đó mở:

  • Lấy tổng số lượng sản phẩm — Phương pháp này trả về tổng số lượng sản phẩm trong dự án của bạn. Bạn có thể tùy chọn truyền một bộ lọc để chỉ đếm các sản phẩm phù hợp với các điều kiện cụ thể.

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 bộ lọc (mảng rỗng = tất cả sản phẩm)

Ví dụ:

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

4. Gọi Products.getProductsCount() với getProductsCount()

Ví dụ:

const data = await Products.getProductsCount(body);

if ('statusCode' in data) {
throw new Error(data.message);
}

console.log('Count data: ', data);
Kết quả:
{
"totalAll": 12,
"totalInCategory": 0,
"totalInCategoryWithNested": 0
}

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)
// To filter, use conditions like: [{ attributeMarker: 'price', conditionMarker: 'mth', conditionValue: 100, isNested: false }]
const body: IFilterParams[] = [];

// 4. Call Products.getProductsCount() with [getProductsCount()](/docs/products/#getProductsCount)
const data = await Products.getProductsCount(body);

if ('statusCode' in data) {
throw new Error(data.message);
}

console.log('Count data: ', data);