Chuyển tới nội dung chính

Hướng dẫn cấu hình danh sách Sản phẩm / Dịch vụ


Tổng quan​

Hệ thống quản lý sản phẩm/dịch vụ cho phép cấu hình đầy đủ thông tin về các mặt hàng kinh doanh, bao gồm:

  • Sản phẩm (PRODUCT): Hàng hóa bán ra
  • Hàng hóa (GOODS): Hàng hóa kinh doanh
  • Nguyên vật liệu (MATERIALS): Nguyên liệu đầu vào
  • Dịch vụ (SERVICE): Các dịch vụ cung cấp

Tính năng chính:​

✅ Quản lý đa loại sản phẩm

✅ Phân loại theo danh mục cha-con

✅ Hỗ trợ ảnh sản phẩm

✅ Cấu hình thuế và phí dịch vụ

✅ Tùy chọn sản phẩm (options)

✅ Bán trực tiếp qua menu nhà hàng


Các bước cấu hình​

BƯỚC 1: Tạo Đơn vị tính​

1.1. Truy cập menu​

  • Đăng nhập hệ thống Admin
  • Vào menu: Cấu hình > Đơn vị tính

1.2. Thêm đơn vị mới​

Mã đơn vị: CAI
Tên đơn vị: Cái

Ví dụ một số đơn vị thông dụng:

MãTênGhi chú
CAICáiĐơn vị đếm
CHAIChaiĐồ uống đóng chai
LYLyĐồ uống phục vụ
TOTôMón ăn
PHANPhầnSuất ăn
KGKilogramKhối lượng
GRAMGramKhối lượng nhỏ
LITLítThể tích

1.3. Lưu ý​

  • Mã đơn vị: CHỮ HOA, KHÔNG DẤU, KHÔNG KHOẢNG TRẮNG
  • Format: [A-Z0-9-_]+
  • Mã phải duy nhất trong hệ thống

BƯỚC 2: Tạo Danh mục sản phẩm​

2.1. Tạo danh mục CHA​

Ví dụ:

Mã danh mục: DO-UONG
Tên danh mục: Đồ uống
Là danh mục cha: ✅ Tick

2.2. Tạo danh mục CON​

Ví dụ 1:

Mã danh mục: CAFE
Tên danh mục: Cà phê
Danh mục cha: Đồ uống
Là danh mục cha: ❌ Không tick

Ví dụ 2:

Mã danh mục: TRA-SUA
Tên danh mục: Trà sữa
Danh mục cha: Đồ uống
Là danh mục cha: ❌ Không tick

2.3. Cấu trúc phân cấp mẫu​

📁 Đồ uống (DO-UONG) - DANH MỤC CHA
├── ☕ Cà phê (CAFE)
├── 🧋 Trà sữa (TRA-SUA)
├── 🍹 Nước ép (NUOC-EP)
└── 🥤 Sinh tố (SINH-TO)

📁 Món ăn (MON-AN) - DANH MỤC CHA
├── 🍜 Phở (PHO)
├── 🍲 Bún (BUN)
├── 🍝 Mì (MI)
└── 🍛 Cơm (COM)

📁 Món phụ (MON-PHU) - DANH MỤC CHA
├── 🥟 Nem rán (NEM-RAN)
├── 🌯 Gỏi cuốn (GOI-CUON)
└── 🥗 Salad (SALAD)

BƯỚC 3: Cấu hình Product Options (Tùy chọn)​

3.1. Tùy chọn Độ cay (Spice)​

-- Mã: KHONG-CAY
-- Tên: Không cay
-- Loại: spice
-- Mô tả: Không thêm gia vị cay
-- Thứ tự: 1

-- Mã: CAY-VUA
-- Tên: Cay vừa
-- Loại: spice
-- Mô tả: Mức độ cay vừa phải
-- Thứ tự: 2

-- Tương tự cho: Cay nhiều, Siêu cay

