Skip to content

URD: Sản phẩm

ModuleCORE-05Phiên bảnv0.4
Trạng tháiBuiltNgày2026-05-29

1. Mục đích

Định nghĩa các yêu cầu hướng người dùng cho quản lý danh mục sản phẩm: cách chủ cửa hàng tạo và duy trì sản phẩm, các biến thể họ thực sự bán, giá (fares) mà các biến thể đó mang, nhóm hàng tổ chức chúng, và định danh dùng để tra cứu. Danh mục là nền tảng mà mọi kênh bán đọc từ đó.

2. Phạm vi

Bao gồmLoại trừ
Tạo / cập nhật / quản lý trạng thái sản phẩmĐịnh mức nguyên vật liệu & công thức → Kho
Nhóm hàng (với cờ add-on)Mức tồn theo địa điểm → Kho
Biến thể và các thao tác biến thể aggregateXử lý đơn hàng & thanh toán → Đơn hàng
Fares và bộ fare (đầu vào định giá)Tính chiết khấu khuyến mãi (Đang thực hiện)
Định danh đa lược đồ (SYSTEM, SLUG, SKU, BARCODE, QRCODE)Engine quy đổi đơn vị (Dự kiến)
Khả dụng theo kênh bánNhập hàng loạt / CSV (Dự kiến)
Loại biến thể & đơn vị đo lườngĐặc tả API kỹ thuật → tài liệu lập trình viên
Lọc dữ liệu theo vai trò

Chỉ là định nghĩa khái niệm — schema và hành vi cụ thể nằm trong mô hình miền commercefares của pricing.

3. Định nghĩa

Thuật ngữĐịnh nghĩa
Sản phẩm (Product)Một mục cơ sở trong danh mục của merchant.
Biến thể (Variant)Một đơn vị bán được của sản phẩm (ví dụ kích cỡ hoặc hương vị). Thứ thực sự được bán và định giá.
Loại biến thể (Variant type)Phân loại điều khiển việc quản lý tồn & bundle: STORABLE, CONSUMABLE, SERVICE, KIT, COMBO, MANUFACTURED.
Bộ fare (Fare set)Container định giá liên kết 1-1 với một biến thể.
FareMột mục giá bên trong bộ fare; có thể là giá cơ bản, override, hoặc bậc theo số lượng/thời gian/kênh.
Nhóm hàng (Category)Một nhóm sản phẩm trong một merchant; có thể đánh cờ add-on.
Định danh (Identifier)Một mã theo lược đồ (SYSTEM, SLUG, SKU, BARCODE, QRCODE) dùng để tra cứu.
BundleQuan hệ combo, add-on, hoặc thường-mua-cùng giữa các biến thể.
Sản phẩm theo kênh bán (Sale-channel product)Một ánh xạ kiểm soát sản phẩm nào hiển thị ở kênh nào.

4. Mô hình Khái niệm

Chỉ là khái niệm — schema đầy đủ nằm trong mô hình miền commercefares của pricing.

5. Yêu cầu Chức năng

