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:

TênGhi chú
CAICáiĐơn vị đếm
CHAIChaiĐồ uống đóng chai
LYLyĐồ uống phục vụ
TOMó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óaTên hiển thị sản phẩmCà phê đen đá
Mã hàng hóaMã định danh (unique)CAFE-DEN-DA
Đơn vị tínhĐơn vị bánLy, Cái, Phần
Giá bánGiá mặc định (VNĐ)25000
Danh mụcChọn danh mục CONCà phê (không phải Đồ uống)
Loại hàngPRODUCT/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-DENCAFE-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.5025500 hoặc 25501


Tài liệu liên quan