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
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
API Mini App Documentation
Tài liệu hướng dẫn tích hợp API cho ứng dụng Mini App của Sóc Đỏ. Cung cấp các endpoint để phát triển ứng dụng di động với đầy đủ tính năng.
Base URL: https://api.socdo.vn/mini-app/v1/
Ví dụ tích hợp cơ bản
// Khởi tạo Mini App
const miniApp = new SocdoMiniApp({
    appId: 'your-app-id',
    secretKey: 'your-secret-key',
    environment: 'production' // hoặc 'sandbox'
});

// Xác thực người dùng
const authResult = await miniApp.auth.login({
    phone: '0123456789',
    password: 'password123'
});

// Lấy danh sách sản phẩm
const products = await miniApp.products.list({
    page: 1,
    limit: 20,
    category: 'electronics'
});
                        
Response mẫu
{
    "success": true,
    "data": {
        "products": [
            {
                "id": 1,
                "name": "iPhone 15 Pro",
                "price": 29990000,
                "image": "https://example.com/image.jpg",
                "category": "electronics"
            }
        ],
        "pagination": {
            "page": 1,
            "limit": 20,
            "total": 100
        }
    },
    "message": "Lấy danh sách sản phẩm thành công"
}