ReviewĐánh giá đơn hàng

Tạo đánh giá đơn hàng

Tạo đánh giá mới cho đơn hàng

Endpoint

POST /site/orderreviews

Headers

KeyValueBắt buộcMô tả
SiteTenantId{tenant_id}CóID của công ty/tenant.
SiteAuthorization{jwt_token}CóToken định danh khách hàng.

Workflow & Logic

API này cho phép khách hàng tạo đánh giá mới cho đơn hàng đã mua, đánh giá về chất lượng giao hàng, đóng gói và dịch vụ.

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

  1. Xác thực (Authentication):

    • Kiểm tra quyền truy cập thông qua JWT token.
    • Xác định khách hàng từ token.
  2. Kiểm tra tính hợp lệ (Validation):

    • Đánh giá giao hàng (rating_delivery): Phải từ 0 đến 5.
    • Đánh giá đóng gói (rating_packaging): Phải từ 0 đến 5.
    • Đánh giá dịch vụ (rating_service): Phải từ 0 đến 5.
    • Bình luận (comment): Tối đa 4000 ký tự (tùy chọn).
    • Đơn hàng (sale_order_id): Phải tồn tại và thuộc về khách hàng đang đăng nhập.
    • File đính kèm (file_id_list): Mỗi file ID phải tồn tại, thuộc về cùng công ty (shop) và do chính khách hàng đang đăng nhập tải lên.
  3. Tạo đánh giá:

    • Tạo mới OrderReview với trạng thái STATUS_PENDING (chờ duyệt). comment và tags được loại bỏ thẻ HTML trước khi lưu.
    • Lưu địa chỉ IP của khách hàng.
    • Gán visible = 1 (hiển thị công khai).
  4. Kết quả:

    • Nếu thành công: Trả về đối tượng OrderReview vừa tạo (HTTP 201).
    • Nếu lỗi validation: Trả về danh sách lỗi (HTTP 422).

Request Body

{
  "sale_order_id": 100,
  "rating_delivery": 5,
  "rating_packaging": 4,
  "rating_service": 5,
  "comment": "Giao hàng nhanh, đóng gói cẩn thận, dịch vụ tốt",
  "tags": "nhanh, cẩn thận",
  "file_id_list": [101, 102]
}

Request Body Schema

Tên trườngKiểuBắt buộcMô tả
sale_order_idintegerCóID đơn hàng được đánh giá.
rating_deliveryintegerKhôngĐánh giá giao hàng (0-5, mặc định 0).
rating_packagingintegerKhôngĐánh giá đóng gói (0-5, mặc định 0).
rating_serviceintegerKhôngĐánh giá dịch vụ (0-5, mặc định 0).
commentstringKhôngBình luận (tối đa 4000 ký tự).
tagsstringKhôngThẻ tag.
file_id_listarrayKhôngDanh sách ID file đính kèm.

Response Schema

HTTP 201 - Created

Trả về đối tượng Order Review Object vừa tạo.

{
  "id": 1,
  "sale_order_id": 100,
  "rating_delivery": 5,
  "rating_packaging": 4,
  "rating_service": 5,
  "comment": "Giao hàng nhanh, đóng gói cẩn thận, dịch vụ tốt",
  "status": 1,
  "date_created": 1600000000
  // ... Xem thêm Order Review Object Schema
}

HTTP 401 - Unauthorized

Nếu thiếu token, token không hợp lệ hoặc đã hết hạn (error_customer_login_required), hoặc token không thuộc shop của SiteTenantId (error_customer_company_mismatch).

HTTP 422 - Validation Error

Mã lỗiMô tả
error_rating_delivery_invalidĐánh giá giao hàng phải từ 0 đến 5.
error_rating_packaging_invalidĐánh giá đóng gói phải từ 0 đến 5.
error_rating_service_invalidĐánh giá dịch vụ phải từ 0 đến 5.
error_comment_too_longBình luận vượt quá 4000 ký tự.
error_order_not_foundĐơn hàng không tồn tại hoặc không thuộc về khách hàng.
error_file_not_found(ID: {id})File ID không tồn tại hoặc không thuộc về khách hàng.

HTTP 500

Mã lỗiMô tả
error_addLỗi khi lưu đánh giá.

On this page