3.2. Tùy chọn Đường (Sugar)​

KHONG-DUONG     → Không đường (0%)
IT-DUONG → Ít đường (30%)
DUONG-BINH-THUONG → Đường bình thường (100%)
THEM-DUONG → Thêm đường (150%)

3.3. Tùy chọn Đá (Ice)​

KHONG-DA        → Không đá
IT-DA → Ít đá
DA-BINH-THUONG → Đá bình thường
NHIEU-DA → Nhiều đá

3.4. Tùy chọn Size​

SIZE-S  → Size S (Nhỏ)
SIZE-M → Size M (Vừa)
SIZE-L → Size L (Lớn)
SIZE-XL → Size XL (Rất lớn)

3.5. Tùy chọn Topping (có phụ thu)​

THEM-TRUNG    → Thêm trứng (+10,000đ)
THEM-THIT → Thêm thịt (+15,000đ)
THEM-RAU → Thêm rau (+5,000đ)
THEM-PHO-MAI → Thêm phô mai (+12,000đ)

BƯỚC 4: Tạo Sản phẩm/Dịch vụ​

4.1. Truy cập tạo sản phẩm​

  • Menu: Sản phẩm > Danh sách sản phẩm
  • Click nút "THÊM MỚI"

4.2. Điền thông tin cơ bản​

Form nhập liệu:

┌─── Ảnh sản phẩm ───────────────────────────┐
│ [Upload ảnh] │
│ Hỗ trợ: JPEG, PNG, JPG, GIF, WebP, SVG │
│ (tối đa 5MB) │
└────────────────────────────────────────────┘

┌─── Thông tin chính ────────────────────────┐
│ Tên hàng hóa*: Cà phê đen đá │
│ Mã hàng hóa*: CAFE-DEN-DA │
│ Đơn vị tính*: [Dropdown] Ly │
└────────────────────────────────────────────┘

┌─── Chi tiết ───────────────────────────────┐
│ Giá bán*: 25,000 đ │
│ Danh mục*: [Dropdown] Cà phê │
│ Loại hàng*: [Dropdown] Sản phẩm │
│ │
│ Phí dịch vụ (%): 10 │
│ Thuế (%): 5 │
│ Ghi chú: Cà phê rang xay truyền │
│ thống, hương vị đậm đà │
└────────────────────────────────────────────┘

┌─── Bán trực tiếp (Tùy chọn) ──────────────┐
│ ☑ Bán trực tiếp │
│ Nhà hàng: [Dropdown] Nhà hàng A │
│ Thực đơn: [Dropdown] Menu chính │
│ Giá tiền: 25,000 đ │
└────────────────────────────────────────────┘

4.3. Giải thích các trường​

TrườngBắt buộcMô tảVí dụ
Tên hàng hóa✅Tên hiển thị sản phẩmCà phê đen đá
Mã hàng hóa✅Mã định danh (unique)CAFE-DEN-DA
Đơn vị tính✅Đơn vị bánLy, Cái, Phần
Giá bán✅Giá mặc định (VNĐ)25000
Danh mục✅Chọn danh mục CONCà phê (không phải Đồ uống)
Loại hàng✅PRODUCT/GOODS/MATERIALS/SERVICESản phẩm
Phí dịch vụ❌% phí dịch vụ10%
Thuế❌% thuế VAT5%
Ghi chú❌Mô tả chi tiếtNguyên liệu nhập khẩu
Ảnh❌Ảnh sản phẩmUpload qua Cloudflare

4.4. Quy tắc mã sản phẩm​

✅ Đúng:
CAFE-DEN-DA
TRA-SUA-TRAN-CHAU
BANH-MI-THIT
PHO-BO-TAI

❌ Sai:
Cà phê đen đá → Có dấu, khoảng trắng
cafe-den-da → Chữ thường
Café-Đen-Đá → Có dấu
CAFE DEN DA → Có khoảng trắng

