Skip to content

URD: Đơn hàng

ModuleCORE-07Phiên bảnv0.3
Trạng tháiIn-progressNgày2026-04-16

1. Mục đích

Định nghĩa yêu cầu hướng người dùng cho quản lý đơn hàng — vòng đời sale order từ giỏ tới checkout tới thanh toán, cộng các phần mở rộng F&B mà một địa điểm phục vụ đầy đủ cần: tách hóa đơn, phiếu bếp, phiên ca POS, đặt bàn, và tích điểm loyalty.

2. Phạm vi

Bao gồmLoại trừ
Vòng đời sale order (DRAFT → PROCESSING → PARTIAL → COMPLETED / CANCELLED)Flow hoàn / trả hàng (Dự kiến)
Mục đơn hàng (sản phẩm, fan-out combo, tùy chỉnh)Biến đổi tồn (Kho)
Checkout và revertTích hợp nhà cung cấp thanh toán (Thanh toán)
Tách và gộp đơnEngine thuế & phát hành hóa đơn điện tử
Tách hóa đơn (chia bill)Theo dõi đơn giao hàng (Dự kiến)
Phiếu bếp và trạm (F&B)Quản lý sơ đồ bàn / chỗ ngồi (Dự kiến)
Phiên POS (ca) với báo cáo X/ZApp hiển thị bếp chuyên biệt (Dự kiến)
Đặt bànTemplate đơn hàng (Dự kiến)
Tích điểm loyaltyĐặc tả API kỹ thuật (xem tài liệu lập trình viên)
Cập nhật real-time tới bếp & dashboard

3. Định nghĩa

Thuật ngữĐịnh nghĩa
Sale OrderMột giao dịch chứa các mục đang bán; một thực thể đóng cả vai trò giỏ (DRAFT) và đơn đã cam kết.
Order ItemMột line item — một biến thể sản phẩm (chế độ PRODUCT) hoặc một mục thủ công (chế độ CUSTOM).
ComboMột sản phẩm fan-out thành các dòng con có giá khi thêm vào giỏ.
Sale CheckMột nhóm trả-độc-lập trong một đơn, dùng để chia bill.
Phiếu bếp (Kitchen Ticket)Một phiếu gửi tới bếp để chuẩn bị F&B; chứa các mục từ một sale order.
Trạm bếp (Kitchen Station)Một khu chuẩn bị có tên (ví dụ grill, bar) nhận phiếu.
Phiên POS (POS Session)Một ca của thu ngân trên một thiết bị cụ thể; theo dõi tiền mở / đóng ca và sinh báo cáo.
Báo cáo X (X Report)Tóm tắt ca tạm thời — có thể sinh nhiều lần.
Báo cáo Z (Z Report)Báo cáo đóng cuối — chỉ một mỗi phiên.
Đặt bàn (Reservation)Một lượt đặt của khách cho ngày / giờ tương lai với số khách.

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

Chỉ là khái niệm — schema đầy đủ nằm trong mô hình miền lập trình viên.

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 Sale Order (ORD)

IDPYêu cầu
URD-ORD-001MTạo đơn nháp (giỏ) với mục
URD-ORD-002MThêm, cập nhật, gỡ mục chỉ khi đang ở DRAFT
URD-ORD-003MThêm cùng sản phẩm gộp số lượng vào line có sẵn
URD-ORD-004MĐặt số lượng mục về không gỡ bỏ line
URD-ORD-005MThêm một mục combo fan-out thành các dòng con có giá
URD-ORD-006MCheckout: DRAFT → PROCESSING (validate mục, khóa giá)
URD-ORD-007MCheckout validate: giỏ không rỗng, giá ≥ 0, số lượng ≥ 1
URD-ORD-008MRevert: PROCESSING → DRAFT
URD-ORD-009MCancel từ DRAFT, PROCESSING, hoặc PARTIAL (với lý do tùy chọn)
URD-ORD-010MThanh toán một phần → trạng thái PARTIAL
URD-ORD-011MThanh toán đủ → trạng thái COMPLETED
URD-ORD-012STách một đơn thành nhiều (chỉ DRAFT)
URD-ORD-013SGộp nhiều đơn (chỉ DRAFT)
URD-ORD-014SĐính một khách hàng vào đơn
URD-ORD-015SĐa tiền tệ với tỉ giá (mặc định VND)
URD-ORD-016CÁp một số lượng mục tối đa mỗi đơn

5.2 Tách hóa đơn (CHK)

IDPYêu cầu
URD-CHK-001STách một đơn thành nhiều check thanh toán
URD-CHK-002SPhân bổ mục và số lượng cụ thể cho mỗi check
URD-CHK-003SKhách hàng khác nhau mỗi check
URD-CHK-004SĐơn hoàn tất khi mọi check của nó hoàn tất
URD-CHK-005CRollback một lần tách khi chưa check nào được trả

5.3 Phiếu bếp (KIT)

