ReviewĐánh giá sản phẩm

Thống kê đánh giá sản phẩm

Lấy thống kê đánh giá trung bình và chi tiết số lượng đánh giá theo từng sao

Endpoint

GET /site/productreviews/product/{product_id}/avgrating

Headers

KeyValueBắt buộcMô tả
SiteTenantId{tenant_id}CóID của công ty/tenant.

Workflow & Logic

API này lấy thống kê đánh giá của một sản phẩm, bao gồm điểm trung bình và số lượng đánh giá theo từng mức sao (1-5), phục vụ việc hiển thị rating summary trên trang chi tiết sản phẩm.

Quy trình xử lý (Internal Processing)

  1. Khởi tạo & Kiểm tra (Initialization & Validation):

    • Khởi tạo site context từ header SiteTenantId (không yêu cầu đăng nhập).
    • Kiểm tra sản phẩm có tồn tại và thuộc về shop của SiteTenantId.
  2. Tính toán thống kê (Statistics Calculation):

    • Lấy danh sách số lượng đánh giá theo từng mức sao (1-5) từ các đánh giá có rating từ 1 đến 5, đã được duyệt (STATUS_APPROVED) và hiển thị công khai (visible = 1).
    • Tính tổng số đánh giá (total_rating).
    • Tính điểm trung bình (avg_rating) = Tổng (số sao × số lượng) / Tổng số đánh giá.
    • Tạo chi tiết (details) với số lượng đánh giá cho từng mức sao (1, 2, 3, 4, 5).
  3. Kết quả:

    • Nếu sản phẩm không tồn tại hoặc không thuộc shop: Trả về giá trị mặc định (total_rating = 0, avg_rating = 0, details = []).
    • Nếu sản phẩm tồn tại nhưng chưa có đánh giá nào được duyệt: details là mảng rỗng [].
    • Nếu sản phẩm tồn tại: Trả về thống kê đầy đủ.

Parameters

TênKiểuBắt buộcMô tả
product_idintegerCóID sản phẩm (trong URL path).

Response Schema

HTTP 200 - JSON Object

{
  "total_rating": 150,
  "avg_rating": 4.5,
  "details": {
    "1": 5,
    "2": 10,
    "3": 20,
    "4": 40,
    "5": 75
  }
}

Response Fields

Tên trườngKiểu dữ liệuMô tả
total_ratingintegerTổng số đánh giá đã được duyệt và hiển thị công khai
avg_ratingfloatĐiểm trung bình (không làm tròn; client tự định dạng khi hiển thị)
detailsobjectSố lượng đánh giá theo từng mức sao (key: 1-5, value: số lượng)

Details Object

Mỗi key trong details tương ứng với số sao (1-5), value là số lượng đánh giá ở mức đó.

{
  "1": 5,   // 5 đánh giá 1 sao
  "2": 10,  // 10 đánh giá 2 sao
  "3": 20,  // 20 đánh giá 3 sao
  "4": 40,  // 40 đánh giá 4 sao
  "5": 75   // 75 đánh giá 5 sao
}

Error Codes

HTTPMã lỗiMô tả
404error_company_not_found_from_site_tenant_idSiteTenantId không hợp lệ hoặc shop không còn hoạt động.

On this page