Format chuẩn: [A-Z0-9-_]+


BƯỚC 5: Cấu hình tùy chọn cho sản phẩm​

5.1. Gán tùy chọn vào sản phẩm​

Ví dụ: Cà phê đen đá

{
"product": "Cà phê đen đá",
"options": [
{
"type": "size",
"options": [
{
"name": "Size M",
"is_default": true,
"is_required": true,
"extra_price": 0
},
{
"name": "Size L",
"is_default": false,
"is_required": false,
"extra_price": 5000
}
]
},
{
"type": "ice",
"options": [
{
"name": "Đá bình thường",
"is_default": true,
"is_required": true,
"extra_price": 0
},
{
"name": "Ít đá",
"is_default": false,
"is_required": false,
"extra_price": 0
}
]
},
{
"type": "sugar",
"options": [
{
"name": "Đường bình thường",
"is_default": true,
"is_required": false,
"extra_price": 0
},
{
"name": "Ít đường",
"is_default": false,
"is_required": false,
"extra_price": 0
}
]
}
]
}

5.2. Giải thích cấu hình​

  • is_default: Tùy chọn mặc định khi khách không chọn
  • is_required: Bắt buộc khách hàng phải chọn
  • extra_price: Giá phụ thu khi chọn (VNĐ)

BƯỚC 6: Upload ảnh sản phẩm​

6.1. Quy trình upload​

  1. Click vào khung "Tải ảnh" trong form
  2. Chọn file ảnh từ máy tính
  3. Hệ thống tự động upload lên
  4. Ảnh được lưu với 2 phiên bản:
    • URL gốc: Ảnh full size
    • Thumbnail URL: Ảnh thu nhỏ (hiển thị nhanh)

6.2. Yêu cầu ảnh​

  • Định dạng: JPEG, PNG, JPG, GIF, WebP, SVG
  • Kích thước: Tối đa 5MB
  • Khuyến nghị: 800x800px, tỷ lệ 1:1

BƯỚC 7: Bán trực tiếp qua Menu nhà hàng​

7.1. Kích hoạt bán trực tiếp​

Tick vào checkbox "Bán trực tiếp" để hiện form:

┌─── 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á tiền có thể khác giá bán mặc định │
└────────────────────────────────────────────┘

7.2. Quy trình​

  1. Chọn Nhà hàng → Hệ thống load danh sách menu
  2. Chọn Thực đơn cụ thể
  3. Nhập Giá tiền (có thể khác giá mặc định)
  4. Lưu → Sản phẩm tự động thêm vào menu

7.3. Lưu ý​

  • Giá trong menu có thể khác giá mặc định
  • Một sản phẩm có thể có nhiều giá ở các menu khác nhau
  • Khi cập nhật, giá menu không tự động thay đổi

Ví dụ thực tế​

VÍ DỤ 1: Cà phê đen đá​

Bước 1: Tạo đơn vị​

Mã: LY
Tên: Ly

Bước 2: Tạo danh mục​

Danh mục cha:
- Mã: DO-UONG
- Tên: Đồ uống
- Là danh mục cha: ✅

Danh mục con:
- Mã: CAFE
- Tên: Cà phê
- Danh mục cha: Đồ uống
- Là danh mục cha: ❌

Bước 3: Tạo sản phẩm​

Tên: Cà phê đen đá
Mã: CAFE-DEN-DA
Đơn vị: Ly
Giá bán: 25,000đ
Danh mục: Cà phê
Loại hàng: Sản phẩm
Phí dịch vụ: 10%
Thuế: 5%
Ghi chú: Cà phê rang xay truyền thống

Bước 4: Cấu hình tùy chọn​

Size:
- Size M (mặc định, bắt buộc, +0đ)
- Size L (+5,000đ)

Đá:
- Đá bình thường (mặc định)
- Ít đá
- Nhiều đá

