API Danh mục sản phẩm

API này cho phép lấy danh sách danh mục sản phẩm và chi tiết danh mục, dựa trên logic hàm list_category_noibat.
Ví dụ minh họa: Danh mục sản phẩm

1. Lấy danh sách danh mục

GET https://api.socdo.vn/v1/category_products
Các tham số có thể truyền (tùy chọn):
  • type: Loại danh mục (featured, index, all)
  • page: Trang hiện tại (mặc định: 1)
  • limit: Số danh mục mỗi trang (mặc định: 20, tối đa: 100)

2. Lấy chi tiết danh mục

GET https://api.socdo.vn/v1/category_products?category_id=123

Các loại danh mục:

  • featured: Danh mục nổi bật (cat_noibat=1), sắp xếp theo cat_thutu ASC
  • index: Danh mục hiển thị trang chủ (cat_index=1), sắp xếp theo cat_thutu DESC
  • all: Tất cả danh mục, sắp xếp theo cat_thutu ASC
Ví dụ lấy danh mục nổi bật bằng cURL:
curl -X GET "https://api.socdo.vn/v1/category_products?type=featured&limit=10" -H "Authorization: Bearer <token>"
Ví dụ lấy chi tiết danh mục bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/category_products?category_id=123");
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 (Danh sách):
{
    "success": true,
    "message": "Lấy danh sách danh mục thành công",
    "data": {
        "categories": [
            {
                "cat_id": "1",
                "cat_tieude": "Điện thoại",
                "cat_link": "dien-thoai",
                "cat_minhhoa": "/uploads/minh-hoa/category-phone.jpg",
                "cat_thutu": "1",
                "cat_noibat": "1",
                "cat_index": "1",
                "cat_mota": "Điện thoại thông minh chính hãng",
                "image_url": "https://api.socdo.vn/uploads/thumbs/list_danhmuc_noibat/category-phone.jpg",
                "category_url": "https://api.socdo.vn/danh-muc/1/dien-thoai.html",
                "total_products": 156,
                "is_featured": true,
                "is_index": true
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_pages": 1,
            "total_categories": 1,
            "limit": 10,
            "has_next": false,
            "has_prev": false
        },
        "filters": {
            "type": "featured"
        }
    }
}
Dữ liệu trả về mẫu (Chi tiết):
{
    "success": true,
    "message": "Lấy chi tiết danh mục thành công",
    "data": {
        "cat_id": "1",
        "cat_tieude": "Điện thoại",
        "cat_link": "dien-thoai",
        "cat_minhhoa": "/uploads/minh-hoa/category-phone.jpg",
        "cat_thutu": "1",
        "cat_noibat": "1",
        "cat_index": "1",
        "cat_mota": "Điện thoại thông minh chính hãng",
        "image_url": "https://api.socdo.vn/uploads/thumbs/list_danhmuc_noibat/category-phone.jpg",
        "category_url": "https://api.socdo.vn/danh-muc/1/dien-thoai.html",
        "total_products": 156
    }
}
Logic theo hàm list_category_noibat:
  • Featured categories: Lấy danh mục có cat_noibat='1', sắp xếp theo cat_thutu ASC
  • Hình ảnh: Ưu tiên thumbnail /uploads/thumbs/list_danhmuc_noibat/, fallback về ảnh gốc
  • Total products: Tự động đếm số sản phẩm có kho > 0 trong danh mục
  • URL generation: Tự động tạo category_url và image_url đầy đủ
Bảng database:
  • category_sanpham: Thông tin danh mục (cat_id, cat_tieude, cat_link, cat_minhhoa, cat_thutu, cat_noibat, cat_index, cat_mota)
  • sanpham: Để đếm số sản phẩm trong danh mục (cat field chứa danh sách cat_id)
Lưu ý:
  • Bạn cần lấy token xác thực trước khi gọi API này
  • Hình ảnh ưu tiên thumbnail để tối ưu tốc độ tải
  • API tự động đếm số sản phẩm có kho trong mỗi danh mục
  • Kết quả được phân trang cho danh sách danh mục
  • Chi tiết danh mục không có phân trang