ReviewBình luận sản phẩm

Danh sách bình luận sản phẩm

Lấy danh sách bình luận đã được duyệt của một sản phẩm

Endpoint

GET /site/productcomments/{product_id}

Headers

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

Workflow & Logic

API này lấy danh sách các bình luận đã được duyệt của một sản phẩm, kèm theo danh sách phản hồi cho mỗi bình luận, phục vụ việc hiển thị bình luận 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. Lọc dữ liệu (Filtering):

    • Chỉ lấy các bình luận có:

      • status = STATUS_VERIFIED (đã được duyệt).
      • product_id khớp với sản phẩm được yêu cầu.
  3. Sắp xếp & Phân trang (Sorting & Pagination):

    • Sắp xếp theo trường được chỉ định (sort_by), mặc định theo id tăng dần (ASC).
    • Phân trang với page và limit, mặc định page = 1 và limit = 50 (tối đa 50).
  4. Đếm tổng số bản ghi (Counting):

    • Đếm tổng số bản ghi phù hợp với điều kiện lọc (không áp dụng limit).
  5. Làm giàu dữ liệu (Data Enrichment):

    • Lấy danh sách ProductComment theo điều kiện lọc, sắp xếp và phân trang.
    • Với mỗi bình luận, lấy danh sách phản hồi đã duyệt (reply_list, tối đa 500 phản hồi, sắp theo id tăng dần).
    • Không trả số điện thoại và email của người bình luận/phản hồi.
  6. Format & Trả về (Formatting & Response):

    • Tổng hợp vào cấu trúc response với total, currentpage, limit, và items[].

Parameters

TênKiểuBắt buộcMô tả
product_idintegerCóID sản phẩm (trong URL path).
pageintegerTrang hiện tại (Mặc định: 1).
limitintegerSố lượng bản ghi mỗi trang (Mặc định và tối đa: 50).
sort_bystringTrường sắp xếp (id, status, date_created). Mặc định: id.
sort_typestringHướng sắp xếp (ASC, DESC). Mặc định: ASC.

Response Schema

HTTP 200 - JSON Object

{
  "total": 50,
  "currentpage": 1,
  "limit": 50,
  "items": [
    {
      "id": 1,
      "product_id": 10,
      "fullname": "Nguyễn Văn A",
      "content": "Sản phẩm này có chất lượng tốt không?",
      "count_reply": 2,
      "status": 3,
      "date_created": 1600000000,
      "reply_list": [
        {
          "id": 1,
          "content": "Sản phẩm chất lượng tốt, bạn yên tâm nhé",
          "date_created": 1600000200
          // ... Product Comment Reply Object
        }
      ]
      // ... Xem thêm Product Comment Object Schema
    }
  ]
}

Xem Product Comment Object Schema

HTTP 422 - Permission Error

Nếu sản phẩm không tồn tại hoặc không thuộc về công ty.

Error Codes

HTTPMã lỗiMô tả
422error_not_permissionSản phẩm không tồn tại hoặc không thuộc về shop.
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