🧭 Tổng quan & ưu tiên
Bản đồ toàn bộ workflow khách hàng trên storefront FlexiQuor, xếp theo mức ưu tiên nghiệp vụ. Tất cả các luồng đều hội tụ về một đích: đơn hàng thanh toán thành công.
📂 Tài liệu này tổ chức thế nào
| Khu vực | Nội dung | Dành cho |
|---|---|---|
| Hành trình theo vai trò | User Journey Người mua (9) & Người quản trị (8) — từng bước bấm ra màn hình | PM · QA · Dev |
| Storefront · Khách hàng | Luồng khách trên web: 7 chặng có ảnh, cây workflow, tech reference | Frontend · QA |
| Admin · Quản trị | Vận hành Medusa Admin theo domain + snapshot thật + trạng thái ✅/⚠️/❌ | Vận hành · Backend |
| Nâng cấp & mở rộng | Đánh giá, Analytics & KPI, Nhân viên (RBAC), Marketing | PM · Backend |
| Dev · QA | Lỗi & rủi ro (13 bug), Thiếu vs Shopify (B/D), 32 test-case | Dev · QA · Lead |
▶️ Bắt đầu từ đâu
- Mới vào dự án → Hành trình mua hàng (7 chặng, có ảnh)
- Vận hành cửa hàng → Tổng quan Admin → chọn domain cần dùng
- Dev / QA → Lỗi & rủi ro + Test cases (32)
- Lên kế hoạch build → Thiếu vs Shopify (ưu tiên B1 + B2 trước)
📌 Nguyên tắc — nguồn sự thật
- Khi số liệu vênh nhau, tin theo thứ tự: Admin thật đang chạy (Medusa v2.15.5) > tài liệu này > ảnh Shopify (chỉ tham chiếu bố cục).
- Trạng thái ✅ Có sẵn / ⚠️ Cần build / ❌ Chưa có đã đối chiếu trực tiếp trên app, không đoán qua code.
Activity Matrix
Hành trình Khách (K)
| ID | Stage | Hoạt động | Nay | Mục tiêu | Automation target |
|---|---|---|---|---|---|
| 1.01 | K · 1. Trang chủ | Vào web / xem trang chủ | Khách | Khách | Seed collection để homepage không trống. |
| 1.02 | K · 1. Trang chủ | Điều hướng nav / danh mục | Khách | Khách | Dùng nguyên. |
| 1.03 | K · 1. Trang chủ | Đăng ký nhận tin | Khách | Hệ thống | Nối email marketing (chưa có). |
| 2.01 | K · 2. Tìm SP | Tìm kiếm gợi ý tức thời | Khách | Hệ thống | Dùng nguyên. |
| 2.02 | K · 2. Tìm SP | Duyệt & lọc store | Khách | Khách | Lọc đang chỉ chạy 100 SP đầu (cần build). |
| 2.03 | K · 2. Tìm SP | Duyệt theo danh mục | Khách | Khách | Dùng nguyên. |
| 3.01 | K · 3. Chi tiết SP | Xem PDP | Khách | Khách | Dùng nguyên. |
| 3.02 | K · 3. Chi tiết SP | Chọn màu / size | Khách | Khách | Dùng nguyên. |
| 3.03 | K · 3. Chi tiết SP | Ưu đãi mua nhiều | Hệ thống | Hệ thống | Tier đang chỉ là chữ — cần build. |
| 3.04 | K · 3. Chi tiết SP | Lưu Wishlist | Khách | Khách | Dùng nguyên (plugin). |
| 4.01 | K · 4. Giỏ hàng | Thêm giỏ (mini-cart) | Khách | Khách | Tối ưu tốc độ (~7s). |
| 4.02 | K · 4. Giỏ hàng | Xem giỏ | Khách | Khách | Dùng nguyên. |
| 4.03 | K · 4. Giỏ hàng | Mã giảm giá | Khách | Hệ thống | Dùng nguyên. |
| 4.04 | K · 4. Giỏ hàng | Freeship | Hệ thống | Hệ thống | Ngưỡng sai tiền tệ — cần build. |
| 5.01 | K · 5. Tài khoản | Đăng ký | Khách | Khách | Dùng nguyên. |
| 5.02 | K · 5. Tài khoản | Đăng nhập | Khách | Khách | Dùng nguyên. |
| 5.03 | K · 5. Tài khoản | Quên mật khẩu | Khách | Hệ thống | Chưa nối API — cần build. |
| 5.04 | K · 5. Tài khoản | Hồ sơ / địa chỉ | Khách | Khách | Đổi mật khẩu chưa làm. |
| 6.01 | K · 6. Thanh toán | Nhập địa chỉ giao | Khách | Khách | Dùng nguyên. |
| 6.02 | K · 6. Thanh toán | Chọn vận chuyển | Khách | Hệ thống | Dùng nguyên. |
| 6.03 | K · 6. Thanh toán | Thanh toán | Khách | Hệ thống | Cổng thật (đang Manual) — cần build. |
| 6.04 | K · 6. Thanh toán | Xác nhận & đặt hàng | Khách | Hệ thống | Dùng nguyên. |
| 7.01 | K · 7. Sau mua | Order confirmed + email | Hệ thống | Hệ thống | Email chưa cấu hình — cần build. |
| 7.02 | K · 7. Sau mua | Theo dõi đơn | Khách | Hệ thống | Trang tracking riêng — cần build. |
| 7.03 | K · 7. Sau mua | Đổi / trả | Khách | Admin | Chưa có nút đổi/trả — cần build. |
| 7.04 | K · 7. Sau mua | Viết đánh giá | Khách | Khách | Duyệt xong chưa lên PDP — cần build. |
Vòng đời Admin (A)
| ID | Stage | Hoạt động | Nay | Mục tiêu | Automation target |
|---|---|---|---|---|---|
| 1.01 | A · 1. Cấu hình | Cửa hàng & tiền tệ (USD) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 1.02 | A · 1. Cấu hình | Sales channel & API key | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 1.03 | A · 1. Cấu hình | Vận chuyển | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 1.04 | A · 1. Cấu hình | Thuế | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 1.05 | A · 1. Cấu hình | Nhân viên (users) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 1.06 | A · 1. Cấu hình | Store / brand switcher | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 1.07 | A · 1. Cấu hình | RBAC phân quyền chi tiết | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 2.01 | A · 2. Sản phẩm | Tạo sản phẩm | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 2.02 | A · 2. Sản phẩm | Sửa & bulk edit | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 2.03 | A · 2. Sản phẩm | Options & biến thể | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 2.04 | A · 2. Sản phẩm | Bộ sưu tập & danh mục | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 2.05 | A · 2. Sản phẩm | Import / Export CSV | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 3.01 | A · 3. Tồn kho | Điều chỉnh tồn | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 3.02 | A · 3. Tồn kho | Địa điểm (locations) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 3.03 | A · 3. Tồn kho | Reservations | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 3.04 | A · 3. Tồn kho | Cảnh báo tồn thấp | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 4.01 | A · 4. Đơn hàng | Tiếp nhận & thu tiền (capture) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 4.02 | A · 4. Đơn hàng | Fulfillment + tracking | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 4.03 | A · 4. Đơn hàng | Refund / Return / Exchange | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 4.04 | A · 4. Đơn hàng | Sửa đơn (order edit) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 4.05 | A · 4. Đơn hàng | Đơn thủ công (draft) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 4.06 | A · 4. Đơn hàng | Store credit khi trả hàng | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 4.07 | A · 4. Đơn hàng | Giỏ hàng bỏ dở | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 5.01 | A · 5. Khách hàng | Hồ sơ khách | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 5.02 | A · 5. Khách hàng | Nhóm / segment | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 6.01 | A · 6. Khuyến mãi | Mã & khuyến mãi tự động | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 6.02 | A · 6. Khuyến mãi | Price list | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 6.03 | A · 6. Khuyến mãi | Bulk-discount tier (mua 2/3/5) | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 7.01 | A · 7. Đánh giá | Widget "Product Reviews" (trên SP & Đơn) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 7.02 | A · 7. Đánh giá | Duyệt / ẩn / phản hồi | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 7.03 | A · 7. Đánh giá | Chỉ khách đã mua (verified) | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 7.04 | A · 7. Đánh giá | Điểm trung bình lên PDP | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 7.05 | A · 7. Đánh giá | Trang quản lý tập trung + badge số chờ | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 8.01 | A · 8. Báo cáo | KPI cốt lõi | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 8.02 | A · 8. Báo cáo | Dashboard tổng quan | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 8.03 | A · 8. Báo cáo | Lọc theo brand | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 8.04 | A · 8. Báo cáo | Top SP & tồn thấp | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 8.05 | A · 8. Báo cáo | Khách & mã giảm giá | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 8.06 | A · 8. Báo cáo | Export CSV | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 9.01 | A · 9. Nhân viên | Mời & gỡ nhân viên | Admin | Admin / Hệ thống | Dùng nguyên Medusa v2 (không cần thay đổi). |
| 9.02 | A · 9. Nhân viên | Vai trò & quyền theo module | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 9.03 | A · 9. Nhân viên | Giới hạn theo brand | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 9.04 | A · 9. Nhân viên | Nhật ký thao tác (audit) | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 10.01 | A · 10. Marketing | Nối provider (Klaviyo/Mailchimp) | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 10.02 | A · 10. Marketing | Tạo chiến dịch | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 10.03 | A · 10. Marketing | Automation flows | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
| 10.04 | A · 10. Marketing | Đo hiệu quả | Admin | Admin / Hệ thống | Cần build — thiếu vs Shopify / cần cải tiến. |
Overview — Stages
FlexiQuor có 73 hoạt động qua 17 stage, chia 2 pipeline theo vai trò. Mỗi hoạt động có người thực hiện (nay → mục tiêu) và automation target. Nguồn sự thật scope/ownership: Activity Matrix; nguồn sự thật hành vi: code + admin thật.
Hành trình Khách (7 stage)
| Stage | Activities | Bao gồm gì |
|---|---|---|
| 1. Trang chủ & khám phá | 1.01–1.03 | Điểm vào, khám phá thương hiệu & danh mục |
| 2. Tìm sản phẩm | 2.01–2.03 | Tìm & lọc ra đúng sản phẩm |
| 3. Chi tiết sản phẩm | 3.01–3.04 | Xem, chọn biến thể, ưu đãi, wishlist |
| 4. Giỏ hàng | 4.01–4.04 | Giỏ hàng, mã giảm, freeship |
| 5. Tài khoản | 5.01–5.04 | Đăng ký/đăng nhập & quản lý tài khoản |
| 6. Thanh toán | 6.01–6.04 | Địa chỉ → vận chuyển → thanh toán → đặt |
| 7. Sau mua | 7.01–7.04 | Xác nhận, theo dõi, đổi/trả, đánh giá |
Vòng đời Admin (10 stage)
| Stage | Activities | Bao gồm gì |
|---|---|---|
| 1. Cấu hình cửa hàng | 1.01–1.07 | Store, kênh bán, API key, ship, thuế, users |
| 2. Sản phẩm | 2.01–2.05 | Tạo/sửa, biến thể, bộ sưu tập, import |
| 3. Tồn kho | 3.01–3.04 | Điều chỉnh tồn, địa điểm, reservations |
| 4. Đơn hàng | 4.01–4.07 | Thu tiền, fulfill, refund/return, draft |
| 5. Khách hàng | 5.01–5.02 | Hồ sơ & nhóm/segment |
| 6. Khuyến mãi | 6.01–6.03 | Mã, tự động, price list, bulk-discount |
| 7. Đánh giá | 7.01–7.05 | Duyệt/ẩn/phản hồi review |
| 8. Báo cáo | 8.01–8.06 | KPI, doanh thu, tồn thấp |
| 9. Nhân viên | 9.01–9.04 | Mời/gỡ, RBAC theo vai trò/brand |
| 10. Marketing | 10.01–10.04 | Email/automation tích hợp ngoài |
1. Trang chủ & khám phá
- Stage
- 1. Trang chủ & khám phá · Hành trình Khách · 3 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Approved
- Feature
- ✅ 3
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 1.01 | Vào web / xem trang chủ | Khách | Khách | ✅ | Seed collection để homepage không trống. |
| 1.02 | Điều hướng nav / danh mục | Khách | Khách | ✅ | Dùng nguyên. |
| 1.03 | Đăng ký nhận tin | Khách | Hệ thống | ✅ | Nối email marketing (hiện chỉ đổi UI). |
Chi tiết từng hoạt động
1.01 Vào web / xem trang chủ
Mở website, đọc khuyến mãi, chọn "Shop"/danh mục.
Automation target: Seed collection để homepage không trống.
1.02 Điều hướng nav / danh mục
Dùng thanh nav & danh mục để khám phá catalog.
Automation target: Dùng nguyên.
1.03 Đăng ký nhận tin
Nhập email để nhận newsletter.
Automation target: Nối email marketing (hiện chỉ đổi UI).
2. Tìm sản phẩm
- Stage
- 2. Tìm sản phẩm · Hành trình Khách · 3 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 2 ⚠️ 1
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 2.01 | Tìm kiếm gợi ý tức thời | Khách | Hệ thống | ✅ | Dùng nguyên. |
| 2.02 | Duyệt & lọc store | Khách | Khách | ⚠️ | Lọc đang chỉ chạy 100 SP đầu — cần build. |
| 2.03 | Duyệt theo danh mục | Khách | Khách | ✅ | Dùng nguyên. |
Chi tiết từng hoạt động
2.01 Tìm kiếm gợi ý tức thời
Gõ từ khoá → gợi ý tên/giá/ảnh ngay.
Automation target: Dùng nguyên.
2.02 Duyệt & lọc store
Lọc theo danh mục/giá/size, sắp xếp.
Automation target: Lọc đang chỉ chạy 100 SP đầu — cần build.
2.03 Duyệt theo danh mục
Chọn danh mục để thu hẹp.
Automation target: Dùng nguyên.
3. Chi tiết sản phẩm
- Stage
- 3. Chi tiết sản phẩm · Hành trình Khách · 4 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 3 ⚠️ 1
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 3.01 | Xem trang chi tiết (PDP) | Khách | Khách | ✅ | Dùng nguyên. |
| 3.02 | Chọn màu / size | Khách | Khách | ✅ | Dùng nguyên. |
| 3.03 | Ưu đãi mua nhiều | Hệ thống | Hệ thống | ⚠️ | Tier hiện chỉ là chữ — cần build. |
| 3.04 | Lưu Wishlist | Khách | Khách | ✅ | Dùng nguyên (plugin). |
Chi tiết từng hoạt động
3.01 Xem trang chi tiết (PDP)
Xem ảnh, giá, mô tả, đánh giá.
Automation target: Dùng nguyên.
3.02 Chọn màu / size
Chọn đủ biến thể mới bật Add to cart.
Automation target: Dùng nguyên.
3.03 Ưu đãi mua nhiều
Mua 2/3/5 giảm giá tự áp (đang quảng cáo).
Automation target: Tier hiện chỉ là chữ — cần build.
3.04 Lưu Wishlist
Bấm ♡ để lưu sản phẩm (cần đăng nhập).
Automation target: Dùng nguyên (plugin).
4. Giỏ hàng
- Stage
- 4. Giỏ hàng · Hành trình Khách · 4 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 3 ⚠️ 1
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 4.01 | Thêm giỏ (mini-cart) | Khách | Khách | ✅ | Tối ưu tốc độ (~7s). |
| 4.02 | Xem giỏ hàng | Khách | Khách | ✅ | Dùng nguyên. |
| 4.03 | Áp mã giảm giá | Khách | Hệ thống | ✅ | Dùng nguyên. |
| 4.04 | Freeship (ngưỡng) | Hệ thống | Hệ thống | ⚠️ | Ngưỡng sai tiền tệ — cần build. |
Chi tiết từng hoạt động
4.01 Thêm giỏ (mini-cart)
Add to cart → mini-cart hiện ra.
Automation target: Tối ưu tốc độ (~7s).
4.02 Xem giỏ hàng
Sửa số lượng, xoá, xem tổng.
Automation target: Dùng nguyên.
4.03 Áp mã giảm giá
Nhập mã ở giỏ để giảm.
Automation target: Dùng nguyên.
4.04 Freeship (ngưỡng)
Thanh "còn X để freeship".
Automation target: Ngưỡng sai tiền tệ — cần build.
5. Tài khoản
- Stage
- 5. Tài khoản · Hành trình Khách · 4 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 2 ⚠️ 2
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 5.01 | Đăng ký tài khoản | Khách | Khách | ✅ | Dùng nguyên. |
| 5.02 | Đăng nhập | Khách | Khách | ✅ | Dùng nguyên. |
| 5.03 | Quên mật khẩu | Khách | Hệ thống | ⚠️ | Chưa nối API — cần build. |
| 5.04 | Hồ sơ / địa chỉ | Khách | Khách | ⚠️ | Đổi mật khẩu chưa làm. |
Chi tiết từng hoạt động
5.01 Đăng ký tài khoản
Tạo tài khoản thành viên.
Automation target: Dùng nguyên.
5.02 Đăng nhập
Truy cập tài khoản đã có.
Automation target: Dùng nguyên.
5.03 Quên mật khẩu
Yêu cầu link đặt lại qua email.
Automation target: Chưa nối API — cần build.
5.04 Hồ sơ / địa chỉ
Quản lý thông tin, địa chỉ, đơn.
Automation target: Đổi mật khẩu chưa làm.
6. Thanh toán
- Stage
- 6. Thanh toán · Hành trình Khách · 4 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 3 ⚠️ 1
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 6.01 | Nhập địa chỉ giao | Khách | Khách | ✅ | Dùng nguyên. |
| 6.02 | Chọn vận chuyển | Khách | Hệ thống | ✅ | Dùng nguyên. |
| 6.03 | Thanh toán | Khách | Hệ thống | ⚠️ | Cổng thật (đang Manual) — cần build. |
| 6.04 | Xác nhận & đặt hàng | Khách | Hệ thống | ✅ | Dùng nguyên. |
Chi tiết từng hoạt động
6.01 Nhập địa chỉ giao
Email + địa chỉ nhận hàng.
Automation target: Dùng nguyên.
6.02 Chọn vận chuyển
Standard / Express + phí.
Automation target: Dùng nguyên.
6.03 Thanh toán
Chọn phương thức, nhập thẻ nếu cần.
Automation target: Cổng thật (đang Manual) — cần build.
6.04 Xác nhận & đặt hàng
Xem lại đơn → Place order.
Automation target: Dùng nguyên.
- 1 · Tổng quan
- Bước cuối hành trình khách: nhập địa chỉ → chọn vận chuyển → trả tiền → đặt đơn → trang cảm ơn.
- 2 · Bối cảnh KD
- Chốt doanh thu. Đây là điểm rơi giỏ (cart drop) cao nhất — mọi lỗi/độ trễ ở đây trực tiếp mất đơn.
- 3 · Luồng
- 6.01 Email + địa chỉ giao (cho phép guest checkout)
- 6.02 Chọn Standard/Express + phí
- 6.03 Chọn phương thức thanh toán
- 6.04 Xem lại → Place order → trang cảm ơn
- 4 · Hành vi hiện tại
- ✅ địa chỉ, vận chuyển, đặt đơn chạy thật. ⚠️ thanh toán đang Manual Payment (chưa cổng thật). Lỗi trang cảm ơn báo "đã thanh toán" kể cả khi chưa capture.
- 5 · UX / UI
- 4 bước checkout tuyến tính. Trạng thái lỗi (thẻ hỏng, hết hàng lúc đặt), empty: TBD — chưa chụp snapshot storefront.
- 6 · Logic / rule
- Đủ địa chỉ + shipping mới bật Place order. Ngưỡng freeship áp theo tiền tệ (hiện sai với vùng ≠ USD).
- 7 · Data / API
- Medusa Store API cart-complete flow; provider Manual Payment (mặc định —
medusa-config.tskhông nạp payment module riêng). Request/response bodies: TBD — xem Medusa Store API docs, không bịa. - 8 · Quyền
- Khách (guest qua email ở 6.01) hoặc khách đã đăng nhập.
- 9 · Edge cases
- Hết hàng ngay lúc đặt; thẻ lỗi; tải lại trang cảm ơn. Chuyển đơn về tài khoản phụ thuộc link trong email (A3). Phần lớn chưa verify.
- 10 · Phụ thuộc
- Giỏ hàng (k4) · Tồn kho (d-inventory) · Manual Payment · Email xác nhận (A2 — chưa gửi).
- 11 · Lỗi / rủi ro
- Bug #2 "paid" giả (Critical) · Bug #3 add-to-cart chậm · Bug #7 freeship sai tiền tệ · A2 email xác nhận · A3 chuyển đơn.
- 12 · QA
- Ca "Người mua hàng": happy-path đặt hàng + lỗi thanh toán. E2E khách còn mỏng → một phần TBD.
- 13 · Đề xuất
- (đề xuất mới) Tích hợp cổng thật (vd Stripe) · trạng thái "paid" bám capture thật (sửa Bug #2) · gửi email xác nhận (A2).
7. Sau mua
- Stage
- 7. Sau mua · Hành trình Khách · 4 hoạt động
- Chủ thể
- Người thực hiện: Khách (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ⚠️ 4
- Last verified
- 2026-08-12 · storefront thật
Hoạt động
| ID | Hoạt động | Nay | Mục tiêu | Feature | Automation target |
|---|---|---|---|---|---|
| 7.01 | Order confirmed + email | Hệ thống | Hệ thống | ⚠️ | Email chưa cấu hình — cần build. |
| 7.02 | Theo dõi đơn | Khách | Hệ thống | ⚠️ | Trang tracking riêng — cần build. |
| 7.03 | Đổi / trả | Khách | Admin | ⚠️ | Chưa có nút đổi/trả — cần build. |
| 7.04 | Viết đánh giá | Khách | Khách | ⚠️ | Duyệt xong chưa lên PDP — cần build. |
Chi tiết từng hoạt động
7.01 Order confirmed + email
Trang xác nhận + email đơn.
Automation target: Email chưa cấu hình — cần build.
7.02 Theo dõi đơn
Xem trạng thái/tra cứu đơn.
Automation target: Trang tracking riêng — cần build.
7.03 Đổi / trả
Yêu cầu đổi hoặc trả hàng.
Automation target: Chưa có nút đổi/trả — cần build.
7.04 Viết đánh giá
Chấm sao + nhận xét sau mua.
Automation target: Duyệt xong chưa lên PDP — cần build.
📘 Hành trình mua hàng (từng bước)
Từ khi khách vào web đến khi thanh toán thành công. Mỗi chặng: khách làm gì → hệ thống phản hồi → ảnh minh hoạ → nhánh rẽ.

- Nút khuyến mãi trên banner
- Danh mục trên nav
- "Shop all" (toàn bộ SP)
- Ô tìm kiếm
2a · Duyệt & lọc

2b · Tìm kiếm nhanh

- Duyệt danh mục hoặc Xem tất cả + lọc hoặc Tìm kiếm — đều dẫn tới trang chi tiết
- "Collections" có route nhưng chưa có dữ liệu (xem Tech Reference)

- Add to cart → thêm giỏ rồi mua tiếp (Chặng 4)
- Buy it now → đi thẳng thanh toán, bỏ qua giỏ (Chặng 6)
- Save (♡) → lưu wishlist (cần đăng nhập)

- Tiếp tục mua sắm (thêm SP khác)
- "Go to cart" → xem giỏ đầy đủ (Chặng 5)

- Guest: thanh toán ngay không cần tài khoản
- Đăng nhập/Đăng ký: lưu địa chỉ, xem lịch sử đơn, dùng wishlist


6.1 · Địa chỉ giao hàng

6.2 · Vận chuyển

6.3 · Thanh toán

6.4 · Xác nhận & đặt hàng


- Viết đánh giá ngay tại trang xác nhận (sao + nhận xét)
- Gắn đơn guest vào tài khoản qua "Order transfers"
- Theo dõi/đánh giá lại trong Tài khoản → Orders
🌳 Cây workflow
Toàn bộ hành động khách có thể thực hiện, nhóm theo khu vực chức năng.
- 🔎 Khám phá
- Trang chủ — banner, khuyến mãi, occasion tiles
- Store — Shop all — lọc (danh mục/giá/size), sắp xếp, mật độ lưới
- 📂 Danh mục — 4 danh mục phẳng (không lồng cấp trong seed)
- Shirts
- Medusa T-Shirt — biến thể: Color × Size (S/M/L/XL)
- Sweatshirts
- Medusa Sweatshirt — Color × Size
- Pants
- Medusa Sweatpants — Color × Size
- Merch
- Medusa Shorts — Size (S/M/L/XL)
- Shirts
- Tìm kiếm — gợi ý tức thời + trang kết quả
- Collections — route có, chưa có data
- 👕 Sản phẩm
- Chi tiết sản phẩm — màu, size, số lượng, ưu đãi mua nhiều
- Buy it now — mua nhanh, bỏ qua giỏ
- Viết đánh giá — sau khi mua (gated)
- 🛒 Giỏ & Thanh toán
- Thêm giỏ / mini-cart
- Giỏ hàng — mã giảm giá, thanh freeship, cập nhật/xoá
- Checkout — địa chỉ → vận chuyển → thanh toán → review
- Đặt hàng thành công
- 👤 Tài khoản
- Đăng nhập / Đăng ký
- Overview / Profile / Addresses / Orders — gồm order transfer
- Wishlist — cần đăng nhập
- 📄 Khác
- Newsletter — đăng ký nhận tin ở chân trang
- Content pages — About, FAQs, Contact, Shipping & Returns
- Track Order — hiện dẫn về Tài khoản → Orders
🛠️ Tech Reference
Tham chiếu kỹ thuật cho dev/QA: routes, điều kiện, vấn đề đã biết, môi trường. Storefront = Next.js App Router, region prefix /gb.
Bản đồ routes (storefront)
| Route | Màn hình | Ghi chú |
|---|---|---|
/gb | Trang chủ | hero, occasion, promos |
/gb/store | Tất cả sản phẩm | lọc + sắp xếp + grid density |
/gb/categories/{handle} | Danh mục | vd /categories/pants |
/gb/search/{query} | Kết quả tìm kiếm | gợi ý tức thời từ header |
/gb/collections/{handle} | Bộ sưu tập | chưa seed · không có trang index |
/gb/products/{handle} | Chi tiết SP | handle hợp lệ: t-shirt, sweatshirt, sweatpants, shorts |
/gb/cart | Giỏ hàng | promo, freeship, order summary |
/gb/checkout?step= | Thanh toán | step = address · delivery · payment · review |
/gb/order/{id}/confirmed | Xác nhận đơn | + widget viết đánh giá |
/gb/account | Tài khoản | overview/profile/addresses/orders/wishlist |
/gb/wishlist | Wishlist | cần đăng nhập |
/gb/content/{about,faqs,contact,shipping} | Content pages | trang thông tin tĩnh |
Hành vi & điều kiện đáng chú ý
- Add to cart chỉ bật khi chọn đủ biến thể (màu + size).
- Ưu đãi mua nhiều áp dụng tự động: 2→−5%, 3→−10%, 5→−15% mỗi sản phẩm.
- Freeship ngưỡng €75; giỏ hàng hiển thị thanh tiến trình.
- Guest checkout được hỗ trợ đầy đủ; đơn guest có thể gắn vào tài khoản qua Order transfers (nhập Order ID).
- Wishlist yêu cầu đăng nhập.
- Đánh giá sản phẩm chỉ mở cho người đã mua (từ trang xác nhận / account orders), không viết trực tiếp ở PDP.
- Payment: chỉ có Manual Payment (test only) — chưa cấu hình cổng thật.
Vấn đề đã biết
| Mức | Vấn đề |
|---|---|
| Bug tiềm ẩn | Handle sản phẩm không tồn tại (vd /products/medusa-t-shirt) gây runtime TypeError (getImagesForVariant, page.tsx:60) thay vì 404 graceful. |
| Hiệu năng | Thao tác giỏ/checkout chậm ~7–8s do Neon DB + tắt Redis (fake in-memory). Là vấn đề môi trường local. |
| Dữ liệu | Collections chưa seed; /collections index → 404; khối collection ở trang chủ trống. |
| Config | Chỉ có Manual Payment (test); Stripe/PayPal chưa cấu hình. |
| UX | "Track Order" (chân trang) dẫn về Account → Orders, chưa có trang tra cứu riêng cho guest. |
Môi trường khi kiểm chứng
| Storefront | http://localhost:8000 · Next.js App Router |
|---|---|
| Backend | http://localhost:9000 · Medusa v2 |
| Region | GB (prefix /gb) · tiền tệ EUR |
| Database | Neon (PostgreSQL cloud) · Redis tắt (fake in-memory) |
| Payment | Manual Payment (for testing purposes only) |
| Kiểm chứng | 07/08/2026 — thao tác thật, đã đặt 1 đơn mẫu thành công (order #1) |
Nguồn chi tiết: docs/workflows/flexiquor-storefront-workflows.md · Bản DOCX: docs/workflows/flexiquor-hanh-trinh-mua-hang.docx
🗂️ Tổng quan Admin
Admin FlexiQuor tổ chức theo domain (Sản phẩm, Đơn hàng, Tồn kho, Khách hàng, Khuyến mãi, Cấu hình…). Hướng: mở rộng Medusa Admin, mức MVP vận hành, hỗ trợ đa store (FlexiQuor + VinoVogue).
/app (không đoán qua code). Ảnh Shopify chỉ tham chiếu bố cục. Trạng thái: ✅ Có sẵn dùng ngay · ⚠️ Cần build thiếu vs Shopify · ❌ Chưa có.Gap analysis (Medusa v2 thực tế vs Shopify — chỉ thứ admin dùng)
| Domain | Trạng thái | Cần làm |
|---|---|---|
| Sản phẩm | ✅ Có sẵn | Options/variants, sales channel, organize, import/export — dùng nguyên |
| Tồn kho | ✅ Có sẵn | Inventory + Reservations; thêm cảnh báo tồn thấp |
| Đơn hàng | ✅ Có sẵn | Capture, fulfill, return/exchange, order edit, draft, order-transfer — đủ |
| Khách hàng | ✅ Có sẵn | Hồ sơ + Customer groups |
| Khuyến mãi | ✅ Có sẵn | Promotions + Campaigns + Price Lists (+ tier bulk-discount) |
| Đánh giá | ✅ Plugin | Widget review trên SP/đơn; thêm trang quản lý tập trung |
| Wishlist | ✅ Plugin | Plugin có trang admin top-wishlisted (insight) |
| Cấu hình | ✅ Có sẵn | Store, Users, Sales channel, API keys, Locations+Shipping, Tax, Return/Refund reasons |
| Báo cáo | ❌ Chưa có | Không có nav Analytics → build KPI dashboard |
| Nhân viên (RBAC) | ⚠️ Cần build | Mời/gỡ user cơ bản; thiếu vai trò/quyền chi tiết |
| Đa store / brand | ⚠️ Cần build | Có sales channel nhưng thiếu store switcher + scoping |
| Marketing | ⚠️ Cần build | Tích hợp ngoài (Klaviyo/Mailchimp) qua event |
- Định nghĩa: 1 store = sales channel + publishable key + brand config (USD chung, single region).
- Hiện admin mới có 1 sales channel ("Default") → cần chọn store đầu phiên để scope mọi domain theo brand.
- Medusa chưa có store-switcher gốc → cần build (context + lọc theo sales channel).
📸 Snapshot admin thật


2. Sản phẩm
- Stage
- 2. Sản phẩm · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 5
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Quản lý catalog cho brand đang chọn — tạo/sửa SP, biến thể, nhóm, nhập kho. Ẩn/hiện theo sales channel để tách FlexiQuor vs VinoVogue.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 2.01 | Tạo sản phẩm | Admin | Title/Subtitle/Handle/Mô tả, Media, Options→Variants (giá/SKU/tồn), Sales channel, Organize (category/collection/type/tag). Không có compare-at/giá vốn như Shopify — giá sale dùng Price List. | ✅ Có sẵn | ![]() |
| 2.02 | Sửa & bulk edit | Admin | Cập nhật nội dung/giá/tồn/trạng thái; sửa nhiều SP một lúc; archive khi ngừng bán | ✅ Có sẵn | ![]() |
| 2.03 | Options & biến thể | Admin | Sinh biến thể Color/Size; đặt giá, SKU, barcode, tồn từng biến thể | ✅ Có sẵn | ![]() |
| 2.04 | Bộ sưu tập & danh mục | Admin | Nhóm SP cho nav storefront & campaign (category + collection) | ✅ Có sẵn | ![]() |
| 2.05 | Import / Export CSV | Admin | Nhập/xuất catalog hàng loạt khi có nhiều SP | ✅ Có sẵn | ![]() |
🧩 Chi tiết các section trong flow sản phẩm
Liệt kê kỹ theo admin thật: wizard tạo sản phẩm chạy 3 bước (Details → Organize → Variants), và trang chi tiết gồm nhiều section + 2 widget plugin.
① Wizard tạo sản phẩm — 3 bước
| Bước | Section | Trường / nội dung |
|---|---|---|
| 1 · Details | General | Title (bắt buộc) · Subtitle · Handle (slug URL) · Description |
| Media | Upload nhiều ảnh (kéo-thả / click) | |
| Variants (toggle) | "Yes, this is a product with variants": bật → khai Product options (tên option + Values, vd Size: S/M/L/XL) → sinh Product variants (tổ hợp). Tắt → tạo 1 default variant | |
| 2 · Organize | Organize | Discountable (cho phép giảm giá) · Type · Collection · Categories · Tags |
| 3 · Variants | Pricing | Giá từng biến thể theo tiền tệ/region (USD) |
| Inventory | SKU · bật/tắt quản lý tồn · số lượng theo location | |
| Nút cuối mỗi bước: Cancel · Save as draft · Continue → bước cuối Publish. | ||
② Trang chi tiết sản phẩm — các section
| Section | Nội dung |
|---|---|
| Wishlist plugin | Sản phẩm đang nằm trong bao nhiêu wishlist |
| General | Trạng thái (Published/Draft) · Description · Subtitle · Handle · Material · Discountable |
| Media | Ảnh sản phẩm (đặt thumbnail) |
| Options | Các option của SP (vd Size: S/M/L/XL) |
| Variants | Bảng biến thể: Title · SKU · giá trị option · Inventory (tồn theo location) |
| Product Reviews plugin | Review của SP — duyệt / ẩn / phản hồi (xem Đánh giá) |
| Sales Channels | SP bán ở channel nào — tách brand FlexiQuor vs VinoVogue |
| Shipping configuration | Shipping profile áp cho SP |
| Organize | Tags · Type · Collection · Categories |
| Attributes | Height · Width · Length · Weight · MID code · HS code · Country of origin |
| Metadata / JSON | Trường tuỳ biến (key-value) & xem raw JSON của SP |


Chi tiết từng thao tác
2.01 Tạo sản phẩm
Title/Subtitle/Handle/Mô tả, Media, Options→Variants (giá/SKU/tồn), Sales channel, Organize (category/collection/type/tag). Không có compare-at/giá vốn như Shopify — giá sale dùng Price List.
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
2.02 Sửa & bulk edit
Cập nhật nội dung/giá/tồn/trạng thái; sửa nhiều SP một lúc; archive khi ngừng bán
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
2.03 Options & biến thể
Sinh biến thể Color/Size; đặt giá, SKU, barcode, tồn từng biến thể
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
2.04 Bộ sưu tập & danh mục
Nhóm SP cho nav storefront & campaign (category + collection)
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
2.05 Import / Export CSV
Nhập/xuất catalog hàng loạt khi có nhiều SP
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
3. Tồn kho
- Stage
- 3. Tồn kho · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 3 ⚠️ 1
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Theo dõi & cập nhật tồn theo biến thể × địa điểm, phân biệt available vs reserved (đã giữ cho đơn).
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 3.01 | Điều chỉnh tồn | Admin | Cập nhật số lượng theo location; xem available vs reserved | ✅ Có sẵn | ![]() |
| 3.02 | Địa điểm (locations) | Admin | Quản lý kho; gán location cho sales channel/brand | ✅ Có sẵn | ![]() |
| 3.03 | Reservations | Admin | Xem hàng đang giữ cho đơn chưa fulfill (tránh oversell) | ✅ Có sẵn | ![]() |
| 3.04 | Cảnh báo tồn thấp | Admin | Báo khi tồn dưới ngưỡng → gợi ý nhập thêm | ⚠️ Cần build | — |
Chi tiết từng thao tác
3.01 Điều chỉnh tồn
Cập nhật số lượng theo location; xem available vs reserved
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
3.02 Địa điểm (locations)
Quản lý kho; gán location cho sales channel/brand
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
3.03 Reservations
Xem hàng đang giữ cho đơn chưa fulfill (tránh oversell)
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
3.04 Cảnh báo tồn thấp
Báo khi tồn dưới ngưỡng → gợi ý nhập thêm
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
4. Đơn hàng
- Stage
- 4. Đơn hàng · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 5 ⚠️ 2
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Vòng đời đơn: tiếp nhận & thu tiền → fulfillment → sau bán (refund/return/exchange), cùng đơn thủ công & giỏ bỏ dở.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 4.01 | Tiếp nhận & thu tiền (capture) | Admin | authorized → paid; đánh dấu đã thu (Manual/COD) | ✅ Có sẵn | ![]() |
| 4.02 | Fulfillment + tracking | Admin | Xuất kho theo location, gắn carrier + mã vận đơn, email khách | ✅ Có sẵn | ![]() |
| 4.03 | Refund / Return / Exchange | Admin | Hoàn tiền, nhận trả → restock, đổi biến thể | ✅ Có sẵn | ![]() |
| 4.04 | Sửa đơn (order edit) | Admin | Thêm/bớt item, đổi số lượng sau khi đặt; tính lại tiền | ✅ Có sẵn | ![]() |
| 4.05 | Đơn thủ công (draft) | Admin | Tạo đơn hộ khách; gửi invoice / đánh dấu đã trả | ✅ Có sẵn | ![]() |
| 4.06 | Store credit khi trả hàng | Admin | Hoàn bằng credit dùng cho đơn sau thay vì tiền mặt | ⚠️ Cần build | — |
| 4.07 | Giỏ hàng bỏ dở | Admin | Xem giỏ chưa hoàn tất + email nhắc (recovery) | ⚠️ Cần build | — |
Chi tiết từng thao tác
4.01 Tiếp nhận & thu tiền (capture)
authorized → paid; đánh dấu đã thu (Manual/COD)
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
4.02 Fulfillment + tracking
Xuất kho theo location, gắn carrier + mã vận đơn, email khách
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
4.03 Refund / Return / Exchange
Hoàn tiền, nhận trả → restock, đổi biến thể
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
4.04 Sửa đơn (order edit)
Thêm/bớt item, đổi số lượng sau khi đặt; tính lại tiền
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
4.05 Đơn thủ công (draft)
Tạo đơn hộ khách; gửi invoice / đánh dấu đã trả
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
4.06 Store credit khi trả hàng
Hoàn bằng credit dùng cho đơn sau thay vì tiền mặt
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
4.07 Giỏ hàng bỏ dở
Xem giỏ chưa hoàn tất + email nhắc (recovery)
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
- 1 · Tổng quan
- Xử lý đơn sau khi đặt: thu tiền → xuất kho + tracking → sau bán (refund/return/exchange), kèm sửa đơn, đơn thủ công.
- 2 · Bối cảnh KD
- Giao đúng & nhanh = giữ khách; fulfillment là lõi vận hành, sai sót ở đây tạo tranh chấp và hoàn tiền.
- 3 · Luồng (admin)
- Mở đơn → capture tiền (4.01)
- Tạo fulfillment theo location, gắn carrier + mã vận đơn, email khách (4.02)
- Khi cần: refund / return→restock / exchange (4.03), sửa đơn (4.04)
- 4 · Hành vi hiện tại
- ✅ capture, fulfillment+tracking, refund/return/exchange, order edit, draft — dùng nguyên Medusa v2. ⚠️ store credit (4.06) & nhắc giỏ bỏ dở (4.07) chưa có.
- 5 · UX / UI
- Màn Order detail (snapshot
medusa-order-detail.png) · Drafts (medusa-drafts.png). - 6 · Logic / rule
- authorized → paid → fulfilled. Return → cộng lại tồn (restock). Exchange → cấp biến thể mới.
- 7 · Data / API
- Medusa Order / Fulfillment / Return modules (chuẩn v2.15.5). Bodies: theo Medusa Admin API docs — không bịa.
- 8 · Quyền
- Admin (single-role hiện tại). Phân quyền staff chi tiết: TBD — xem d-staff.
- 9 · Edge cases
- Fulfill/hủy một phần; tải lại trang chấp nhận/từ chối chuyển đơn bắn lại lệnh (Bug #12).
- 10 · Phụ thuộc
- Tồn kho (restock) · Thanh toán (capture/refund) · Email · Tài khoản khách (A3 chuyển đơn).
- 11 · Lỗi / rủi ro
- A1 nút đổi/trả chưa nối · Bug #12 chuyển đơn chạy lúc render.
- 12 · QA
- Ca "Người quản trị": fulfillment happy-path + return→restock.
- 13 · Đề xuất
- (đề xuất mới) Store credit khi trả hàng · email nhắc giỏ bỏ dở · sửa Bug #12 (idempotent transfer).
5. Khách hàng
- Stage
- 5. Khách hàng · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 2
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Hồ sơ khách, lịch sử mua, nhóm/segment để nhắm khuyến mãi.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 5.01 | Hồ sơ khách | Admin | Liên hệ, địa chỉ, đơn đã mua; ghi chú; gắn đơn guest vào tài khoản | ✅ Có sẵn | ![]() |
| 5.02 | Nhóm / segment | Admin | Tạo nhóm (VIP, wholesale) để áp price list/khuyến mãi riêng | ✅ Có sẵn | ![]() |
Chi tiết từng thao tác
5.01 Hồ sơ khách
Liên hệ, địa chỉ, đơn đã mua; ghi chú; gắn đơn guest vào tài khoản
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
5.02 Nhóm / segment
Tạo nhóm (VIP, wholesale) để áp price list/khuyến mãi riêng
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
6. Khuyến mãi
- Stage
- 6. Khuyến mãi · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 2 ⚠️ 1
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Mã giảm giá & khuyến mãi tự động, price list theo nhóm khách, và bulk-discount tier.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 6.01 | Mã & khuyến mãi tự động | Admin | Code/auto: %, tiền, freeship; điều kiện; gộp Campaign; gán sales channel | ✅ Có sẵn | ![]() |
| 6.02 | Price list | Admin | Giá riêng theo nhóm khách (VIP/wholesale) hoặc đợt sale | ✅ Có sẵn | ![]() |
| 6.03 | Bulk-discount tier (mua 2/3/5) | Admin | Quản lý tier ưu đãi mua nhiều đang hiển thị PDP (2 −5% · 3 −10% · 5 −15%) | ⚠️ Cần build | — |
Chi tiết từng thao tác
6.01 Mã & khuyến mãi tự động
Code/auto: %, tiền, freeship; điều kiện; gộp Campaign; gán sales channel
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
6.02 Price list
Giá riêng theo nhóm khách (VIP/wholesale) hoặc đợt sale
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
6.03 Bulk-discount tier (mua 2/3/5)
Quản lý tier ưu đãi mua nhiều đang hiển thị PDP (2 −5% · 3 −10% · 5 −15%)
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
1. Cấu hình cửa hàng
- Stage
- 1. Cấu hình cửa hàng · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 5 ⚠️ 2
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Nền tảng vận hành từng brand. Sales channel + publishable key là cách tách FlexiQuor vs VinoVogue. Chỉ hỗ trợ USD — không cần multi-currency/region như Shopify.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 1.01 | Cửa hàng & tiền tệ (USD) | Admin | Tên store, USD, múi giờ; 1 region (US) là đủ | ✅ Có sẵn | ![]() |
| 1.02 | Sales channel & API key | Admin | Mỗi brand 1 sales channel + publishable key cho storefront | ✅ Có sẵn | ![]() |
| 1.03 | Vận chuyển | Admin | Provider, phương thức & phí ship, ngưỡng freeship | ✅ Có sẵn | ![]() |
| 1.04 | Thuế | Admin | Tax region & tax rate; gán vào region | ✅ Có sẵn | ![]() |
| 1.05 | Nhân viên (users) | Admin | Mời email nhân viên vào admin (RBAC cơ bản) | ✅ Có sẵn | ![]() |
| 1.06 | Store / brand switcher | Admin | Chọn brand đầu phiên → mọi domain scope theo sales channel | ⚠️ Cần build | — |
| 1.07 | RBAC phân quyền chi tiết | Admin | Vai trò + quyền theo module & theo brand | ⚠️ Cần build | — |
Chi tiết từng thao tác
1.01 Cửa hàng & tiền tệ (USD)
Tên store, USD, múi giờ; 1 region (US) là đủ
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
1.02 Sales channel & API key
Mỗi brand 1 sales channel + publishable key cho storefront
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
1.03 Vận chuyển
Provider, phương thức & phí ship, ngưỡng freeship
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
1.04 Thuế
Tax region & tax rate; gán vào region
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
1.05 Nhân viên (users)
Mời email nhân viên vào admin (RBAC cơ bản)
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
1.06 Store / brand switcher
Chọn brand đầu phiên → mọi domain scope theo sales channel
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
1.07 RBAC phân quyền chi tiết
Vai trò + quyền theo module & theo brand
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
7. Đánh giá
- Stage
- 7. Đánh giá · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ⚠️ 1
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Plugin medusa-product-reviews đã cài: widget "Product Reviews" ngay trên trang Sản phẩm & Đơn hàng (review mới = pending, cần duyệt). Chưa có trang quản lý tập trung.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 7.01 | Widget "Product Reviews" (trên SP & Đơn) | Admin | Xem & xử lý review ngay tại trang sản phẩm / đơn hàng | ✅ Plugin | ![]() |
| 7.02 | Duyệt / ẩn / phản hồi | Admin | pending → approve lên PDP, reject, store response | ✅ Plugin | ![]() |
| 7.03 | Chỉ khách đã mua (verified) | Admin | Chỉ người đã mua mới review được — hạn chế spam | ✅ Plugin | ![]() |
| 7.04 | Điểm trung bình lên PDP | Admin | Rating tổng & phân bố sao hiển thị storefront | ✅ Plugin | ![]() |
| 7.05 | Trang quản lý tập trung + badge số chờ | Admin | Duyệt hàng loạt, lọc theo sao/trạng thái | ⚠️ Cần build | — |
Chi tiết từng thao tác
7.01 Widget "Product Reviews" (trên SP & Đơn)
Xem & xử lý review ngay tại trang sản phẩm / đơn hàng
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
7.02 Duyệt / ẩn / phản hồi
pending → approve lên PDP, reject, store response
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
7.03 Chỉ khách đã mua (verified)
Chỉ người đã mua mới review được — hạn chế spam
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
7.04 Điểm trung bình lên PDP
Rating tổng & phân bố sao hiển thị storefront
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
7.05 Trang quản lý tập trung + badge số chờ
Duyệt hàng loạt, lọc theo sao/trạng thái
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
- 1 · Tổng quan
- Review mới = pending; admin duyệt mới hiển thị lên trang sản phẩm (PDP). Plugin
@lambdacurry/medusa-product-reviews. - 2 · Bối cảnh KD
- Social proof tăng chuyển đổi; kiểm duyệt chặn spam / nội dung xấu trước khi lên PDP.
- 3 · Luồng (admin)
- Khách đã mua để lại review (verified buyer)
- Review vào trạng thái pending
- Admin mở widget "Product Reviews" trên trang SP/Đơn
- Approve → lên PDP · Reject · Store response
- 4 · Hành vi hiện tại
- ✅ widget, duyệt, verified-only, rating tổng (plugin). ⚠️ chưa có trang quản lý tập trung + badge số chờ (7.05). Critical Bug #1: review đã duyệt không lên PDP → tính năng vô hiệu.
- 5 · UX / UI
- Widget "Product Reviews" trên Product/Order (snapshot
medusa-product-detail.png). Trang quản lý tập trung: chưa có. - 6 · Logic / rule
defaultReviewStatus: "pending"(medusa-config). Storefront lọcstatus=approved. Chỉ verified buyer mới review.- 7 · Data / API
- Plugin v1.4.0; review entity: rating, content, status, images, response. Trường
imagescó sẵn ở API nhưng chưa có UI upload (A4). - 8 · Quyền
- Admin: duyệt/ẩn/phản hồi. Khách đã mua: tạo review.
- 9 · Edge cases
- Review sau refund/return; review trùng; nội dung xấu. Một phần TBD.
- 10 · Phụ thuộc
- Đơn hàng (xác minh đã mua) · Sản phẩm (PDP hiển thị) · bộ lọc storefront.
- 11 · Lỗi / rủi ro
- Bug #1 duyệt xong không lên PDP (Critical) · A4 ảnh review chưa có UI · 7.05 thiếu trang quản lý tập trung.
- 12 · QA
- Ca "Người quản trị": pending → approve → hiển thị PDP; enforce verified-only.
- 13 · Đề xuất
- (đề xuất mới) Sửa Bug #1 (khớp filter status) · trang quản lý tập trung + badge số chờ · UI upload ảnh review (A4).
8. Báo cáo
- Stage
- 8. Báo cáo · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ❌ 6
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Dashboard chỉ số vận hành theo brand. Medusa không có nav Analytics — cần build (aggregate từ Admin API).
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 8.01 | KPI cốt lõi | Admin | Doanh thu · số đơn · AOV theo thời gian | ❌ Chưa có | — |
| 8.02 | Dashboard tổng quan | Admin | 1 màn: chọn 7/30/90 ngày, so kỳ trước (▲▼%) | ❌ Chưa có | — |
| 8.03 | Lọc theo brand | Admin | Scope mọi chỉ số theo sales channel | ❌ Chưa có | — |
| 8.04 | Top SP & tồn thấp | Admin | SP bán chạy + danh sách tồn thấp → quyết định nhập | ❌ Chưa có | — |
| 8.05 | Khách & mã giảm giá | Admin | Khách mới vs quay lại; doanh số theo mã | ❌ Chưa có | — |
| 8.06 | Export CSV | Admin | Xuất số liệu theo thời gian & brand | ❌ Chưa có | — |
📸 Insight duy nhất hiện có

Chi tiết từng thao tác
8.01 KPI cốt lõi
Doanh thu · số đơn · AOV theo thời gian
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
8.02 Dashboard tổng quan
1 màn: chọn 7/30/90 ngày, so kỳ trước (▲▼%)
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
8.03 Lọc theo brand
Scope mọi chỉ số theo sales channel
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
8.04 Top SP & tồn thấp
SP bán chạy + danh sách tồn thấp → quyết định nhập
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
8.05 Khách & mã giảm giá
Khách mới vs quay lại; doanh số theo mã
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
8.06 Export CSV
Xuất số liệu theo thời gian & brand
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
9. Nhân viên
- Stage
- 9. Nhân viên · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 1 ⚠️ 3
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Mời nhân viên & giới hạn quyền theo vai trò/brand. Medusa có mời/gỡ user cơ bản; RBAC chi tiết cần build.
Thao tác
| ID | Hoạt động | Người thực hiện | Mục đích | Trạng thái | Ảnh thực tế |
|---|---|---|---|---|---|
| 9.01 | Mời & gỡ nhân viên | Admin | Mời email vào admin; gỡ/thu hồi khi nghỉ việc | ✅ Có sẵn | ![]() |
| 9.02 | Vai trò & quyền theo module | Admin | Owner/Manager/Staff; bật/tắt quyền theo đơn/SP/khuyến mãi/cấu hình | ⚠️ Cần build | — |
| 9.03 | Giới hạn theo brand | Admin | Nhân viên chỉ thấy brand (sales channel) được gán | ⚠️ Cần build | — |
| 9.04 | Nhật ký thao tác (audit) | Admin | Lưu lịch sử thao tác để đối soát | ⚠️ Cần build | — |
Chi tiết từng thao tác
9.01 Mời & gỡ nhân viên
Mời email vào admin; gỡ/thu hồi khi nghỉ việc
Mục tiêu / cần build: Dùng nguyên Medusa v2 (không cần thay đổi).
9.02 Vai trò & quyền theo module
Owner/Manager/Staff; bật/tắt quyền theo đơn/SP/khuyến mãi/cấu hình
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
9.03 Giới hạn theo brand
Nhân viên chỉ thấy brand (sales channel) được gán
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
9.04 Nhật ký thao tác (audit)
Lưu lịch sử thao tác để đối soát
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
10. Marketing
- Stage
- 10. Marketing · Vòng đời Admin
- Chủ thể
- Người thực hiện: Admin (một phần Hệ thống)
- Doc status
- Draft
- Feature
- ✅ 1 ⚠️ 9
- Last verified
- 2026-08-12 · Medusa Admin v2.15.5
Email/automation & chiến dịch — hướng tích hợp ngoài (Klaviyo/Mailchimp), không tự xây engine.
Thao tác
| # | Workflow | Mục đích | Trạng thái |
|---|---|---|---|
| 1 | Nối provider (Klaviyo/Mailchimp) | Đẩy event Medusa (order.placed, customer.created) sang tool ngoài | ⚠️ Cần build |
| 2 | Tạo chiến dịch | Chọn segment, soạn email/khuyến mãi, lên lịch, theo dõi mở/click | ⚠️ Cần build |
| 3 | Automation flows | Welcome / win-back / post-purchase / abandoned checkout | ⚠️ Cần build |
| 4 | Đo hiệu quả | Doanh thu & ROI do marketing mang lại theo kênh/chiến dịch | ⚠️ Cần build |

Chi tiết từng thao tác
10.01 Nối provider (Klaviyo/Mailchimp)
Đẩy event Medusa (order.placed, customer.created) sang tool ngoài
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
10.02 Tạo chiến dịch
Chọn segment, soạn email/khuyến mãi, lên lịch, theo dõi mở/click
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
10.03 Automation flows
Welcome / win-back / post-purchase / abandoned checkout
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
10.04 Đo hiệu quả
Doanh thu & ROI do marketing mang lại theo kênh/chiến dịch
Mục tiêu / cần build: Cần build — thiếu vs Shopify / cần cải tiến.
🛍️ Người mua hàng — User Journeys
9 hành trình · Critical Major Minor
Toàn bộ hành trình của người mua, xếp theo mức ưu tiên. Bấm tên hành trình để xem các bước.
Mức ưu tiên
Critical Bắt buộc (WIN) · Major Quan trọng · Minor Có thể tạm skip. Bấm tên hành trình để xem các bước ↓
| Ưu tiên | Hành trình | Mục đích | Kết quả (WIN) |
|---|---|---|---|
| Critical | Mua hàng (lần đầu — guest) | Mua sản phẩm, không cần tài khoản | ✅ Order confirmed |
| Major | Mua lại (đã có tài khoản) | Mua lại nhanh bằng địa chỉ/wishlist đã lưu | ✅ Đơn xác nhận |
| Major | Tìm kiếm sản phẩm | Tìm sản phẩm theo từ khoá | ✅ Tìm ra SP |
| Major | Đăng ký tài khoản | Tạo tài khoản thành viên | ✅ Vào dashboard |
| Major | Đăng nhập | Truy cập tài khoản | ✅ Vào dashboard |
| Major | Xem & theo dõi đơn hàng | Xem lịch sử & trạng thái đơn | ✅ Xem trạng thái |
| Major | Đổi / trả hàng | Yêu cầu đổi hoặc trả hàng | ✅ Hoàn tiền / đổi |
| Minor | Lưu & quản lý Wishlist | Lưu sản phẩm yêu thích | ✅ Đã lưu |
| Minor | Viết đánh giá sản phẩm | Chấm sao & nhận xét sau mua | ✅ Review gửi |
Mua hàng (lần đầu — guest) Critical
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào web, xem trang chủ. | Bắt đầu, nắm khuyến mãi & danh mục |
| 2 | Tìm sản phẩm: duyệt danh mục, "Shop all" + lọc, hoặc tìm kiếm. | Tìm đúng sản phẩm cần mua |
| 3 | Mở trang sản phẩm; xem ảnh, giá, mô tả, đánh giá. | Xem thông tin trước khi chọn |
| 4 | Chọn màu và size; chỉnh số lượng nếu muốn. | Chọn đúng biến thể & số lượng |
| 5 | Bấm "Add to cart"; mini-cart hiện ra. | Đưa sản phẩm vào giỏ |
| 6 | Vào giỏ hàng; nhập mã giảm giá nếu có. | Xem lại giỏ, áp mã giảm |
| 7 | Bấm "Go to checkout"; chọn mua với tư cách khách (guest). | Bắt đầu thanh toán, không cần tài khoản |
| 8 | Nhập email và địa chỉ giao hàng. | Cung cấp nơi nhận hàng |
| 9 | Chọn phương thức vận chuyển (Standard hoặc Express). | Chọn tốc độ & phí giao |
| 10 | Chọn phương thức thanh toán; nhập thông tin thẻ nếu cần. | Chọn cách trả tiền |
| 11 | Xem lại đơn rồi bấm "Place order". | Xác nhận & đặt đơn |
| 12 | Nhận trang "Order confirmed" và email xác nhận. | Hoàn tất, nhận xác nhận |
Mua lại (đã có tài khoản) Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Đăng nhập tài khoản. | Truy cập tài khoản đã có |
| 2 | Mở Wishlist hoặc chọn lại sản phẩm đã mua. | Chọn nhanh sản phẩm quen |
| 3 | Thêm vào giỏ; ưu đãi mua nhiều tự áp nếu đủ số lượng. | Đưa vào giỏ, tự áp ưu đãi |
| 4 | Checkout dùng địa chỉ đã lưu, thanh toán nhanh. | Thanh toán nhanh gọn |
| 5 | Nhận xác nhận đơn. | Hoàn tất mua lại |
Tìm kiếm sản phẩm Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Gõ từ khoá vào ô tìm kiếm. | Nhập nhu cầu tìm |
| 2 | Xem gợi ý tức thời (tên, giá, ảnh). | Chọn nhanh từ gợi ý |
| 3 | Bấm "View all results" để xem trang kết quả đầy đủ. | Xem đầy đủ kết quả |
| 4 | Lọc / sắp xếp để thu hẹp. | Thu hẹp đúng ý |
Đăng ký tài khoản Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Bấm icon tài khoản rồi chọn "Join us". | Mở form đăng ký |
| 2 | Nhập họ tên, email, số điện thoại, mật khẩu. | Cung cấp thông tin tài khoản |
| 3 | Bấm "Join". | Tạo tài khoản |
| 4 | Vào trang tài khoản. | Bắt đầu dùng tài khoản |
Đăng nhập Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Bấm icon tài khoản. | Mở form đăng nhập |
| 2 | Nhập email và mật khẩu, bấm "Sign in". | Xác thực đăng nhập |
| 3 | Vào trang tài khoản. | Truy cập tài khoản |
Xem & theo dõi đơn hàng Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Đăng nhập, vào Tài khoản → Orders. | Vào danh sách đơn |
| 2 | Chọn một đơn để xem chi tiết và trạng thái. | Xem chi tiết & trạng thái |
| 3 | Theo dõi tình trạng giao hàng. | Biết đơn đang ở đâu |
Đổi / trả hàng Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào Tài khoản → Orders, chọn đơn. | Chọn đơn cần đổi/trả |
| 2 | Yêu cầu đổi hoặc trả, nêu lý do. | Gửi yêu cầu đổi/trả |
| 3 | Gửi hàng về; nhận hoàn tiền hoặc hàng đổi. | Hoàn tất đổi/trả |
Lưu & quản lý Wishlist Minor
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Đã đăng nhập, mở trang sản phẩm rồi bấm ♡ / "Save". | Lưu sản phẩm yêu thích |
| 2 | Mở icon ♡ để vào trang Wishlist. | Xem danh sách đã lưu |
| 3 | Xem, xoá, hoặc thêm vào giỏ từ Wishlist. | Quản lý & mua khi cần |
Viết đánh giá sản phẩm Minor
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Sau khi mua, mở trang xác nhận đơn hoặc Tài khoản → Orders. | Vào nơi viết đánh giá |
| 2 | Chấm sao và viết nhận xét. | Chia sẻ trải nghiệm |
| 3 | Bấm "Submit review". | Gửi đánh giá |
🗂️ Người quản trị — User Journeys
8 hành trình · Critical Major Minor
Toàn bộ hành trình vận hành của admin, xếp theo mức ưu tiên. Bấm tên hành trình để xem các bước.
Mức ưu tiên
Critical Bắt buộc (WIN) · Major Quan trọng · Minor Có thể tạm skip. Bấm tên hành trình để xem các bước ↓
| Ưu tiên | Hành trình | Mục đích | Kết quả (WIN) |
|---|---|---|---|
| Critical | Cấu hình cửa hàng (ban đầu) | Dựng cửa hàng đúng brand | ✅ Sẵn sàng bán |
| Critical | Tạo & bán sản phẩm | Đưa sản phẩm lên bán | ✅ Publish |
| Critical | Xử lý đơn hàng (giao hàng) | Thu tiền & giao hàng | ✅ Fulfilled |
| Major | Đổi / trả & hoàn tiền | Xử lý trả hàng & hoàn tiền | ✅ Hoàn tiền / đổi |
| Major | Tạo khuyến mãi | Tạo mã & chương trình giảm giá | ✅ Kích hoạt |
| Major | Quản lý khách hàng | Xem hồ sơ & phân nhóm khách | ✅ Nhóm / segment |
| Minor | Xem báo cáo | Theo dõi KPI kinh doanh | ✅ Xem báo cáo |
| Minor | Mời & phân quyền nhân viên | Thêm nhân viên & phân quyền | ✅ NV đăng nhập |
Cấu hình cửa hàng (ban đầu) Critical
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Đăng nhập /app và chọn brand. | Vào admin đúng cửa hàng |
| 2 | Cấu hình region (US/USD), sales channel và publishable key. | Thiết lập kênh bán & USD |
| 3 | Thiết lập vận chuyển và thuế. | Cấu hình phí ship & thuế |
| 4 | Tạo cây danh mục sản phẩm. | Dựng cấu trúc danh mục |
Tạo & bán sản phẩm Critical
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào Products → Create; nhập tiêu đề, mô tả, ảnh. | Tạo sản phẩm mới |
| 2 | Thêm options (màu, size) để sinh biến thể; đặt giá, SKU, tồn. | Sinh biến thể, giá, tồn |
| 3 | Gán sales channel = brand; đặt trạng thái Active. | Cho phép bán ở brand |
| 4 | Save rồi publish; kiểm tra trên storefront. | Đưa lên storefront |
Xử lý đơn hàng (giao hàng) Critical
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào Orders, mở đơn mới. | Tiếp nhận đơn mới |
| 2 | Thu tiền (capture) nếu chưa. | Thu tiền đơn hàng |
| 3 | Tạo fulfillment: chọn sản phẩm, địa điểm xuất kho, gắn mã vận đơn. | Chuẩn bị & xuất kho |
| 4 | Đánh dấu Fulfilled; email vận đơn cho khách. | Giao & báo khách |
Đổi / trả & hoàn tiền Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Mở đơn, tạo yêu cầu Return / Refund. | Mở yêu cầu trả/hoàn |
| 2 | Nhận hàng trả về rồi restock (tăng tồn). | Nhập lại tồn |
| 3 | Hoàn tiền hoặc đổi sang biến thể khác. | Xử lý xong cho khách |
Tạo khuyến mãi Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào Promotions → Create. | Tạo chương trình KM |
| 2 | Chọn loại (mã hoặc tự động), giá trị, điều kiện, thời hạn. | Đặt luật giảm giá |
| 3 | Gán sales channel rồi kích hoạt. | Cho KM chạy ở brand |
Quản lý khách hàng Major
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào Customers, mở hồ sơ khách. | Tra cứu khách |
| 2 | Xem đơn đã mua và thông tin liên hệ. | Hiểu lịch sử khách |
| 3 | Tạo hoặc gán nhóm khách (VIP, wholesale…). | Phân nhóm để chăm sóc |
Xem báo cáo Minor
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Mở Analytics. | Vào báo cáo |
| 2 | Chọn khoảng thời gian và lọc theo brand. | Khoanh vùng dữ liệu |
| 3 | Xem doanh thu, top sản phẩm, sản phẩm tồn thấp. | Ra quyết định kinh doanh |
Mời & phân quyền nhân viên Minor
| # | Workflow | Mục đích |
|---|---|---|
| 1 | Vào Settings → Users, mời email nhân viên. | Mời nhân viên |
| 2 | Gán vai trò và quyền theo module / brand. | Phân quyền theo module/brand |
| 3 | Nhân viên nhận lời mời rồi đăng nhập. | Nhân viên vào việc |
🐞 Lỗi & rủi ro
13 lỗi có bằng chứng · 5 mục “hứa mà chưa có”
Register lỗi có bằng chứng (đối chiếu trực tiếp storefront/admin thật) + các tính năng "hứa mà chưa có". Xếp theo mức ảnh hưởng.
Lỗi & rủi ro — 13 mục
| # | Vấn đề | Ảnh hưởng | Bằng chứng | Hướng xử lý đề xuất |
|---|---|---|---|---|
| 1 | Đánh giá duyệt xong không lên trang sản phẩm | Tính năng đánh giá vô hiệu hoàn toàn; công kiểm duyệt đổ sông | API trả approved, PDP vẫn “No reviews yet”, kể cả khách mới | Bỏ force-cache cho truy vấn đánh giá, hoặc đặt revalidate ngắn, hoặc để backend gọi revalidate khi duyệt |
| 2 | Trang xác nhận báo “đã thanh toán” khi tiền chưa thu | Sai lệch với khách, dễ tranh chấp; đơn có thể không bao giờ được thu tiền | Storefront “€20.00 paid” vs Admin Paid Total €0,00 | Sửa câu chữ theo trạng thái thật (“đã ghi nhận” ≠ “đã thu”), hoặc bật thu tiền tự động khi đặt hàng |
| 3 | Thêm giỏ hàng chậm 7,0s / 3,4s | Nằm giữa luồng ra tiền, tăng tỉ lệ bỏ giỏ | Đo trong trình duyệt, chế độ dev | Đo lại trên bản production trước. Nếu vẫn chậm: cập nhật giao diện lạc quan (optimistic) + gộp bước tạo giỏ |
| 4 | npm run dev hỏng trên Node 23 | Dev mới clone về không chạy được từ lần thứ hai | ERR_FS_EISDIR tại patch-product-reviews.mjs:62 | Dùng unlinkSync cho symlink thay rmSync, hoặc bỏ qua khi link tương đối đã đúng |
| 5 | Ưu đãi mua nhiều chỉ là chữ | Quảng cáo sai; khách mua 3 không được giảm | Giỏ 3 × €10 = €30,00 | Tạo Promotion tương ứng trong Admin, hoặc gỡ quảng cáo khỏi trang cho tới khi làm xong |
| 6 | Lọc / sắp xếp chỉ chạy trên 100 sản phẩm đầu | Catalog lớn lên là kết quả sai âm thầm | Lọc giá & size chạy trong bộ nhớ sau khi tải 100 dòng | Đẩy lọc giá/size xuống server (endpoint riêng hoặc công cụ tìm kiếm). Trước mắt: chặn cứng và báo cho người dùng khi vượt ngưỡng |
| 7 | Ngưỡng freeship sai tiền tệ | Hiển thị sai với mọi vùng không dùng USD | “$75” đem so với giỏ EUR → “còn €45,00” | Khai freeShip theo từng vùng/tiền tệ thay vì một số trần |
| 8 | 4 trang tĩnh ở chân trang đều 404 | Mất niềm tin đúng lúc khách đang cân nhắc mua | /dk/content/about · faqs · contact · shipping | Dựng route /content/*, hoặc gỡ link khỏi chân trang trước khi lên production |
| 9 | Đổi mật khẩu & quên mật khẩu chưa làm | Khách mất mật khẩu là mất tài khoản | Hàm xử lý chỉ ghi log, không gọi API | Nối API đặt lại mật khẩu của Medusa — cần có email hoạt động trước (xem mục 5) |
| 10 | Đăng ký nhận tin không nối backend | Thu thập email xong vứt đi | Form chỉ đổi trạng thái hiển thị | Nối vào công cụ email marketing, hoặc gỡ form |
| 11 | Không có bộ sưu tập nào | /collections/* luôn 404 | Seed FlexiQuor không tạo collection | Tạo trong Admin, hoặc bổ sung vào seed |
| 12 | Trang đồng ý/từ chối chuyển đơn chạy ngay lúc render | Tải lại trang là bắn lại lệnh, hiện lỗi lần hai | Server component gọi thẳng action lúc render | Chuyển thành thao tác bấm nút (server action), không chạy khi render |
| 13 | Đường dẫn sản phẩm sai làm sập trang | Link cũ, link gõ nhầm hay bot quét đều nhận trang lỗi thay vì “không tìm thấy”. Hại SEO và trải nghiệm | /dk/products/<handle bất kỳ> → 500; log ném TypeError: Cannot read properties of undefined (reading 'images') tại products/[handle]/page.tsx:60 | Kiểm tra không tìm thấy sản phẩm rồi gọi notFound() trước khi chạy getImagesForVariant. |
Hứa mà chưa có (A1–A5)
| # | Khách được hứa gì | Thực tế | Bằng chứng |
|---|---|---|---|
| A1 | Đổi / trả hàng | Trang đơn hàng ghi “bạn có thể tạo yêu cầu đổi hoặc trả hàng”. Không có nút, không có màn hình, không có một lệnh gọi API nào trong toàn bộ storefront. | Câu hứa ở account/@dashboard/orders/page.tsx:27; tìm khắp lib/ và modules/ không có lệnh gọi trả hàng nào |
| A2 | Email xác nhận đơn hàng | Trang cảm ơn ghi “đã gửi xác nhận tới email của bạn”, luồng chuyển đơn ghi “đã gửi email cho chủ đơn cũ”. Chưa cấu hình nhà cung cấp email nào — Medusa dùng provider mặc định chỉ ghi log. Không có thư nào thực sự đi. | medusa-config.ts không khai báo module notification |
| A3 | Chuyển đơn về tài khoản | Luồng phụ thuộc hoàn toàn vào email chứa link xác nhận. Không có email ⇒ chặng đồng ý/từ chối không thể hoàn tất — nửa sau của tính năng hiện không dùng được. | Hệ quả trực tiếp của A2 |
| A4 | Đánh giá kèm ảnh | API nhận trường images và trang sản phẩm có sẵn chỗ hiển thị ảnh, nhưng form viết đánh giá không có chỗ tải ảnh lên. | Không tìm thấy images trong order-reviews/index.tsx |
| A5 | Ưu đãi mua nhiều · trang tĩnh · bộ sưu tập · nhận tin | Bốn mục này cũng thuộc dạng “hứa mà không có”. Đã ghi ở mục 4 (số 5, 8, 10, 11), không lặp lại. | — |
🔻 Thiếu vs Shopify
9 hạng mục thiếu vs Shopify · 8 đề xuất xây
Hạng mục Shopify bật sẵn mà FlexiQuor chưa có (cần trước khi bán thật) + hướng xây đề xuất.
Shopify mặc định vs FlexiQuor (B1–B9)
Ưu tiên theo "cần để chạy thật" (không cần giống Shopify 100%): Critical chặn bán — bắt buộc · Major cần sớm (pháp lý/niềm tin/trải nghiệm) · Minor tùy mô hình, skip được. Tối thiểu để bán thật: B1 + B2.
| # | Ưu tiên | Hạng mục | Shopify mặc định | FlexiQuor hiện tại |
|---|---|---|---|---|
| B1 | Critical | Cổng thanh toán thật | Shopify Payments bật sẵn, cộng hơn 100 cổng bên thứ ba | Chỉ “Manual Payment — For testing purposes only”. Mã tích hợp Stripe có sẵn nhưng chưa bật; chưa thấy cổng nội địa (VNPay/MoMo/ZaloPay) |
| B2 | Critical | Email giao dịch | Có sẵn ~20 mẫu thư: xác nhận đơn, đã giao, đặt lại mật khẩu… | Chưa cấu hình nhà cung cấp email nào (A2). Chặn luôn B3 và lỗi số 9 ở mục 4 |
| B4 | Major | Quên mật khẩu | Có sẵn, gửi link đặt lại qua email | Link “Forgot password?” ở trang đăng nhập không trỏ đi đâu. Khách quên mật khẩu là mất tài khoản |
| B5 | Major | Thuế | Tự tính theo vùng, hỗ trợ giá đã gồm thuế | Tax Total €0.00 trên đơn thật; kho mã có commit feat: remove taxes — cần xác nhận cố ý hay tạm bỏ |
| B6 | Major | Trang nội dung (Giới thiệu, FAQ, Chính sách) | Có sẵn mục Pages, và tự sinh các trang chính sách bắt buộc | Chân trang trỏ tới 4 trang này nhưng cả 4 đều 404 — không có hệ quản trị nội dung nào |
| B7 | Major | Giảm giá tự động | Có cả mã giảm giá và giảm giá tự động theo số lượng / combo | Chỉ có mã giảm giá nhập tay. Không có giảm tự động — chính là lý do quảng cáo “mua 3 giảm 10%” không chạy |
| B8 | Major | Tồn kho & hết hàng | Theo dõi tồn, ẩn/chặn mua khi hết, cho phép đặt trước | Dữ liệu mẫu để 1.000.000 mỗi biến thể nên chưa bao giờ chạm trạng thái hết hàng. Luồng hết hàng chưa từng được kiểm thử |
| B3 | Minor | Trang trạng thái đơn & theo dõi vận đơn | Mỗi đơn có trang trạng thái riêng, gửi kèm email, hiện mã vận đơn và tiến trình giao | Chân trang có link “Track Order” nhưng chỉ dẫn về danh sách đơn. Không hiển thị mã vận đơn hay tiến trình giao cho khách |
| B9 | Minor | Thẻ quà tặng | Có sẵn | Có chỗ nhập ở giỏ nhưng thân hàm đang bị comment |
Đề xuất cách xây (D)
Ưu tiên xây (làm trước): Critical làm ngay (đang sai/hỏng trên bản chạy) · Major kế tiếp · Minor tùy nhu cầu / skip.
| Hạng mục | Ưu tiên | Hướng triển khai đề xuất | Mức xác nhận nhu cầu |
|---|---|---|---|
| Trang quản lý đánh giá trong Admin | Critical | Admin route /reviews + widget gọi API plugin | Chắc chắn /app/product-reviews đang 404, phải mò vào từng sản phẩm. Nhưng phải sửa lỗi cache trước, không thì có trang cũng vô nghĩa |
| UI quản lý tier ưu đãi số lượng | Critical | Quản lý tier theo phạm vi: toàn store / bộ sưu tập | Chắc chắn ưu đãi đang là chữ suông, giỏ 3 × €10 vẫn €30 |
| Bộ chuyển thương hiệu trong Admin | Major | Active-store context (React context + cookie); tự gắn sales_channel_id | Chắc chắn storefront đã đa thương hiệu, Admin thì chưa — và đặt lệch cấu hình hiện không có cảnh báo nào |
| Cảnh báo sắp hết hàng | Major | Job kiểm tra InventoryLevel theo ngưỡng → cảnh báo | Hợp lý tồn đang để 1.000.000 nên chưa lộ; cần khi bán thật |
| Khôi phục giỏ bỏ quên | Major | Lưu giỏ chưa hoàn tất + subscriber gửi email nhắc | Hợp lý phụ thuộc hệ thống email chưa có (mục B2) |
| Bảng phân tích trong Admin | Major | Widget dashboard truy vấn Admin API (tổng hợp đơn) | Hợp lý hiện không đo được khách rơi ở bước nào |
| Phân quyền theo vai trò (RBAC) | Minor | Lớp role → scope (theo module + kênh bán) gắn vào user | Chưa xác minh chưa thử phân quyền; cần khi có nhiều người vận hành |
| Module đơn đặt hàng nhà cung cấp | Minor | Custom module purchase-order (PO + dòng hàng + phiếu nhận) | Chưa xác minh nhu cầu đến từ nghiệp vụ nội bộ, không quan sát được từ app |
🧪 Test cases (QA)
32 test-case · Critical + Major · 2 vai trò
Danh sách case để dev/test theo ưu tiên. Critical phải chạy · Major nếu còn thời gian · Minor bỏ khi gấp.
🛍️ Người mua hàng
🔴 Critical
| # | Flow | Bước test | Kết quả mong đợi (pass) | Đã kiểm chứng |
|---|---|---|---|---|
| C1 | Trang chủ tải | Mở /gb | Hero + nav + SP hiển thị | 🟢 Chạy được |
| C2 | Xem SP (PDP) | Mở 1 sản phẩm | Ảnh, giá, chọn màu/size | 🟢 Chạy được |
| C3 | Thêm giỏ | Chọn variant → Add to cart | Mini-cart hiện, badge +1 | 🟢 Chạy được nhưng chờ 7s |
| C4 | Checkout → đặt hàng | Địa chỉ → ship → payment → Place order | "Order confirmed!" + email | 🔴 Phần email không pass — chưa cấu hình gửi thư |
🟠 Major
| # | Flow | Bước test | Kết quả mong đợi (pass) | Đã kiểm chứng |
|---|---|---|---|---|
| M1 | Tìm kiếm | Gõ từ khoá | Gợi ý + kết quả đúng | 🟢 Chạy được — kết quả ở /store?q= |
| M2 | Duyệt danh mục | Chọn danh mục + lọc | Đúng danh mục | 🔴 Chạy được — sai khi >100 SP |
| M3 | Buy it now | PDP chọn variant → Buy it now | Vào thẳng checkout | ⚪ Chưa kiểm chứng |
| M4 | Cập nhật giỏ | Đổi số lượng / xoá | Tổng cập nhật | 🟢 Chạy được |
| M5 | Mã giảm giá | Nhập FREEDOM | Tổng giảm đúng % | ⚪ Chưa kiểm chứng — cần xác nhận mã FREEDOM đã tạo trong Admin chưa |
| M6 | Wishlist | Login → ♡ → Wishlist | SP đã lưu | 🟢 Chạy được |
| M7 | Đăng ký | Điền form → Join | Vào dashboard | 🟢 Chạy được |
| M8 | Đăng nhập | Email + mật khẩu | Vào dashboard | 🟢 Chạy được — đã kiểm chứng 10/08 |
| M9 | Lịch sử đơn | Tài khoản → Orders | Thấy đơn / trạng thái | 🟢 Thấy đơn, không thấy trạng thái giao |
| M10 | Cập nhật hồ sơ/địa chỉ | Sửa & lưu | Lưu thành công | ⚪ Chưa kiểm chứng — form render đúng, chưa bấm lưu |
| M11 | Viết review | Chấm sao → Submit | Review gửi | 🔴 Gửi được — nhưng không bao giờ hiện ra |
| M12 | Đổi / trả | Return → refund | Đúng chính sách 30 ngày | 🟢 Không chạy được — không có giao diện trả hàng |
🗂️ Người quản trị
🔴 Critical
| # | Flow | Bước test | Kết quả mong đợi (pass) | Đã kiểm chứng |
|---|---|---|---|---|
| C5 | Admin login + chọn store | /app → chọn brand | Vào admin, đúng brand | ⚪ Đăng nhập được — chưa có bộ chọn brand |
| C6 | Tạo / publish SP | Tạo SP + variant → publish | Hiện trên storefront | ⚪ Chưa kiểm chứng — xem T5 |
| C7 | Fulfill đơn | Đơn Paid → fulfillment + tracking | Fulfilled + email | 🔴 Phần email không pass |
| C8 | Refund đơn | Refund full/partial | Payment status cập nhật | ⚪ Chưa kiểm chứng |
🟠 Major
| # | Flow | Bước test | Kết quả mong đợi (pass) | Đã kiểm chứng |
|---|---|---|---|---|
| M1 | Tồn kho điều chỉnh | Sửa số lượng 1 variant | Available đúng | ⚪ Chưa kiểm chứng |
| M2 | Địa điểm | Thêm + gán channel | Location gắn brand | ⚪ Chưa kiểm chứng |
| M3 | Tạo khuyến mãi | Tạo mã → Active | Áp ở storefront | ⚪ Chưa kiểm chứng — quan trọng, liên quan lỗi ưu đãi số lượng |
| M4 | Bộ sưu tập/Danh mục | Gán SP | Hiển thị nhóm | ⚪ Chưa có bộ sưu tập nào |
| M5 | Khách hàng | Mở hồ sơ / nhóm | Dữ liệu đúng | ⚪ Chưa kiểm chứng |
| M6 | Đơn thủ công (draft) | Tạo draft → đã thanh toán | Thành đơn thật | ⚪ Chưa kiểm chứng |
| M7 | Capture payment | Đơn Authorized → Capture | Status Paid | 🟢 Có nút, đã thấy — xem T2 |
| M8 | Fulfill một phần | Fulfill 1 phần + tracking | Partial fulfilled | ⚪ Chưa kiểm chứng |
| M9 | Cấu hình channel/key | Sales channel → publishable key | Storefront đúng brand | 🟢 Chạy được — xem T4 |
| M10 | Shipping & Tax | Method + tax region | Phí/thuế đúng | 🔴 Phí ship đúng; thuế đang €0,00 |
| M11 | Nhân viên | Users → invite | Nhân viên đăng nhập | 🔴 Nhiều khả năng không pass — lời mời cần email |
| M12 | Duyệt review | Approve / reject | Review lên/ẩn PDP | 🔴 Không pass — duyệt xong không lên PDP |