Mỗi bảng cho một lĩnh vực chức năng. Mã <AREA> khớp với ID test-case. Mức ưu tiên = MoSCoW (Must / Should / Could / Won't).

5.1 Sản phẩm (PRD)

IDPYêu cầuTrạng thái
URD-PRD-001MChủ có thể tạo một sản phẩm trong một merchantBuilt
URD-PRD-002MMỗi sản phẩm nhận một định danh do hệ thống sinh và slugBuilt
URD-PRD-003MTên & mô tả sản phẩm hỗ trợ nhiều ngôn ngữBuilt
URD-PRD-004MMột biến thể mặc định được tạo cùng mỗi sản phẩm mớiBuilt
URD-PRD-005MChủ có thể cập nhật thông tin sản phẩmBuilt
URD-PRD-006MChủ có thể vô hiệu hóa / kích hoạt lại / lưu trữ một sản phẩmBuilt
URD-PRD-007MSlug sản phẩm là duy nhất trong cùng một merchantBuilt
URD-PRD-008MNgười dùng có thể tìm sản phẩm theo ID hoặc slugBuilt
URD-PRD-009MNgười dùng có thể xem danh sách sản phẩm (lọc theo vai trò)Built
URD-PRD-013SChủ có thể đính kèm hình ảnh / media cho sản phẩmBuilt
URD-PRD-014SChủ có thể gán sản phẩm cho các kênh bán cụ thểBuilt
URD-PRD-015SSản phẩm đã lưu trữ là chỉ đọc (trạng thái cuối)Built
URD-PRD-016SSản phẩm hỗ trợ phân cấp cha-conBuilt
URD-PRD-017SNgười dùng có thể tìm sản phẩm theo tên (một phần, nhận biết i18n)Built
URD-PRD-018SNgười dùng có thể lọc danh sách sản phẩm theo nhóm hàngBuilt
URD-PRD-019CChủ có thể nhập danh mục từ CSV / bảng tínhPlanned

5.2 Nhóm hàng (CAT)

IDPYêu cầuTrạng thái
URD-CAT-001MChủ có thể tạo nhóm hàng trong một merchantBuilt
URD-CAT-002MTên nhóm hàng hỗ trợ nhiều ngôn ngữBuilt
URD-CAT-003MChủ có thể cập nhật và xóa nhóm hàngBuilt
URD-CAT-004SMột nhóm hàng có thể được đánh cờ add-onBuilt

5.3 Biến thể (VAR)

IDPYêu cầuTrạng thái
URD-VAR-001MMỗi sản phẩm có ít nhất một biến thể; trạng thái có thể thay đổiBuilt
URD-VAR-002MChủ có thể tạo thêm biến thểBuilt
URD-VAR-003MTạo aggregate: biến thể + info + bộ fare + fares + định danh trong một bước nguyên tửBuilt
URD-VAR-004MCập nhật aggregate: cập nhật một biến thể với mọi dữ liệu liên quan một cách nguyên tửBuilt
URD-VAR-005MMỗi biến thể có một định danh do hệ thống sinhBuilt
URD-VAR-006MLoại biến thể (STORABLE / CONSUMABLE / SERVICE / KIT / COMBO / MANUFACTURED) có thể chọnBuilt
URD-VAR-007SBiến thể có thể có khoảng thời gian hiệu lựcBuilt
URD-VAR-008SChủ có thể gán định danh SKU / BARCODE / QRCODEBuilt
URD-VAR-009SBiến thể lưu đơn vị đo lường cơ sở / mua / bánBuilt
URD-VAR-010SBundle liên hệ các biến thể như combo / add-on / thường-mua-cùngBuilt
URD-VAR-011CGiá đã giải quyết của một biến thể có thể đọc qua một endpoint chuyên biệtPlanned
URD-VAR-012CQuy đổi đơn vị giữa đơn vị mua và đơn vị bánPlanned

5.4 Fare / Định giá (FAR)

IDPYêu cầuTrạng thái
URD-FAR-001MMỗi biến thể có đúng một bộ fareBuilt
URD-FAR-002MMỗi bộ fare chứa ít nhất một fare (mặc định)Built
URD-FAR-003MSố tiền fare phải bằng không hoặc dươngBuilt
URD-FAR-004MTại thời điểm bán hệ thống giải quyết fare áp dụng: override → discount → mặc địnhBuilt
URD-FAR-005SFares có thể có khoảng thời gian hiệu lựcBuilt
URD-FAR-006SFares có thể có cửa sổ số lượng tối thiểu / tối đaBuilt
URD-FAR-007SFares hỗ trợ nhóm cha-con với rule ngữ cảnh (kênh, thời gian, số lượng)Built

Mô hình fare hiện tại dùng loại nhóm OVERRIDEDISCOUNT (một bản nháp trước đó gọi chúng là SALE/OVERRIDE). Xem fares của pricing.

5.5 Định danh (PID)

IDPYêu cầuTrạng thái
URD-PID-001MMỗi định danh là duy nhất theo từng lược đồ trong một merchantBuilt
URD-PID-002MMột sản phẩm / biến thể có thể giữ nhiều định danh trên các lược đồBuilt
URD-PID-003MĐịnh danh SYSTEM và SLUG được tự sinh khi tạoBuilt
URD-PID-004SChủ có thể gán định danh SKU, BARCODE, QRCODEBuilt

5.6 Khuyến mãi (CMP)

IDPYêu cầuTrạng thái
URD-CMP-001SChủ có thể tạo và quản lý chiến dịch khuyến mãi (với khoảng ngày, giới hạn sử dụng)In-progress
URD-CMP-002SKhuyến mãi được giới hạn theo một merchantIn-progress
URD-CMP-003CChiết khấu khuyến mãi được áp dụng tự động tại thời điểm định giáPlanned

CRUD khuyến mãi đã hoạt động; engine tính chiết khấu đang bị tắt, nên chiết khấu chưa được áp dụng tự động. Xem khuyến mãi của pricing.

5.7 Truy cập (ACC)

IDPYêu cầuTrạng thái
URD-ACC-001MMọi thao tác sản phẩm được lọc theo vai trò của người dùng yêu cầuBuilt
URD-ACC-002MChủ chỉ thấy sản phẩm dưới các merchant của mìnhBuilt
URD-ACC-003MNhân viên chỉ thấy sản phẩm trong các merchant được phân côngBuilt
URD-ACC-004MAdmin / Super Admin bỏ qua lọc theo vai tròBuilt

6. Tiêu chí Chấp nhận

AC-PRD-01: Tạo sản phẩm
Cho trướcKhiThì
Chủ với một merchant đang hoạt độngTạo một sản phẩm với tên + nhóm hàngSản phẩm được tạo với định danh đã sinh; biến thể mặc định được tạo; sản phẩm liên kết với merchant
Slug sẽ trùngHệ thống đảm bảo một slug duy nhất trong merchant
AC-VAR-01: Biến thể aggregate
Cho trướcKhiThì
Một sản phẩm có sẵnChủ tạo một biến thể với info, fares, và định danh trong một bướcBiến thể + info + bộ fare + fares + định danh được tạo nguyên tử
Bất kỳ bước con nào thất bạiToàn bộ thao tác rollback; không có gì được lưu
AC-FAR-01: Giải quyết fare
Cho trướcKhiThì
Một biến thể với nhiều fares đang hoạt độngThêm vào giỏNhóm override thắng; nếu không thì discount đủ điều kiện thấp nhất; nếu không thì fare mặc định; cửa sổ ngày & số lượng lọc ứng viên trước
Không có fare đủ điều kiệnFare mặc định (cơ bản) được dùng
AC-ACC-01: Truy cập theo vai trò
Cho trướcKhiThì
Chủ với merchant X, YXem sản phẩmChỉ sản phẩm dưới X và Y được trả về
Nhân viên phân công cho XXem sản phẩmChỉ sản phẩm dưới X được trả về
AdminXem sản phẩmMọi sản phẩm được trả về; bỏ qua lọc

7. Ràng buộc & Không-mục-tiêu

Ràng buộc

IDRàng buộc
C-01Một sản phẩm thuộc đúng một merchant
C-02Slug sản phẩm là duy nhất trong cùng một merchant
C-03Mỗi sản phẩm có ít nhất một biến thể
C-04Mỗi biến thể có đúng một bộ fare với ít nhất một fare
C-05Thao tác tạo / cập nhật aggregate là tất-cả-hoặc-không
C-06Mọi bản ghi dùng soft-delete; không có gì bị xóa vật lý
C-07Lọc theo vai trò áp dụng cho mọi thao tác liệt kê và đếm

Không-mục-tiêu

  • Định mức nguyên vật liệu / quản lý công thức (→ Kho)
  • Nhập hàng loạt CSV / Excel
  • Engine quy đổi đơn vị
  • Tính chiết khấu khuyến mãi (chỉ CRUD hiện tại)

8. Lịch sử Phiên bản

NgàyTác giảMô tảVer
2026-02-26P. Do — Product OwnerUser story & yêu cầu ban đầuv0.1
2026-04-16P. Do — Product OwnerMở rộng yêu cầu biến thể & farev0.3
2026-05-29Di chuyển tài liệuTái cấu trúc theo quy ước module-docs; trung thực trạng thái Built/In-progress/Planned theo tài liệu dev; tách khuyến mãi khỏi kho (chuyển sang module Kho)v0.4

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