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
| Key | Value | Bắt buộc | Mô 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ý
-
Xác thực Session: Kiểm tra JWT token và xác định
company_id+customer_idtừ token. Yêu cầu đăng nhập bắt buộc. -
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.
-
Tạo bản ghi wishlist: Gán
company_id,customer_idtừ session;product_id,from,ip_addresstừ request body. -
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ường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
product_id | integer | Có | 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. |
from | integer | Có | Nguồn thêm vào wishlist. Xem bảng From. |
ip_address | string | Khô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ỗi | Mô tả |
|---|---|
error_product_id_required | Thiếu product_id trong request body. |
error_product_id_invalid | product_id không tồn tại hoặc không thuộc shop hiện tại. |
error_product_id_existed | Sản phẩm đã nằm trong wishlist của khách hàng. |
error_from_not_exist | Giá 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).