API Yêu thích sản phẩm

API này cho phép thêm hoặc xóa sản phẩm khỏi danh sách yêu thích của người dùng.
Ví dụ minh họa: Thao tác yêu thích sản phẩm

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

POST https://api.socdo.vn/v1/add_favorite
Các trường bắt buộc:
  • user_id: ID người dùng
  • product_id: ID sản phẩm
Dữ liệu mẫu thêm yêu thích (JSON):
{
    "user_id": 123,
    "product_id": 456
}

2. Xóa sản phẩm khỏi yêu thích

DELETE https://api.socdo.vn/v1/add_favorite
Dữ liệu mẫu xóa yêu thích (JSON):
{
    "user_id": 123,
    "product_id": 456
}
Ví dụ thêm yêu thích bằng cURL:
curl -X POST "https://api.socdo.vn/v1/add_favorite" -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d '{"user_id": 123, "product_id": 456}'
Ví dụ thêm yêu thích bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/add_favorite");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer <token>"
]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    "user_id" => 123,
    "product_id" => 456
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Ví dụ xóa yêu thích bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/add_favorite");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer <token>"
]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    "user_id" => 123,
    "product_id" => 456
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Dữ liệu trả về mẫu (Thêm yêu thích):
{
    "success": true,
    "message": "Thêm sản phẩm vào danh sách yêu thích thành công",
    "data": {
        "favorite_id": 789,
        "user_id": 123,
        "product_id": 456,
        "product_name": "iPhone 15 Pro Max"
    }
}
Dữ liệu trả về mẫu (Xóa yêu thích):
{
    "success": true,
    "message": "Xóa sản phẩm khỏi danh sách yêu thích thành công",
    "data": {
        "user_id": 123,
        "product_id": 456,
        "action": "removed"
    }
}
Lỗi phổ biến:
// Sản phẩm đã yêu thích (409)
{
    "success": false,
    "message": "Sản phẩm đã có trong danh sách yêu thích"
}

// Sản phẩm không tồn tại (404)
{
    "success": false,
    "message": "Không tìm thấy sản phẩm"
}

// Sản phẩm chưa yêu thích (404)
{
    "success": false,
    "message": "Sản phẩm không có trong danh sách yêu thích"
}
Tính năng:
  • Thêm yêu thích (POST): Thêm sản phẩm vào danh sách yêu thích
  • Xóa yêu thích (DELETE): Xóa sản phẩm khỏi danh sách yêu thích
  • Validation: Kiểm tra sản phẩm tồn tại, tránh trùng lặp
  • Auto ID: Tự động tạo ID yêu thích
  • Product info: Trả về tên sản phẩm khi thêm thành công
Bảng database:
  • yeu_thich_san_pham: Lưu trữ quan hệ yêu thích (id, user_id, product_id)
  • sanpham: Validate sản phẩm tồn tại
Lưu ý:
  • Bạn cần lấy token xác thực trước khi gọi API này
  • user_idproduct_id là tham số bắt buộc
  • API tự động kiểm tra sản phẩm có tồn tại không
  • Tránh thêm trùng lặp - trả về lỗi 409 nếu đã yêu thích
  • Khi xóa, kiểm tra sản phẩm có trong danh sách yêu thích không
  • Tự động tạo ID yêu thích khi thêm
  • Có thể kết hợp với API favorite_products để lấy danh sách
  • Có thể kết hợp với API product_detail để check trạng thái yêu thích