Quản lý sản phẩm (PIM)Sản phẩm yêu thích

Thêm sản phẩm vào yêu thích

Thêm một sản phẩm vào danh sách yêu thích (wishlist) của khách hàng đang đăng nhập.

Endpoint

POST /site/customerwishlists

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 sau khi đăng nhập.

Workflow & Logic

API này dùng để thêm một sản phẩm vào danh sách yêu thích (wishlist) của khách hàng đang đăng nhập. Hệ thống sẽ tự động gắn company_id và customer_id từ session, đảm bảo mỗi sản phẩm chỉ được thêm một lần cho mỗi khách hàng.

Quy trình xử lý

  1. Xác thực Session: Kiểm tra JWT token và xác định company_id + customer_id từ token. Yêu cầu đăng nhập bắt buộc.

  2. Validate dữ liệu:

    • product_id — bắt buộc, phải là ID sản phẩm tồn tại và thuộc shop hiện tại.
    • from — bắt buộc, phải nằm trong danh sách nguồn hợp lệ (xem bảng From).
    • Kiểm tra trùng: Nếu sản phẩm đã nằm trong wishlist của khách hàng, trả lỗi error_product_id_existed.
  3. Tạo bản ghi wishlist: Gán company_id, customer_id từ session; product_id, from, ip_address từ request body.

  4. Trả kết quả: Trả về đối tượng wishlist vừa tạo với HTTP 201.

Request Body

Content-Type: application/json

{
  "product_id": 789,
  "from": 1,
  "ip_address": "192.168.1.1"
}
TrườngKiểuBắt buộcMô tả
product_idintegerCóID sản phẩm cần thêm vào wishlist. Phải là sản phẩm hợp lệ và chưa nằm trong wishlist.
fromintegerCóNguồn thêm vào wishlist. Xem bảng From.
ip_addressstringKhôngĐịa chỉ IP của client tại thời điểm thêm sản phẩm.

Response Schema

HTTP 201 - Created (Thành công)

Trả về đối tượng Customer Wishlist Object vừa được tạo.

{
  "id": 102,
  "company_id": 123,
  "creator_id": 456,
  "product_id": 789,
  "from": 1,
  "ip_address": "192.168.1.1",
  "date_created": 1740300000,
  "date_modified": 0
}

HTTP 401 - Unauthorized

Nếu không gửi token (error_customer_login_required), token không hợp lệ/hết hạn/đã đăng xuất (error_jwt_hash_not_found, error_jwt_expired, error_jwt_blacklisted...) hoặc là token của khách hàng thuộc shop khác (error_customer_company_mismatch). Xem Giới thiệu.

HTTP 422 - Validation Error

Trả về khi dữ liệu đầu vào không hợp lệ.

Mã lỗiMô tả
error_product_id_requiredThiếu product_id trong request body.
error_product_id_invalidproduct_id không tồn tại hoặc không thuộc shop hiện tại.
error_product_id_existedSản phẩm đã nằm trong wishlist của khách hàng.
error_from_not_existGiá trị from không hợp lệ (không nằm trong danh sách nguồn cho phép).

HTTP 500 - Internal Server Error

Lỗi hệ thống khi không thể tạo bản ghi wishlist (error_add).

On this page