API Sản phẩm yêu thích
API này cho phép lấy danh sách sản phẩm yêu thích của người dùng, dựa trên logic hàm list_sanpham_yeuthich.
Ví dụ minh họa: Danh sách sản phẩm yêu thích
Ví dụ minh họa: Danh sách sản phẩm yêu thích
GET https://api.socdo.vn/v1/favorite_products
Các tham số:
- user_id: ID người dùng (bắt buộc)
- page: Trang hiện tại (mặc định: 1)
- limit: Số sản phẩm mỗi trang (mặc định: 50, tối đa: 100)
Ví dụ lấy danh sách bằng cURL:
curl -X GET "https://api.socdo.vn/v1/favorite_products?user_id=123&page=1&limit=20" -H "Authorization: Bearer <token>"
Ví dụ kết nối bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/favorite_products?" . http_build_query([
"user_id" => 123,
"page" => 1,
"limit" => 20
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Dữ liệu trả về mẫu:
{
"success": true,
"message": "Lấy danh sách sản phẩm yêu thích thành công",
"data": {
"products": [
{
"id": "456",
"ma_sanpham": "SP002",
"tieu_de": "iPhone 15 Pro",
"minh_hoa": "/uploads/minh-hoa/iphone15pro.jpg",
"gia_cu": 30000000,
"gia_moi": 25000000,
"gia_ctv": 24000000,
"thuong_hieu": "Apple",
"kho": 80,
"ban": 45,
"view": 2500,
"box_banchay": 1,
"box_noibat": 1,
"box_flash": 0,
"date_post": "1695020400",
"link": "iphone-15-pro",
"noi_bat": "Chip A17 Pro, Camera 48MP Pro",
"shop": "123",
"cat": "1,2,3",
"total_reviews": 45,
"avg_rating": 4.8,
"favorite_id": "789",
"gia_cu_formatted": "30,000,000",
"gia_moi_formatted": "25,000,000",
"gia_ctv_formatted": "24,000,000",
"discount_percent": 17,
"date_post_formatted": "18/09/2023 15:00:00",
"image_url": "https://api.socdo.vn/uploads/thumbs/sanpham_anh_340x340/iphone15pro.jpg",
"product_url": "https://api.socdo.vn/san-pham/456/iphone-15-pro.html",
"badges": ["Bán chạy", "Nổi bật", "-17%", "Voucher", "Freeship", "Chính hãng"],
"voucher_icon": "Voucher",
"freeship_icon": "Freeship",
"chinhhang_icon": "Chính hãng",
"sold_count": 89,
"star_html": "",
"label_sale": "-17%"
}
],
"pagination": {
"current_page": 1,
"total_pages": 3,
"total_favorites": 45,
"limit": 20,
"has_next": true,
"has_prev": false
},
"user_id": 123
}
}
Logic theo hàm list_sanpham_yeuthich:
- JOIN với yeu_thich_san_pham: Lấy sản phẩm user đã yêu thích
- JOIN với sanpham: Thông tin chi tiết sản phẩm
- JOIN với phanloai_sanpham: Giá chi tiết theo phân loại
- JOIN với product_comments: Rating và reviews
- DISTINCT: Tránh trùng lặp sản phẩm
- ORDER BY y.id DESC: Sản phẩm yêu thích mới nhất trước
- LIMIT 50: Giới hạn tối đa 50 sản phẩm mỗi lần
Các bảng database liên quan:
- yeu_thich_san_pham: Quan hệ user-product yêu thích (user_id, product_id, date_add)
- sanpham: Thông tin sản phẩm chính
- phanloai_sanpham: Phân loại và giá chi tiết
- product_comments: Đánh giá và rating
- coupon: Voucher giảm giá
- transport: Chính sách vận chuyển
Lưu ý:
- Bạn cần lấy token xác thực trước khi gọi API này
- user_id là tham số bắt buộc
- API tự động tính giá từ bảng phanloai_sanpham nếu có
- Tự động check voucher và freeship theo thời gian thực
- Hình ảnh ưu tiên thumbnail để tối ưu tốc độ tải
- Kết quả được sắp xếp theo ID yêu thích mới nhất (y.id DESC)
- Có thông tin favorite_id để quản lý
- Tránh trùng lặp sản phẩm với DISTINCT và checked_ids