Sale Channels
Đào sâu tính năng. Định danh dịch vụ nằm trong Tổng quan Commerce; bảng trường trong Domain Model §3.8.
Một SaleChannel đại diện cho một bối cảnh điểm bán (ví dụ "Kênh offline", "Cửa hàng online") mà sản phẩm có thể được gán vào qua bản ghi join SaleChannelProduct. Mỗi merchant có thể có nhiều kênh.
REST Endpoints
Tham khảo đầy đủ: OpenAPI trực tiếp tại
/v1/api/commerce/doc/openapi.json. CRUD chuẩn quaControllerFactory; base path/sale-channels.
Không có route tùy biến để quản lý liên kết kênh-sản phẩm, phân tích kênh, hay gán sản phẩm hàng loạt. Sản phẩm được liên kết với kênh qua bản ghi SaleChannelProduct được tạo trong quá trình tạo product aggregate (POST /products/aggregate với saleChannelIds).
SaleChannelService
File: src/services/sale-channel.service.ts
| Method | Mục đích |
|---|---|
findByIdentifier({ identifier, filter?, transaction? }) | Phân giải theo ID hoặc slug |
Đó là method duy nhất. Không có createChannel(), addProductToChannel(), getChannelProducts(), getChannelPrice(), hay phân tích.
Truy cập theo phạm vi merchant
Với người dùng không phải admin, find() và count() lọc sale channel theo các merchant ID mà người dùng có quyền truy cập qua chính sách Casbin. Người dùng admin/super-admin thấy tất cả kênh.
Phân giải identifier
GET /sale-channels/{id} phân giải bằng:
- Khớp ID trực tiếp
- Khớp trường
slug
Xóa
Được xử lý bởi DeletionPolicyService.deleteSaleChannelById():
- Xóa tất cả bản ghi
SaleChannelProductliên quan trước (cascade) - Rồi xóa hàng
SaleChannel
Tạo kênh trong Onboarding
Sale channel thường được tạo như một phần của:
- Onboarding merchant (
POST /organizers/on-boarding) — tạo các kênh mặc định được chỉ định trong request - Tạo hàng loạt (
POST /merchants/{id}/sale-channels/batch) — tạo nhiều kênh cho một merchant hiện có
Trang liên quan
| Trang | Mô tả |
|---|---|
| Tổng quan Commerce | Định danh dịch vụ + catalog |
| Domain Model | Bảng trường SaleChannel |
| Products | Tạo product aggregate với saleChannelIds |