Quản lý sản phẩm (PIM)Danh mục sản phẩm

Lấy thuộc tính danh mục

Lấy cấu hình bộ lọc và thuộc tính kỹ thuật (Attribute Schema) của danh mục.

Endpoint

GET /site/productcategories/getattributecategory/{category_id}

Headers

KeyValueBắt buộcMô tả
SiteTenantId{tenant_id}CóID của công ty/tenant.

Workflow & Logic

API này cực kỳ quan trọng để xây dựng:

  1. Bộ lọc (Filter Sidebar): Hiển thị các thuộc tính lọc (Màn hình, RAM, CPU...) tương ứng với danh mục đang xem.
  2. Thông số kỹ thuật: Hiển thị bảng thông số kỹ thuật chuẩn của sản phẩm trong danh mục.

Quy trình xử lý (Internal Processing)

  1. Tìm danh mục (Find Category):

    • Tìm danh mục theo category_id.
  2. Kế thừa thuộc tính (Attribute Inheritance Strategy):

    • Kiểm tra xem danh mục hiện tại có được gán attribute_category_id hay không.
    • Nếu có: Lấy cấu hình thuộc tính đó.
    • Nếu không: Hệ thống tự động Đệ quy ngược lên cha (parent_id) để tìm cấu hình thuộc tính của danh mục cha.
    • Ví dụ: Nếu danh mục "iPhone 15" không có cấu hình riêng, nó sẽ dùng cấu hình của danh mục cha "Điện thoại thông minh".
    • Lưu ý: Khi kế thừa từ cha, phần tử trong items là dữ liệu của danh mục cha (có attribute_category_id khác 0), không phải danh mục được truyền vào.
    • Nếu không tìm thấy danh mục (hoặc không thuộc shop hiện tại), hoặc không có cấp nào được gán cấu hình thuộc tính, items là mảng rỗng.
  3. Cấu trúc dữ liệu trả về (Data Structure Building):

    • Load AttributeCategory (Nhóm cấu hình).
    • Load AttributeGroup (Các nhóm thuộc tính, ví dụ: "Hiển thị", "Cấu hình", "Camera"), sắp xếp theo display_order ASC, trả trong mảng attribute_group.
    • Load Attribute (Các thuộc tính chi tiết, ví dụ: "Kích thước màn hình", "Độ phân giải") của tất cả các nhóm, sắp xếp theo display_order ASC, gộp vào một mảng phẳng attribute ở cấp danh mục. Dùng attribute_group_id của từng thuộc tính để ghép với nhóm.
  4. Kết quả:

    • Trả về đối tượng danh mục kèm attribute_category, attribute_group và attribute để Frontend render UI.

Parameters

TênKiểuBắt buộcMô tả
category_idintegerCóID danh mục cần lấy thuộc tính.

Response Schema

HTTP 200 - JSON Object

{
  "total": 1,
  "currentpage": 1,
  "limit": 50,
  "items": [
    {
      "id": 10,
      "name": "Điện thoại",
      // ... category fields
      "attribute_category": {
        "id": 5,
        "name": "Thuộc tính điện thoại",
        // ... attribute category fields
      },
      "attribute_group": [
        {
          "id": 101,
          "attribute_category": 5,
          "name": "Màn hình",
          "display_order": 1,
          // ... attribute group fields
        }
      ],
      "attribute": [
        {
          "id": 1001,
          "attribute_group_id": 101,
          "name": "Kích thước",
          "type": 1, // 1: Text, 3: Number, 5: Boolean, 7: Date, 9: Single Select, 11: Multi Select
          // ... attribute fields
        }
      ]
    }
  ]
}

Các lỗi thường gặp (422)

Mã lỗiMô tả
error_not_permissionKhông tìm thấy thông tin category_id hợp lệ trong yêu cầu.

Xem chi tiết các trường của nhóm thuộc tính và thuộc tính tại Attribute Category Object.

On this page