API Quản lý Banner

API này cho phép quản lý banner hoàn chỉnh: lấy danh sách, chi tiết, tạo mới, cập nhật và xóa banner.
Ví dụ minh họa: Quản lý Banner

1. Lấy danh sách banner

GET https://api.socdo.vn/v1/banner
Các tham số có thể truyền (tùy chọn):
  • vi_tri: Vị trí banner (header, footer, sidebar, etc.)
  • shop_id: ID shop (-1 = tất cả, 0 = shop chính)
  • page: Trang hiện tại (mặc định: 1)
  • limit: Số banner mỗi trang (mặc định: 20, tối đa: 100)

2. Lấy chi tiết banner

GET https://api.socdo.vn/v1/banner?banner_id=123

3. Tạo banner mới

POST https://api.socdo.vn/v1/banner
Các trường bắt buộc:
  • tieu_de: Tiêu đề banner
  • minh_hoa: Đường dẫn hình ảnh banner
  • vi_tri: Vị trí hiển thị banner
Các trường tùy chọn:
  • link: Liên kết khi click banner
  • bg_banner: Ảnh nền banner
  • target: Target link (_self, _blank)
  • thu_tu: Thứ tự hiển thị
  • shop_id: ID shop (mặc định: 0)
Dữ liệu mẫu tạo banner (JSON):
{
    "tieu_de": "Banner khuyến mãi tháng 9",
    "minh_hoa": "/uploads/banner/banner-sale-09.jpg",
    "link": "https://example.com/khuyen-mai",
    "bg_banner": "/uploads/banner/bg-sale.jpg",
    "target": "_blank",
    "thu_tu": 1,
    "vi_tri": "header",
    "shop_id": 0
}

4. Cập nhật banner

PUT https://api.socdo.vn/v1/banner
Dữ liệu mẫu cập nhật (JSON):
{
    "banner_id": 123,
    "tieu_de": "Banner khuyến mãi tháng 10",
    "thu_tu": 2,
    "vi_tri": "sidebar"
}

5. Xóa banner

DELETE https://api.socdo.vn/v1/banner
Dữ liệu mẫu xóa (JSON):
{
    "banner_id": 123
}
Ví dụ lấy danh sách bằng cURL:
curl -X GET "https://api.socdo.vn/v1/banner?vi_tri=header&shop_id=0&page=1&limit=10" -H "Authorization: Bearer <token>"
Ví dụ tạo banner bằng PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.socdo.vn/v1/banner");
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([
    "tieu_de" => "Banner khuyến mãi tháng 9",
    "minh_hoa" => "/uploads/banner/banner-sale-09.jpg",
    "link" => "https://example.com/khuyen-mai",
    "bg_banner" => "/uploads/banner/bg-sale.jpg",
    "target" => "_blank",
    "thu_tu" => 1,
    "vi_tri" => "header",
    "shop_id" => 0
]));
$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 banner thành công",
    "data": {
        "banners": [
            {
                "id": "1",
                "tieu_de": "Banner khuyến mãi tháng 9",
                "minh_hoa": "/uploads/banner/banner-sale-09.jpg",
                "link": "https://example.com/khuyen-mai",
                "bg_banner": "/uploads/banner/bg-sale.jpg",
                "target": "_blank",
                "thu_tu": "1",
                "vi_tri": "header",
                "shop_id": "0",
                "image_url": "https://api.socdo.vn/uploads/banner/banner-sale-09.jpg",
                "bg_url": "https://api.socdo.vn/uploads/banner/bg-sale.jpg"
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_pages": 1,
            "total_banners": 1,
            "limit": 10,
            "has_next": false,
            "has_prev": false
        },
        "filters": {
            "vi_tri": "header",
            "shop_id": 0
        }
    }
}
Dữ liệu trả về mẫu (Tạo mới):
{
    "success": true,
    "message": "Tạo banner thành công",
    "data": {
        "banner_id": 1,
        "tieu_de": "Banner khuyến mãi tháng 9",
        "vi_tri": "header",
        "thu_tu": 1,
        "image_url": "https://api.socdo.vn/uploads/banner/banner-sale-09.jpg",
        "bg_url": "https://api.socdo.vn/uploads/banner/bg-sale.jpg"
    }
}
Dữ liệu trả về mẫu (Cập nhật):
{
    "success": true,
    "message": "Cập nhật banner thành công",
    "data": {
        "banner_id": 123,
        "updated_fields": 3
    }
}
Dữ liệu trả về mẫu (Xóa):
{
    "success": true,
    "message": "Xóa banner thành công",
    "data": {
        "banner_id": 123
    }
}
Lưu ý:
  • Bạn cần lấy token xác thực trước khi gọi API này
  • minh_hoabg_banner phải là đường dẫn tương đối từ thư mục gốc
  • target: _self (mở cùng tab), _blank (mở tab mới)
  • vi_tri: header, footer, sidebar, popup, etc.
  • Banner được sắp xếp theo thu_tu tăng dần, sau đó theo ID giảm dần
  • API tự động tạo image_urlbg_url đầy đủ
  • Khi cập nhật, chỉ cần truyền các trường muốn thay đổi
  • Xóa banner chỉ xóa trong database, không xóa file ảnh