Skip to content

Categories

Đào sâu tính năng. Định danh dịch vụ nằm trong Tổng quan Commerce; bảng trường category trong Domain Model §3.9.

Categories tổ chức sản phẩm thành phân cấp. Chúng có hai loại: category SYSTEM (chỉ đọc, dùng chung giữa các merchant cùng business type) và category tùy biến (do merchant sở hữu, sửa được hoàn toàn).

REST Endpoints

Tham khảo đầy đủ: OpenAPI trực tiếp tại /v1/api/commerce/doc/openapi.json. CRUD chuẩn qua ControllerFactory; base path /categories.

Không có route tùy biến (không /categories/tree, không /categories/{id}/move, không /categories/{id}/breadcrumb). Không có CategoryService — controller xử lý toàn bộ logic tùy biến trực tiếp.

Loại Category

LoạimerchantIdSửa đượcHiển thị với
SYSTEMnullKhông (403 khi update/delete)Merchant khớp businessType của category
Tùy biếnMerchant IDChỉ merchant đó

Vai trò Category (Category.type)

Category.type (CategoryTypes: REGULAR / COMBO / ADDON / FBT) là nhãn nhóm FE thuần túy — nó không phải bộ phân biệt tồn kho. Không có gì trong đường tồn kho hay bán rẽ nhánh theo nó.

Quyết định cấu trúc "đây có phải combo ảo không?" nằm trên ProductVariant.type (ProductVariantTypes.COMBO, bên cạnh KIT). Các quan hệ COMBO / ADDON / FBT nằm trong bảng ProductBundler đơn (ProductBundler.type). Xem ADR-0003ADR nổ combo cross-package.

Category.type không còn điều khiển hành vi, đổi type một category hoặc di chuyển một Product giữa các category là an toàn — nó không thể lật một variant giữa vật lý và ảo.

Truy cập theo phạm vi merchant

Với người dùng không phải admin, find() yêu cầu một merchantId trong filter. Controller sau đó trả về hợp của:

  1. Category SYSTEM nơi businessType khớp businessType của merchant
  2. Category tùy biến nơi merchantId khớp

Bảo vệ Category SYSTEM

  • updateById() chặn cập nhật category nơi type === 'SYSTEM' → HTTP 403
  • deleteById() chặn xóa category SYSTEM → HTTP 403

Chính sách xóa

Xóa category đi qua DeletionPolicyService.deleteCategoryById():

strictCategoryDeletion của MerchantCategory có sản phẩmHành vi
true (mặc định)HTTP 409 — không thể xóa
trueKhôngCho phép xóa
falsecategoryId của sản phẩm đặt thành null, rồi xóa category
falseKhôngCho phép xóa

Chính sách xóa được cấu hình theo từng merchant qua PUT /merchants/{id}/deletion-policy.

Trang liên quan

TrangMô tả
Tổng quan CommerceĐịnh danh dịch vụ + catalog
Domain ModelBảng trường Category
ProductsDanh mục sản phẩm
ADR-0003Vì sao Category.type chỉ để nhóm

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.