Đường:
- Đường bình thường (mặc định)
- Ít đường
- Không đường

Bước 5: Upload ảnh​

File: cafe-den-da.jpg (800x800px, 2MB)

Bước 6: Bán trực tiếp (nếu cần)​

☑ Bán trực tiếp
Nhà hàng: Nhà hàng A
Thực đơn: Menu đồ uống
Giá tiền: 28,000đ

VÍ DỤ 2: Phở bò tái​

Bước 1: Tạo đơn vị​

Mã: TO
Tên: Tô

Bước 2: Tạo danh mục​

Danh mục cha:
- Mã: MON-AN
- Tên: Món ăn
- Là danh mục cha: ✅

Danh mục con:
- Mã: PHO
- Tên: Phở
- Danh mục cha: Món ăn
- Là danh mục cha: ❌

Bước 3: Tạo sản phẩm​

Tên: Phở bò tái
Mã: PHO-BO-TAI
Đơn vị: Tô
Giá bán: 45,000đ
Danh mục: Phở
Loại hàng: Sản phẩm
Phí dịch vụ: 0%
Thuế: 5%
Ghi chú: Phở bò tái chín, nước dùng đậm đà

Bước 4: Cấu hình tùy chọn​

Size:
- Tô nhỏ (mặc định, +0đ)
- Tô lớn (+10,000đ)

Độ cay:
- Không cay (mặc định)
- Cay vừa
- Cay nhiều

Topping:
- Thêm thịt (+15,000đ)
- Thêm trứng (+10,000đ)
- Thêm rau (+5,000đ)

VÍ DỤ 3: Trà sữa trân châu​

Thiết lập đầy đủ:​

1. ĐƠN VỊ TÍNH:
Mã: LY | Tên: Ly

2. DANH MỤC:
Cha: DO-UONG (Đồ uống) ✅
Con: TRA-SUA (Trà sữa) ❌

3. SẢN PHẨM:
Tên: Trà sữa trân châu
Mã: TRA-SUA-TRAN-CHAU
Đơn vị: Ly
Giá: 30,000đ
Danh mục: Trà sữa
Loại: Sản phẩm
Phí DV: 10%
Thuế: 5%

4. TÙY CHỌN:
├── Size: M (0đ), L (+5,000đ)
├── Đường: Bình thường, Ít đường, Không đường
├── Đá: Bình thường, Ít đá, Không đá
└── Topping: Trân châu (+5,000đ), Thạch (+5,000đ)

5. ẢNH:
File: tra-sua-tran-chau.jpg (800x800px)

6. BÁN TRỰC TIẾP:
☑ Tick
Nhà hàng: Quán A
Menu: Đồ uống
Giá: 35,000đ

Lưu ý quan trọng​

⚠️ Quy tắc bắt buộc​

  1. Mã sản phẩm:

    • Phải UNIQUE (duy nhất)
    • Format: [A-Z0-9-_]+
    • Không dấu, không khoảng trắng
    • Viết HOA toàn bộ
  2. Danh mục:

    • Chỉ chọn danh mục CON (không phải danh mục cha)
    • Phải tạo danh mục trước khi tạo sản phẩm
  3. Đơn vị tính:

    • Phải tồn tại trước khi tạo sản phẩm
    • Mã đơn vị: CHỮ HOA, KHÔNG DẤU
  4. Giá:

    • Phải là số nguyên dương
    • Không vượt quá 12 chữ số
  5. Thuế & Phí dịch vụ:

    • Giá trị từ 0-100 (%)
    • Có thể để trống (mặc định = 0)

