PRD: Vận hành Kho cho F&B & Bán lẻ
| Module | Inventory (CORE-06) | PRD ID | PRD-IOP-001 |
| Trạng thái | Planned | Owner | Phát Nguyễn |
| Ngày | 2026-06-11 | Phiên bản | v0.1 (draft) |
| Packages | @nx/inventory · apps/client · apps/sale-renderer | URD | IOP |
| Epic | BANA-1323 | Khung thời gian | T7 (nền tảng) · T8 (theo ngành) |
TL;DR
Merchant vận hành kho từ ứng dụng: nhập/xuất bằng phiếu, chạy đơn mua, kiểm kê và điều chỉnh. Rồi mỗi ngành có chiều sâu riêng: món F&B tự trừ nguyên liệu theo định mức kèm lô/HSD; bán lẻ quét barcode nhập/xuất và quầy thấy tồn trực tiếp.
1. Bối cảnh & Vấn đề
Backend kho hoàn thiện hiếm thấy - bảy loại phiếu, vòng đời PO đầy đủ (tự sinh phiếu chi khi nhận hàng), trường lô/HSD, cờ tồn thấp (kèm widget), và định mức KIT đã tự trừ khi bán. Thiếu gần như toàn bộ bề mặt người dùng: chưa có màn tạo phiếu, quản lý PO, kiểm kê, quản lý công thức, hay nhập lô. Merchant sở hữu một cỗ máy chạy tốt mà không có vô-lăng.
2. Mục tiêu & Loại trừ
Mục tiêu - màn phiếu cho mọi loại (URD-IOP-001) · PO end-to-end từ app (002) · kiểm kê & điều chỉnh (003) · F&B định mức tự trừ kiểm chứng kèm màn công thức (004) · bán lẻ barcode nhập/xuất (005) · lô/HSD khi nhập + cận hạn (006) · tồn quầy trực tiếp (007).
Loại trừ - lệnh sản xuất (nấu theo mẻ, giá vốn theo mẻ) → Giai đoạn 3 · BOM nhiều cấp · báo cáo định giá tồn (Reports, T8).
3. Thước đo thành công
| Thước đo | Mục tiêu |
|---|---|
| Mua → nhập → tồn → bán | Chạy end-to-end từ app trên merchant pilot |
| Trừ định mức F&B | Bán một món thấy rõ tồn nguyên liệu giảm |
4. Persona & Tình huống
Chủ/quản lý (vận hành kho hằng tuần) · Nhân viên kho (nhận, kiểm) · Thu ngân (thấy khả dụng).
5. User Story
- Là chủ quán, tôi tạo PO cho NCC, nhận hàng, và tồn + phiếu chi tự xuất hiện, không phải gõ hai lần.
- Là chủ quán F&B, tôi khai công thức một lần; mỗi đơn bán tự trừ nguyên liệu.
- Là nhân viên bán lẻ, tôi quét mã khi nhập và xuất kho.
6. Yêu cầu chức năng
Giao URD IOP URD-IOP-001…008 (Must 001-005). Các area sẵn TKT/VEN/PO/REC cung cấp backend.
7. Yêu cầu phi chức năng
- View tồn tại quầy không được làm chậm luồng bán; màn hình tái dùng các fragment tồn-thấp/attention chung (quy tắc DRY).
8. UX & Luồng
- Phiếu (T7): tạo/danh sách theo loại; nhập là tồn nhảy ngay.
- PO (T7): tạo → gửi → nhận (kèm nhập lô/HSD) → xong.
- Kiểm kê (T7): phiếu kiểm → chênh lệch → phiếu điều chỉnh.
- F&B (T8): màn công thức; trừ-khi-bán kiểm chứng e2e.
- Bán lẻ (T8): nhập/xuất bằng quét; khả dụng quầy trực tiếp.
9. Dữ liệu & Miền nghiệp vụ
- Không kỳ vọng entity lõi mới - InventoryTicket, Vendor/PO, InventoryStock (lô/HSD), InventoryIdentifier, MaterialRecipe đều có; increment là màn hình + nối dây + kiểm chứng e2e (gồm các lỗ hổng CDC đã biết với update).
10. Phụ thuộc & Giả định
| Phụ thuộc | Vì sao |
|---|---|
| Barcode trên variant (Products, T7) | Luồng quét bán lẻ |
| Chế độ Retail (PRD-RTL-001) | Ngữ cảnh quầy cho tồn trực tiếp |
| Thiết kế (T7) | Khối lượng màn hình khiến design là đường găng |
11. Rủi ro & Câu hỏi mở
- Bề mặt FE lớn nhất Phase 2 - cắt lát đúng thứ tự T7/T8 ở trên.
- Tồn quầy realtime phụ thuộc việc vá lỗ hổng CDC (update chưa bắt).
12. Kế hoạch phát hành & Tiêu chí
T7: các lát nền tảng. T8: các lát theo ngành. Ra mắt: AC-IOP-01 pass trên một merchant F&B và một merchant bán lẻ pilot.
13. FAQ
- Có làm lệnh sản xuất không? Không - Giai đoạn 3. Định mức tự trừ là chiều sâu của Giai đoạn 2.
Tham chiếu
URD IOP · Giai đoạn 2 - Theo tháng · Epic BANA-1323