IDPYêu cầu
URD-KIT-001MGửi mục đơn hàng tới bếp (tạo phiếu + mục)
URD-KIT-002MGửi idempotent — một lần gửi trùng sinh cùng phiếu
URD-KIT-003MVòng đời phiếu: PENDING → PROCESSING → READY → COMPLETED / VOIDED
URD-KIT-004MVòng đời mục: PENDING → COOKING → READY → SERVED / VOIDED
URD-KIT-005MTrạng thái phiếu tự-tiến từ trạng thái các mục của nó
URD-KIT-006MThay đổi dùng void-và-gửi-lại (mục đã gửi không sửa tại chỗ)
URD-KIT-007SCờ rush và thứ tự theo từng đơn cho việc sắp phiếu
URD-KIT-008MCập nhật real-time tới màn hình bếp và dashboard
URD-KIT-009SĐánh dấu một mục đã phục vụ kích tiêu thụ tồn

5.4 Trạm bếp (STA)

IDPYêu cầu
URD-STA-001STạo trạm có tên theo từng merchant (i18n)
URD-STA-002SĐịnh tuyến nhóm hàng sản phẩm tới trạm
URD-STA-003SCấu hình máy in theo từng trạm với auto-print

5.5 Phiên POS (POS)

IDPYêu cầu
URD-POS-001MMở một phiên trên một thiết bị với tiền mở ca
URD-POS-002MChỉ một phiên mở mỗi thiết bị
URD-POS-003MĐóng một phiên: đếm tiền, ghi chênh lệch
URD-POS-004MBáo cáo Z (đóng) — một mỗi phiên
URD-POS-005SBáo cáo X (tạm thời) — lặp lại được
URD-POS-006SĐơn tạo trong một ca đính vào phiên
URD-POS-007STheo dõi kỳ vọng vs. thực tế cho phương thức phi-tiền-mặt
URD-POS-008CHỗ trợ đếm lại khi đóng

5.6 Đặt bàn (RSV)

IDPYêu cầu
URD-RSV-001STạo một đặt bàn: tên khách, điện thoại, số khách, ngày / giờ
URD-RSV-002SVòng đời: PENDING → CONFIRMED → CHECKED_IN / CANCELLED
URD-RSV-003STheo dõi nguồn: điện thoại, walk-in, online, khác
URD-RSV-004SGắn thẻ dịp: sinh nhật, kỷ niệm, công việc, v.v.
URD-RSV-005SKhi check-in, sinh và liên kết một sale order

5.7 Điểm Loyalty (PNT)

IDPYêu cầu
URD-PNT-001STích điểm trên đơn hoàn tất
URD-PNT-002SCấp điểm là idempotent mỗi đơn
URD-PNT-003SSố dư điểm theo dõi theo từng khách hàng theo từng merchant

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

AC-ORD-01: Vòng đời đơn hàng
Cho trướcKhiThì
Đơn DRAFTCheckoutPROCESSING (giá đã khóa)
PROCESSINGThanh toán đủCOMPLETED
PROCESSINGThanh toán một phầnPARTIAL
Bất kỳ trạng thái không-cuốiCancelCANCELLED
Giỏ rỗngCheckoutBị từ chối
AC-ORD-02: Fan-out combo
Cho trướcKhiThì
Một sản phẩm comboThêm vào giỏMột dòng lead + các dòng con giá-không được tạo
Cùng combo đã trong đơnThêm lạiBị từ chối (đã trong đơn)
AC-KIT-01: Bếp
Cho trướcKhiThì
Mục đơn hàngGửi tới bếpPhiếu được tạo
Cùng key idempotencyGửi trùngKhông phiếu trùng
Mọi mục READY/SERVEDPhiếu tự-tiến
Mục đánh dấu đã phục vụTiêu thụ tồn được kích
AC-POS-01: Phiên
Cho trướcKhiThì
Không có phiên mở trên thiết bịMởPhiên được tạo
Có phiên mở trên thiết bịMởBị từ chối
Phiên mởĐóng với đếm tiềnChênh lệch được tính, báo cáo Z sinh
AC-RSV-01: Đặt bàn
Cho trướcKhiThì
Thông tin kháchTạoTrạng thái PENDING, bàn được giữ
Đặt bàn đã xác nhậnCheck inTrạng thái CHECKED_IN, sale order sinh & liên kết

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

Ràng buộc

IDRàng buộc
C-01Mục chỉ sửa được khi đơn đang ở DRAFT
C-02Tách / gộp đơn chỉ ở DRAFT
C-03Tối đa một phiên POS mở mỗi thiết bị
C-04Đúng một báo cáo Z mỗi phiên
C-05Gửi phiếu bếp là idempotent qua key
C-06Mọi bản ghi dùng soft-delete
C-07Mọi thao tác yêu cầu xác thực và được giới hạn theo merchant

Không-mục-tiêu

  • Flow hoàn / trả hàng
  • Theo dõi đơn giao hàng
  • Quản lý sơ đồ bàn / chỗ ngồi
  • App hiển thị bếp chuyên biệt
  • Template đơn hàng

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

NgàyTác giảMô tảVer
2026-02-26P. Do — Product OwnerUser story ban đầuv0.1
2026-04-16P. Do — Product OwnerTái cấu trúc thành bảng yêu cầu theo lĩnh vực chức năng; thêm các lĩnh vực combo, tách hóa đơn, trạm, đặt bàn, điểmv0.3

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