💡 Mẹo hay​

  1. Đặt tên mã:

    ✅ Tốt: CAFE-DEN-DA, PHO-BO-TAI, TRA-SUA-TRAN-CHAU
    ❌ Tránh: SP001, PRODUCT-1, ITEM-A
  2. Phân loại rõ ràng:

    • Tạo danh mục cha cho nhóm lớn
    • Tạo danh mục con chi tiết
    • Không tạo quá sâu (tối đa 2 cấp)
  3. Tùy chọn hợp lý:

    • Đồ uống: Size, Đá, Đường
    • Món ăn: Size, Độ cay, Topping
    • Không tạo quá nhiều tùy chọn cho 1 sản phẩm
  4. Upload ảnh:

    • Dùng ảnh chất lượng cao
    • Tỷ lệ 1:1 (vuông)
    • Nền sáng, sản phẩm nổi bật
  5. Giá bán:

    • Giá mặc định: Giá bán lẻ
    • Giá menu: Có thể điều chỉnh theo từng địa điểm
    • Phụ thu option: Tính hợp lý với chi phí

🔍 Kiểm tra trước khi lưu​

✓ Mã sản phẩm: CHỮ HOA, KHÔNG DẤU, KHÔNG KHOẢNG TRẮNG
✓ Danh mục: Đã chọn danh mục CON (không phải cha)
✓ Đơn vị tính: Đã tồn tại trong hệ thống
✓ Giá bán: Là số nguyên dương
✓ Thuế, phí DV: Từ 0-100%
✓ Ảnh: Đúng định dạng, dưới 5MB
✓ Tùy chọn: Đã cấu hình đầy đủ, hợp lý

📊 Action Log​

Hệ thống tự động ghi log mọi thao tác:

  • CREATE: Tạo sản phẩm mới
  • UPDATE: Cập nhật thông tin
  • DELETE: Vô hiệu hóa sản phẩm

Log bao gồm:

  • Hành động thực hiện
  • Dữ liệu trước/sau thay đổi
  • Người thực hiện
  • Thời gian thực hiện

🔄 Luồng xử lý​

1. Validate dữ liệu đầu vào
↓
2. Check trùng mã sản phẩm
↓
3. Check danh mục hợp lệ (phải là danh mục con)
↓
4. Upload ảnh (nếu có)
↓
5. Lưu sản phẩm vào DB
↓
6. Ghi Action Log
↓
7. Nếu có "Bán trực tiếp":
├── Lưu vào menu nhà hàng
└── Ghi log thêm vào menu
↓
8. Trả kết quả

Troubleshooting​

Lỗi thường gặp​

1. "Mã sản phẩm đã tồn tại"​

Nguyên nhân: Mã sản phẩm trùng với sản phẩm khác Giải pháp: Thay đổi mã, thêm số hoặc mô tả chi tiết hơn Ví dụ: CAFE-DEN → CAFE-DEN-DA hoặc CAFE-DEN-NONG

2. "Không thể chọn danh mục cha"​

Nguyên nhân: Đã chọn danh mục có is_parent = true Giải pháp: Chọn danh mục con bên dưới danh mục cha Ví dụ: Chọn "Cà phê" thay vì "Đồ uống"

3. "Mã sản phẩm không hợp lệ"​

Nguyên nhân: Mã có dấu, khoảng trắng hoặc chữ thường Giải pháp:

❌ cafe-den-da       → ✅ CAFE-DEN-DA
❌ Cà phê đen đá → ✅ CAFE-DEN-DA
❌ CAFE DEN DA → ✅ CAFE-DEN-DA
❌ café-đen-đá → ✅ CAFE-DEN-DA

4. "Upload ảnh thất bại"​

Nguyên nhân:

  • File quá lớn (>5MB)
  • Định dạng không hỗ trợ
  • Lỗi kết nối Cloudflare

Giải pháp:

  • Nén ảnh xuống dưới 5MB
  • Chuyển sang định dạng JPEG/PNG
  • Kiểm tra cấu hình Cloudflare

5. "Giá phải là số nguyên"​

Nguyên nhân: Nhập giá có số thập phân Giải pháp: Làm tròn về số nguyên Ví dụ: 25,500.50 → 25500 hoặc 25501


Tài liệu liên quan​