Hướng dẫn quản lý Menu nhà hàng
Tổng quan
Hệ thống quản lý Menu nhà hàng cho phép cấu hình và quản lý thực đơn cho từng nhà hàng, khu vực và gán sản phẩm với giá cụ thể cho từng menu.
Tính năng chính:
✅ Quản lý nhiều nhà hàng
✅ Phân chia khu vực trong nhà hàng
✅ Tạo menu theo nhà hàng và khu vực
✅ Gán sản phẩm vào menu với giá riêng
✅ Copy menu nhanh chóng
✅ Lọc và tìm kiếm menu theo nhiều tiêu chí
✅ Ghi log tất cả thao tác (Action Log)
Luồng hoạt động:
Nhà hàng
↓
Khu vực nhà hàng
↓
Menu (thuộc nhà hàng + khu vực)
↓
Sản phẩm (với giá riêng cho từng menu)
Các bước cấu hình
BƯỚC 1: Tạo Nhà hàng
1.1. Truy cập quản lý nhà hàng
- Đăng nhập Admin
- Menu: Cấu hình > Nhà hàng
1.2. Thêm nhà hàng mới
Form nhập liệu:
┌─── Thông tin nhà hàng ──────────────────┐
│ Mã nhà hàng*: NHA01 │
│ Tên nhà hàng*: Nhà hàng ThinkSoft │
│ Loại*: 1 (Restaurant) │
│ Logo URL: https://example.com/... │
└─────────────────────────────────────────┘
Giải thích các trường:
| Trường | Bắt buộc | Mô tả | Ví dụ |
|---|---|---|---|
| Mã nhà hàng | ✅ | Mã định danh (5 ký tự, unique) | NHA01, NHA02 |
| Tên nhà hàng | ✅ | Tên hiển thị | Nhà hàng ThinkSoft |
| Loại | ✅ | Loại hình nhà hàng | 1 (Restaurant) |
| Logo URL | ❌ | Đường dẫn logo | https://... |
1.3. Quy tắc mã nhà hàng
✅ Đúng:
NHA01, NHA02, CAFE1, REST1
❌ Sai:
nha01 → Phải viết HOA
NHA 01 → Không được có khoảng trắng
Nhà-hàng → Có dấu
NHAHANG01 → Quá 5 ký tự
Format chuẩn: [A-Z0-9]{1,5} (tối đa 5 ký tự, CHỮ HOA, KHÔNG DẤU)
BƯỚC 2: Tạo Khu vực nhà hàng
2.1. Truy cập quản lý khu vực
- Menu: Cấu hình > Khu vực nhà hàng
2.2. Thêm khu vực mới
Form nhập liệu:
┌─── Thông tin khu vực ───────────────────┐
│ Nhà hàng*: [Dropdown] Nhà hàng A │
│ Tên khu vực*: Tầng 1 │
└─────────────────────────────────────────┘
Giải thích:
| Trường | Bắt buộc | Mô tả | Ví dụ |
|---|---|---|---|
| Nhà hàng | ✅ | Chọn nhà hàng | Nhà hàng ThinkSoft |
| Tên khu vực | ✅ | Tên khu vực | Tầng 1, Khu VIP, Sân vườn |
2.3. Ví dụ phân chia khu vực
Nhà hàng ThinkSoft:
📍 Tầng 1
- Phục vụ 30 bàn
- Menu: Đồ uống + Món ăn nhẹ
📍 Tầng 2
- Phục vụ 20 bàn
- Menu: Món chính + Buffet
📍 Khu VIP
- Phục vụ 5 phòng riêng
- Menu: Cao cấp + Đặc biệt
📍 Sân vườn
- Phục vụ 15 bàn ngoài trời
- Menu: BBQ + Đồ uống
BƯỚC 3: Tạo Menu
3.1. Truy cập quản lý menu
- Menu: Nhà hàng > Menu nhà hàng
3.2. Thêm menu mới
Form nhập liệu:
┌─── Thông tin menu ──────────────────────┐
│ Nhà hàng*: [Dropdown] Nhà hàng A │
│ Khu vực*: [Dropdown] Tầng 1 │
│ Tên menu*: Menu Đồ uống sáng │
│ Mô tả: Thực đơn đồ uống phục vụ │
│ buổi sáng 6h-10h │
└─────────────────────────────────────────┘
Giải thích các trường:
| Trường | Bắt buộc | Mô tả | Ví dụ |
|---|---|---|---|
| Nhà hàng | ✅ | Chọn nhà hàng | Nhà hàng ThinkSoft |
| Khu vực | ✅ | Chọn khu vực (thuộc nhà hàng) | Tầng 1 |
| Tên menu | ✅ | Tên thực đơn (tối đa 255 ký tự) | Menu Đồ uống sáng |
| Mô tả | ❌ | Mô tả chi tiết (tối đa 500 ký tự) | Phục vụ buổi sáng... |
3.3. Lưu ý quan trọng
⚠️ Khu vực phải thuộc về nhà hàng
Ví dụ:
- Nhà hàng A → Chỉ hiển thị khu vực của Nhà hàng A
- Nhà hàng B → Chỉ hiển thị khu vực của Nhà hàng B
Quy trình chọn:
- Chọn Nhà hàng trước
- Dropdown Khu vực tự động load khu vực của nhà hàng đó
- Chọn Khu vực
- Nhập Tên menu và Mô tả
3.4. Ví dụ cấu trúc menu
Nhà hàng ThinkSoft - Tầng 1:
📋 Menu Đồ uống sáng (6h-10h)
📋 Menu Đồ uống trưa (11h-14h)
📋 Menu Đồ uống chiều (15h-18h)
📋 Menu Món ăn nhẹ
Nhà hàng ThinkSoft - Tầng 2:
📋 Menu Buffet sáng
📋 Menu Buffet trưa
📋 Menu Món chính
📋 Menu Ăn chay
Nhà hàng ThinkSoft - Khu VIP:
📋 Menu Cao cấp
📋 Menu Đặc biệt
📋 Menu Set Combo
Quản lý sản phẩm trong menu
PHƯƠNG PHÁP 1: Gán sản phẩm từ danh sách menu
Bước 1: Mở giao diện gán sản phẩm
- Vào Nhà hàng > Menu nhà hàng
- Tìm menu cần gán sản phẩm
- Click nút "Quản lý sản phẩm" (icon danh sách màu xanh)
Bước 2: Chọn sản phẩm
Giao diện gán sản phẩm:
┌─── Gán sản phẩm vào menu ───────────────────────────┐
│ │
│ Menu: Menu Đồ uống sáng │
│ Nhà hàng: Nhà hàng ThinkSoft │
│ │
├── DANH SÁCH SẢN PHẨM ──────┬── SẢN PHẨM TRONG MENU ─┤
│ │ │
│ [ ] Cà phê đen đá │ Trà sữa trân châu │
│ 25,000đ │ 35,000đ │
│ │ │
│ [ ] Cà phê sữa │ Trà đào cam sả │
│ 28,000đ │ 40,000đ │
│ │ │
│ [x] Bạc xỉu │ │
│ 30,000đ │ │
│ │ │
│ [x] Trà chanh │ │
│ 20,000đ │ │
│ │ │
│ [Thêm vào >>] [<< Xóa] │ │
│ │
└─────────────────────────────────────────────────────┘
Bước 3: Thiết lập giá
Chỉnh sửa giá sản phẩm:
┌─── Sản phẩm trong menu ─────────────────┐
│ │
│ Cà phê đen đá │
│ Giá gốc: 25,000đ │
│ Giá menu: [28,000] đ [Sửa] │
│ │
│ Bạc xỉu │
│ Giá gốc: 30,000đ │
│ Giá menu: [32,000] đ [Sửa] │
│ │
│ Trà chanh │
│ Giá gốc: 20,000đ │
│ Giá menu: [20,000] đ [Sửa] │
│ │
└─────────────────────────────────────────┘
Tính năng:
- ✅ Giá menu có thể khác giá gốc
- ✅ Sửa giá trực tiếp trên danh sách
- ✅ Lưu tất cả cùng lúc
Bước 4: Lưu thay đổi
Click nút "LƯU TẤT CẢ" để lưu:
- Danh sách sản phẩm đã chọn
- Giá của từng sản phẩm trong menu
PHƯƠNG PHÁP 2: Gán sản phẩm khi tạo/sửa sản phẩm
Khi tạo sản phẩm mới
- Vào Sản phẩm > Danh sách sản phẩm
- Click "THÊM MỚI"
- Điền thông tin sản phẩm
- Tick vào "Bán trực tiếp"
Form bán trực tiếp:
┌─── Bán trực tiếp ──────────────────────┐
│ ☑ Bán trực tiếp │
│ │
│ Nhà hàng*: [Dropdown] Nhà hàng A │
│ Thực đơn*: [Dropdown] Menu đồ uống │
│ Giá tiền*: 28,000 đ │
│ │
│ * Giá có thể khác giá bán mặc định │
└────────────────────────────────────────┘
- Click "THÊM MỚI"
Kết quả:
- ✅ Sản phẩm được tạo thành công
- ✅ Sản phẩm tự động thêm vào menu đã chọn
- ✅ Với giá đã thiết lập
Lưu ý:
- ⚠️ Khi lưu sản phẩm mới, TẤT CẢ sản phẩm cũ sẽ bị XÓA
- ✅ Phải gửi TOÀN BỘ danh sách sản phẩm (cũ + mới)
- ✅ Giá phải là chuỗi số hoặc số nguyên
Tính năng Copy Menu
Khi nào sử dụng Copy Menu?
✅ Nên dùng khi:
- Tạo menu tương tự cho khu vực khác
- Tạo menu cho nhà hàng mới với sản phẩm giống nhau
- Tạo menu phiên bản mới (ví dụ: mùa hè, mùa đông)
- Backup menu hiện tại
❌ Không nên dùng khi:
- Menu hoàn toàn khác nhau
- Ít sản phẩm (tạo mới nhanh hơn)
Cách sử dụng Copy Menu
Bước 1: Chọn menu nguồn
- Vào Nhà hàng > Menu nhà hàng
- Tìm menu cần copy
- Click nút "Copy menu" (icon copy màu tím)
Bước 2: Điền thông tin menu mới
Form Copy Menu:
┌─── Copy menu ───────────────────────────────┐
│ │
│ Copy từ menu: Menu Đồ uống sáng │
│ Nhà hàng nguồn: Nhà hàng ThinkSoft │
│ │
│ ─────────────────────────────────────────── │
│ │
│ THÔNG TIN MENU MỚI │
│ │
│ Nhà hàng*: [Dropdown] Nhà hàng B │
│ Khu vực*: [Dropdown] Tầng 1 │
│ Tên menu*: Menu Đồ uống sáng │
│ Mô tả: Copy từ menu gốc │
│ │
│ ☑ Copy cả sản phẩm │
│ │
│ [Hủy] [Copy Menu] │
│ │
└─────────────────────────────────────────────┘
Giải thích:
| Trường | Mô tả | Lưu ý |
|---|---|---|
| Copy từ menu | Menu nguồn (tự động) | Không thể thay đổi |
| Nhà hàng | Chọn nhà hàng đích | Có thể khác nhà hàng nguồn |
| Khu vực | Chọn khu vực đích | Phải thuộc nhà hàng đã chọn |
| Tên menu | Tên cho menu mới | Nên đặt khác menu nguồn |
| Mô tả | Mô tả menu mới | Tùy chọn |
| Copy cả sản phẩm | Checkbox | Nếu tick: copy cả sản phẩm + giá |
Bước 3: Xác nhận và hoàn tất
Click "Copy Menu"
Kết quả:
Nếu tick "Copy cả sản phẩm":
✅ Menu mới được tạo
✅ Sản phẩm được copy
✅ Giá sản phẩm được giữ nguyên
Nếu KHÔNG tick "Copy cả sản phẩm":
✅ Menu mới được tạo
⚪ Không có sản phẩm (menu rỗng)
Ví dụ Copy Menu
Trường hợp 1: Copy menu sang khu vực khác (cùng nhà hàng)
Menu nguồn:
Nhà hàng: Nhà hàng ThinkSoft
Khu vực: Tầng 1
Menu: Menu Đồ uống sáng
Sản phẩm: 15 sản phẩm
Copy sang:
Nhà hàng: Nhà hàng ThinkSoft (giống)
Khu vực: Tầng 2 (khác)
Menu: Menu Đồ uống sáng - Tầng 2
☑ Copy cả sản phẩm
Kết quả:
- Menu mới tại Tầng 2
- 15 sản phẩm với giá giống hệt menu gốc
Trường hợp 2: Copy menu sang nhà hàng khác
Menu nguồn:
Nhà hàng: Nhà hàng A
Khu vực: Tầng 1
Menu: Menu Đồ ăn chính
Sản phẩm: 25 sản phẩm
Copy sang:
Nhà hàng: Nhà hàng B (khác)
Khu vực: Tầng 1
Menu: Menu Đồ ăn chính
☑ Copy cả sản phẩm
Kết quả:
- Menu mới tại Nhà hàng B
- 25 sản phẩm với giá giống menu gốc
Lưu ý:
💡 Sau khi copy, có thể điều chỉnh giá sản phẩm theo từng nhà hàng
Trường hợp 3: Copy menu để tạo phiên bản mới
Menu nguồn:
Nhà hàng: Nhà hàng ThinkSoft
Khu vực: Tầng 1
Menu: Menu Mùa hè 2024
Sản phẩm: 20 sản phẩm
Copy sang:
Nhà hàng: Nhà hàng ThinkSoft (giống)
Khu vực: Tầng 1 (giống)
Menu: Menu Mùa đông 2024
☐ KHÔNG copy sản phẩm
Kết quả:
- Menu mới "Menu Mùa đông 2024"
- Không có sản phẩm (để thêm sản phẩm mới cho mùa đông)
Ví dụ thực tế
VÍ DỤ 1: Thiết lập hệ thống menu cho nhà hàng mới
Bước 1: Tạo nhà hàng
Mã: CAFE1
Tên: Cafe ThinkSoft
Loại: 1
Bước 2: Tạo khu vực
Khu vực 1:
- Nhà hàng: Cafe ThinkSoft
- Tên: Tầng 1 - Trong nhà
Khu vực 2:
- Nhà hàng: Cafe ThinkSoft
- Tên: Tầng 2 - VIP
Khu vực 3:
- Nhà hàng: Cafe ThinkSoft
- Tên: Sân vườn
Bước 3: Tạo menu cho từng khu vực
Tầng 1 - Trong nhà:
Menu 1:
- Tên: Menu Đồ uống cơ bản
- Mô tả: Các loại đồ uống phổ biến
- Sản phẩm: Cà phê, Trà, Sinh tố
Menu 2:
- Tên: Menu Món ăn nhẹ
- Mô tả: Bánh ngọt, Sandwich
- Sản phẩm: Bánh mì, Bánh ngọt, Salad
Tầng 2 - VIP:
Menu 1:
- Tên: Menu Cao cấp
- Mô tả: Đồ uống và món ăn đặc biệt
- Sản phẩm: Các món cao cấp với giá cao hơn
Sân vườn:
Menu 1:
- Tên: Menu Ngoài trời
- Mô tả: BBQ và đồ uống giải khát
- Sản phẩm: Đồ nướng, Bia, Nước giải khát
Bước 4: Gán sản phẩm và thiết lập giá
Menu Đồ uống cơ bản (Tầng 1):
┌─────────────────────────┬──────────┬──────────┐
│ Sản phẩm │ Giá gốc │ Giá menu │
├─────────────────────────┼──────────┼──────────┤
│ Cà phê đen đá │ 25,000 │ 25,000 │
│ Cà phê sữa │ 28,000 │ 28,000 │
│ Bạc xỉu │ 30,000 │ 30,000 │
│ Trà đào cam sả │ 35,000 │ 35,000 │
│ Trà sữa trân châu │ 30,000 │ 30,000 │
└─────────────────────────┴──────────┴──────────┘
Menu Cao cấp (Tầng 2 - VIP):
┌─────────────────────────┬──────────┬──────────┐
│ Sản phẩm │ Giá gốc │ Giá menu │
├─────────────────────────┼──────────┼──────────┤
│ Cà phê đen đá │ 25,000 │ 35,000 │ ⬆️ +40%
│ Cà phê sữa │ 28,000 │ 38,000 │ ⬆️ +36%
│ Bạc xỉu │ 30,000 │ 40,000 │ ⬆️ +33%
│ Trà đào cam sả │ 35,000 │ 45,000 │ ⬆️ +29%
│ Trà sữa trân châu │ 30,000 │ 40,000 │ ⬆️ +33%
└─────────────────────────┴──────────┴──────────┘
💡 Giá menu VIP cao hơn 30-40% so với Tầng 1
VÍ DỤ 2: Sử dụng Copy Menu cho chi nhánh mới
Tình huống:
- Nhà hàng A đã có menu đầy đủ
- Mở chi nhánh mới: Nhà hàng B
- Muốn dùng menu tương tự nhưng điều chỉnh giá
Giải pháp:
Bước 1: Tạo Nhà hàng B và khu vực
Nhà hàng: Nhà hàng B - Chi nhánh 2
Khu vực:
- Tầng 1
- Tầng 2
Bước 2: Copy menu từ Nhà hàng A
Menu nguồn (Nhà hàng A - Tầng 1):
- Menu Đồ uống sáng (15 sản phẩm)
Copy sang (Nhà hàng B - Tầng 1):
- Tên: Menu Đồ uống sáng
- ☑ Copy cả sản phẩm
Bước 3: Điều chỉnh giá cho Nhà hàng B
Vào "Quản lý sản phẩm" của menu mới
Sản phẩm: Cà phê đen đá
Giá cũ (từ Nhà hàng A): 28,000đ
Giá mới (Nhà hàng B): 25,000đ ⬇️ Giảm 10%
Sản phẩm: Trà sữa trân châu
Giá cũ: 35,000đ
Giá mới: 32,000đ ⬇️ Giảm 9%
→ Lưu tất cả
VÍ DỤ 3: Tạo menu theo giờ phục vụ
Thiết lập menu cho các khung giờ khác nhau:
Nhà hàng: ThinkSoft Restaurant Khu vực: Tầng 1
📋 Menu Sáng (6h-10h)
├── Cà phê phin (25,000đ)
├── Bánh mì (15,000đ)
├── Phở bò (45,000đ)
└── Bún bò (40,000đ)
📋 Menu Trưa (11h-14h)
├── Cơm văn phòng (45,000đ)
├── Phở (50,000đ)
├── Bún (45,000đ)
└── Nước ngọt (15,000đ)
📋 Menu Chiều (15h-18h)
├── Trà sữa (30,000đ)
├── Sinh tố (35,000đ)
├── Bánh ngọt (25,000đ)
└── Snack (20,000đ)
📋 Menu Tối (18h-22h)
├── Set lẩu (199,000đ)
├── Set nướng (249,000đ)
├── Bia (25,000đ)
└── Rượu vang (450,000đ)
Cách triển khai:
- Tạo 4 menu riêng biệt cho cùng 1 khu vực
- Mỗi menu có sản phẩm phù hợp với khung giờ
- Giá có thể khác nhau theo khung giờ
Ví dụ sản phẩm xuất hiện nhiều menu:
Cà phê đen:
- Menu Sáng: 20,000đ (giờ vàng)
- Menu Trưa: 25,000đ (giá thường)
- Menu Chiều: 25,000đ (giá thường)
- Menu Tối: 28,000đ (giá cao điểm)
Lưu ý quan trọng
⚠️ Quy tắc bắt buộc
1. Về Nhà hàng:
✅ Mã nhà hàng:
- Tối đa 5 ký tự
- CHỮ HOA, KHÔNG DẤU
- Unique (không trùng)
- Không khoảng trắng
❌ Tránh:
- nha01 (chữ thường)
- NHA 01 (có khoảng trắng)
- Nhà-hàng-01 (có dấu, quá dài)
2. Về Khu vực:
⚠️ Khu vực phải thuộc về một nhà hàng
⚠️ Không thể chuyển khu vực sang nhà hàng khác
⚠️ Xóa nhà hàng → Xóa tất cả khu vực
3. Về Menu:
⚠️ Menu phải chọn đúng khu vực của nhà hàng
⚠️ Tên menu tối đa 255 ký tự
⚠️ Một khu vực có thể có nhiều menu
⚠️ Xóa menu → Xóa tất cả sản phẩm trong menu
4. Về Sản phẩm trong menu:
✅ Giá menu có thể khác giá gốc
✅ Một sản phẩm có thể nằm trong nhiều menu
✅ Giá có thể khác nhau ở mỗi menu
⚠️ Khi lưu sản phẩm mới → Xóa hết sản phẩm cũ
⚠️ Phải gửi TOÀN BỘ danh sách sản phẩm
💡 Mẹo hay
1. Đặt tên menu rõ ràng:
✅ Tốt:
- Menu Đồ uống sáng
- Menu Buffet trưa - Cuối tuần
- Menu Cao cấp - Tầng VIP
- Menu BBQ - Sân vườn
❌ Tránh:
- Menu 1
- Menu A
- Thực đơn
2. Tổ chức menu hợp lý:
📍 Theo thời gian:
- Menu Sáng (6h-10h)
- Menu Trưa (11h-14h)
- Menu Chiều (15h-18h)
- Menu Tối (18h-22h)
📍 Theo loại món:
- Menu Đồ uống
- Menu Món chính
- Menu Tráng miệng
- Menu Đặc biệt
📍 Theo sự kiện:
- Menu Buffet
- Menu Tiệc
- Menu Happy Hour
- Menu Combo
3. Chiến lược giá:
💰 Giá theo khu vực:
Tầng 1 (thường): Giá chuẩn (100%)
Tầng 2 (VIP): Giá +30%
Sân vườn: Giá +20%
💰 Giá theo thời gian:
Sáng (6h-10h): Giá -10% (giờ vàng)
Trưa (11h-14h): Giá chuẩn
Chiều (15h-18h): Giá -15% (happy hour)
Tối (18h-22h): Giá +10%
💰 Giá theo menu:
Menu thường: Giá chuẩn
Menu Buffet: Giá trọn gói
Menu Combo: Giá giảm 15-20%
4. Sử dụng Copy Menu hiệu quả:
✅ Nên copy khi:
- Mở chi nhánh mới (copy toàn bộ)
- Tạo menu cho khu vực mới (copy + điều chỉnh)
- Tạo menu mùa vụ (copy + thêm/bớt món)
⚪ Không copy sản phẩm khi:
- Menu hoàn toàn khác
- Chỉ muốn cấu trúc menu rỗng
5. Quản lý hiệu quả:
📊 Sử dụng bộ lọc:
- Lọc theo nhà hàng
- Lọc theo khu vực
- Lọc theo trạng thái
- Tìm kiếm theo tên
📈 Theo dõi số liệu:
- Số sản phẩm trong mỗi menu
- Menu nào có nhiều sản phẩm nhất
- Menu nào chưa có sản phẩm
🔍 Checklist trước khi lưu
Khi tạo Nhà hàng:
✓ Mã nhà hàng: 5 ký tự, CHỮ HOA, không trùng
✓ Tên nhà hàng: Rõ ràng, dễ nhớ
✓ Logo URL: Hợp lệ (nếu có)
Khi tạo Khu vực:
✓ Đã chọn nhà hàng
✓ Tên khu vực: Rõ ràng, dễ phân biệt
Khi tạo Menu:
✓ Đã chọn nhà hàng
✓ Khu vực thuộc về nhà hàng đó
✓ Tên menu: Rõ ràng (tối đa 255 ký tự)
✓ Mô tả: Đầy đủ (nếu có)
Khi gán sản phẩm:
✓ Đã chọn đủ sản phẩm cần thiết
✓ Giá của từng sản phẩm hợp lý
✓ Kiểm tra lại danh sách trước khi lưu
✓ Nhớ: Lưu mới sẽ XÓA hết sản phẩm cũ
Khi Copy Menu:
✓ Menu nguồn đúng
✓ Nhà hàng đích đúng
✓ Khu vực đích thuộc nhà hàng đích
✓ Tên menu mới khác tên menu cũ
✓ Đã chọn "Copy sản phẩm" (nếu cần)
📊 Action Log
Hệ thống tự động ghi log mọi thao tác:
Các hành động được ghi log:
✅ CREATE restaurant → Tạo nhà hàng
✅ UPDATE restaurant → Sửa nhà hàng
✅ DELETE restaurant → Vô hiệu hóa nhà hàng
✅ CREATE restaurant_area → Tạo khu vực
✅ UPDATE restaurant_area → Sửa khu vực
✅ DELETE restaurant_area → Vô hiệu hóa khu vực
✅ CREATE restaurant_menu → Tạo menu
✅ UPDATE restaurant_menu → Sửa menu
✅ DELETE restaurant_menu → Vô hiệu hóa menu
✅ COPY restaurant_menu → Copy menu
✅ SAVE products to menu → Gán sản phẩm
Thông tin log bao gồm:
- Hành động thực hiện
- Bảng dữ liệu
- Dữ liệu trước/sau thay đổi
- Người thực hiện (username)
- Thời gian thực hiện
- ID bản ghi
Troubleshooting
Lỗi thường gặp
1. "Khu vực không thuộc nhà hàng được chọn"
Nguyên nhân: Chọn khu vực không thuộc về nhà hàng đã chọn
Giải pháp:
1. Kiểm tra lại nhà hàng đã chọn
2. Chỉ chọn khu vực thuộc nhà hàng đó
3. Hoặc tạo khu vực mới cho nhà hàng
Ví dụ:
❌ Sai:
Nhà hàng: Nhà hàng A
Khu vực: Tầng 1 (của Nhà hàng B) → LỖI
✅ Đúng:
Nhà hàng: Nhà hàng A
Khu vực: Tầng 1 (của Nhà hàng A) → OK
2. "Mã nhà hàng đã tồn tại"
Nguyên nhân: Mã nhà hàng trùng với nhà hàng khác
Giải pháp:
Thay đổi mã nhà hàng
Ví dụ:
NHA01 → NHA02
CAFE1 → CAFE2
REST1 → REST2
3. "Tên menu quá dài"
Nguyên nhân: Tên menu vượt quá 255 ký tự
Giải pháp:
Rút ngắn tên menu
❌ Quá dài:
"Menu Đồ uống và Món ăn nhẹ phục vụ buổi sáng từ 6 giờ đến 10 giờ sáng dành cho khách hàng tại khu vực Tầng 1 của Nhà hàng ThinkSoft"
✅ Ngắn gọn:
"Menu Sáng - Tầng 1"
hoặc
"Menu Đồ uống sáng (6h-10h)"
4. "Không thể xóa menu"
Nguyên nhân: Menu đang có sản phẩm hoặc có ràng buộc khác
Giải pháp:
1. Xóa sản phẩm trong menu trước
hoặc
2. Vô hiệu hóa (INACTIVE) thay vì xóa
Lưu ý: Hệ thống chỉ VÔ HIỆU HÓA, không XÓA VĨNH VIỄN
5. "Sản phẩm biến mất sau khi lưu"
Nguyên nhân: Khi lưu sản phẩm mới, hệ thống XÓA HẾT sản phẩm cũ
Giải pháp:
⚠️ Quan trọng:
Khi lưu sản phẩm, phải gửi TOÀN BỘ danh sách
Ví dụ:
Menu có: A, B, C (3 sản phẩm)
Muốn thêm D
❌ Sai:
Chỉ gửi: D
→ Kết quả: Chỉ còn D (mất A, B, C)
✅ Đúng:
Gửi: A, B, C, D
→ Kết quả: A, B, C, D (đầy đủ)
6. "Dropdown khu vực trống"
Nguyên nhân: Chưa chọn nhà hàng hoặc nhà hàng chưa có khu vực
Giải pháp:
1. Chọn nhà hàng trước
2. Nếu dropdown vẫn trống:
→ Tạo khu vực cho nhà hàng đó
7. "Giá sản phẩm không hợp lệ"
Nguyên nhân: Giá không phải số hoặc âm
Giải pháp:
✅ Hợp lệ:
25000
28000
35000
❌ Không hợp lệ:
-25000 → Số âm
25,000 → Có dấu phẩy
ABC → Không phải số
🔧 Xử lý tình huống đặc biệt
Tình huống 1: Muốn đổi menu sang nhà hàng khác
Vấn đề: Không thể chuyển menu sang nhà hàng khác trực tiếp
Giải pháp:
1. Copy menu sang nhà hàng mới
2. Vô hiệu hóa menu cũ
Tình huống 2: Muốn hợp nhất 2 menu
Vấn đề: Có 2 menu tương tự, muốn gộp thành 1
Giải pháp:
1. Chọn menu chính (giữ lại)
2. Gán thêm sản phẩm từ menu phụ vào menu chính
3. Vô hiệu hóa menu phụ
Tình huống 3: Cập nhật giá hàng loạt
Vấn đề: Muốn tăng/giảm giá tất cả sản phẩm trong menu
Giải pháp:
1. Vào "Quản lý sản phẩm"
2. Sửa giá từng sản phẩm
3. Lưu tất cả
Lưu ý: Hiện tại chưa hỗ trợ tăng/giảm giá hàng loạt