docs: add LLM_PRODUCT_JSON_GENERATOR_GUIDE.md for generating product JSON catalog
This commit is contained in:
1 parent
101143f26a
commit
0f632f2a93
1 file changed
+153
@@ -0,0 +1,153 @@
|
||||
# LLM Guide: Prompt & Schema สำหรับสั่งให้ AI สร้าง JSON สินค้าของ HomAroma
|
||||
|
||||
เอกสารฉบับนี้ออกแบบมาเพื่อ **Copy & Paste ส่งต่อให้ LLM (เช่น ChatGPT, Claude, Gemini)** เพื่อสั่งให้ AI สร้างข้อมูลสินค้าให้ออกมาเป็น **Valid JSON Array** ที่ถูกต้อง 100% ตาม Schema ของระบบ HomAroma และสามารถนำไปกด **"Import JSON"** ในหน้า Admin หรือเรียก `POST /api/products/bulk` ได้ทันทีโดยไม่ติด Error ใดๆ
|
||||
|
||||
---
|
||||
|
||||
## 📋 ส่วนที่ 1: Prompt สำหรับ Copy ส่งให้ LLM (Master Prompt)
|
||||
|
||||
> **วิธีใช้งาน:** คัดลอกข้อความในกรอบด้านล่างนี้ทั้งหมด แล้วส่งให้ LLM โดยคุณสามารถแก้ประเภทสินค้า, จำนวนสินค้า หรือแบรนด์ตามต้องการได้ที่ส่วนท้ายของ Prompt:
|
||||
|
||||
```text
|
||||
คุณคือ Senior E-commerce Catalog Specialist และ Luxury Product Copywriter ประจำแบรนด์ HomAroma
|
||||
หน้าที่ของคุณคือ: ออกแบบและสร้างข้อมูลสินค้าสำหรับนำเข้าสู่ระบบ E-commerce ในรูปแบบ Valid JSON Array ตามข้อกำหนดอย่างเคร่งครัด
|
||||
|
||||
[กฎและข้อกำหนดโครงสร้าง JSON]:
|
||||
1. ผลลัพธ์ต้องเป็น Valid JSON Array ของ Object สินค้าเท่านั้น (เริ่มต้นด้วย [ และจบด้วย ])
|
||||
2. ห้ามมีคำเกริ่นนำ ห้ามมีคำลงท้าย ให้ส่งเฉพาะ JSON ล้วนๆ
|
||||
3. ฟิลด์ตัวเลข (price, stock, order) ต้องเป็น Number ห้ามใส่เครื่องหมายคำพูด (ห้ามเป็น String)
|
||||
4. สินค้าแต่ละชิ้นต้องมีข้อมูลครบถ้วน:
|
||||
- "name": ชื่อสินค้าที่น่าสนใจ ดึงดูด และดูพรีเมียม
|
||||
- "categoryName": หมวดหมู่สินค้า เช่น "Aroma Oil", "Reed Diffuser", "Room Spray", "Car Diffuser", "Essential Oil", "Candle" หรือหมวดอื่นๆ ตามความเหมาะสม
|
||||
- "brandName": ชื่อแบรนด์ เช่น "HomAroma" หรือแบรนด์ตามโจทย์
|
||||
- "description": คำบรรยายสรรพคุณ อารมณ์ กลิ่นสัมผัส ความรู้สึกระดับพรีเมียม (ความยาว 2-4 บรรทัด)
|
||||
- "details": รายละเอียดเชิงลึก เช่น Scent Notes (Top/Middle/Base Notes), ขนาดบรรจุ, วิธีการใช้งาน, ข้อควรระวัง
|
||||
- "images": Array ของ URL รูปภาพสินค้าความละเอียดสูง (ใช้ลิงก์รูปจริงจาก Unsplash เกี่ยวกับ Aroma, Diffuser, Perfume, Spa ที่เปิดดูได้จริง)
|
||||
5. ประเภทสินค้า (เลือกทำแบบใดแบบหนึ่งตามความเหมาะสมของสินค้า):
|
||||
- แบบ A: สินค้าเดี่ยว (Simple Product):
|
||||
ใส่ "price", "stock", "sku", "barcode" (บาร์โค้ดสากล 13 หลัก) ไว้ที่ระดับบนสุดของ Object
|
||||
- แบบ B: สินค้ามีตัวเลือกย่อย (Variable Product เช่น มีหลายขนาด หรือหลายกลิ่น):
|
||||
ต้องมี "options" ระบุชื่อตัวเลือกและค่าที่เป็นไปได้ และมี "variants" ที่ระบุ "option1", "price", "stock", "sku", "barcode" ให้สอดคล้องกันทุกตัว
|
||||
6. รองรับ 2 ภาษา (Bilingual):
|
||||
- มีฟิลด์ "translations" กำหนดทั้ง "th" (ภาษาไทย) และ "en" (ภาษาอังกฤษ) สำหรับ "name", "description", และ "details"
|
||||
|
||||
[โจทย์สินค้าที่ต้องการให้คุณสร้าง]:
|
||||
กรุณาสร้างข้อมูลสินค้าจำนวน 5 รายการ ในหมวดเครื่องหอมและสปา (Essential Oil, Reed Diffuser, Room Spray) โดยมีทั้งสินค้าแบบ Simple Product และ Variable Product ที่มีขนาด 10ml, 30ml, 50ml, 100ml ให้สมบูรณ์แบบพร้อมใช้งานทันที
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📐 ส่วนที่ 2: โครงสร้าง Schema อ้างอิงทางเทคนิค (Data Specification)
|
||||
|
||||
### 1. แบบสินค้ามีตัวเลือกย่อย (Variable Product - มีขนาด/กลิ่น/สี)
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "น้ำมันหอมระเหย ลาเวนเดอร์ 100% Pure Essential Oil",
|
||||
"categoryName": "Aroma Oil",
|
||||
"brandName": "HomAroma",
|
||||
"description": "น้ำมันหอมระเหยบริสุทธิ์แท้ 100% สกัดจากดอกลาเวนเดอร์ประเทศฝรั่งเศส กลิ่นหอมนุ่มนวล ช่วยผ่อนคลายความตึงเครียด บำบัดจิตใจ และช่วยให้นอนหลับลึกอย่างมีคุณภาพ",
|
||||
"details": "• Scent Profile: Floral, Herbal, Calming\n• Top Notes: French Lavender, Fresh Bergamot\n• Heart Notes: Clary Sage, Chamomile\n• Base Notes: Soft Cedarwood\n• วิธีใช้: หยด 3-5 หยดลงในเตาอโรมาหรือเครื่องพ่นไอน้ำ\n• ขนาดบรรจุ: 10ml / 30ml\n• มาตรฐาน: 100% Pure Therapeutic Grade",
|
||||
"options": [
|
||||
{
|
||||
"name": "ขนาด",
|
||||
"values": ["10ml", "30ml"]
|
||||
}
|
||||
],
|
||||
"variants": [
|
||||
{
|
||||
"option1": "10ml",
|
||||
"price": 390,
|
||||
"stock": 50,
|
||||
"sku": "HA-LAV-10ML",
|
||||
"barcode": "8859123456701"
|
||||
},
|
||||
{
|
||||
"option1": "30ml",
|
||||
"price": 890,
|
||||
"stock": 30,
|
||||
"sku": "HA-LAV-30ML",
|
||||
"barcode": "8859123456702"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
"https://images.unsplash.com/photo-1608571423902-eed4a5ad8108?w=800",
|
||||
"https://images.unsplash.com/photo-1617897903246-719242758050?w=800"
|
||||
],
|
||||
"translations": {
|
||||
"th": {
|
||||
"name": "น้ำมันหอมระเหย ลาเวนเดอร์ 100% Pure Essential Oil",
|
||||
"description": "น้ำมันหอมระเหยบริสุทธิ์แท้ 100% สกัดจากดอกลาเวนเดอร์ประเทศฝรั่งเศส ช่วยผ่อนคลายความตึงเครียดและช่วยให้นอนหลับลึก",
|
||||
"details": "• กลิ่น: ฟลอรัล สมุนไพร ผ่อนคลาย\n• วิธีใช้: หยด 3-5 หยดลงในเตาอโรมาหรือเครื่องพ่นไอน้ำ\n• ขนาด: 10ml / 30ml"
|
||||
},
|
||||
"en": {
|
||||
"name": "Lavender Pure Essential Oil 100%",
|
||||
"description": "100% pure natural French lavender essential oil. Calms the mind, relieves daily stress, and encourages restorative sleep.",
|
||||
"details": "• Scent Profile: Floral, Herbal, Calming\n• Usage: Diffuse 3-5 drops in an aroma diffuser or burner.\n• Sizes: 10ml / 30ml"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. แบบสินค้าเดี่ยว (Simple Product - ไม่มีตัวเลือกย่อย)
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "ก้านไม้หอมปรับอากาศ กลิ่นมะลิไทยแท้ (Siam Jasmine Reed Diffuser)",
|
||||
"categoryName": "Reed Diffuser",
|
||||
"brandName": "HomAroma",
|
||||
"price": 590,
|
||||
"stock": 80,
|
||||
"sku": "HA-RD-JAS-100",
|
||||
"barcode": "8859123456801",
|
||||
"description": "ก้านไม้กระจายความหอมระดับพรีเมียม สกัดความหอมละมุนจากดอกมะลิซ้อนสยาม สร้างบรรยากาศอบอุ่น ผ่อนคลาย และหรูหราให้ทุกมุมบ้าน กระจายกลิ่นต่อเนื่องยาวนาน 4-6 สัปดาห์",
|
||||
"details": "• ปริมาตรสุทธิ: 100 ml\n• อายุการใช้งาน: 4-6 สัปดาห์ (ขึ้นอยู่กับอุณหภูมิและความชื้น)\n• อุปกรณ์ในกล่อง: ขวดแก้วทรงคลาสสิก พร้อมก้านไม้ไฟเบอร์นำเข้าสีดำ 6 ก้าน\n• พื้นที่แนะนำ: ห้องนอน, ห้องรับแขก, ห้องทำงาน ขนาด 15-25 ตารางเมตร",
|
||||
"images": [
|
||||
"https://images.unsplash.com/photo-1617897903246-719242758050?w=800",
|
||||
"https://images.unsplash.com/photo-1608571423902-eed4a5ad8108?w=800"
|
||||
],
|
||||
"translations": {
|
||||
"th": {
|
||||
"name": "ก้านไม้หอมปรับอากาศ กลิ่นมะลิไทยแท้ (Siam Jasmine Reed Diffuser)",
|
||||
"description": "ก้านไม้กระจายความหอมระดับพรีเมียม กลิ่นมะลิซ้อนสยาม หอมละมุนยาวนาน 4-6 สัปดาห์",
|
||||
"details": "ปริมาตร: 100ml รวมก้านไม้ 6 ก้าน เหมาะสำหรับห้องขนาด 15-25 ตร.ม."
|
||||
},
|
||||
"en": {
|
||||
"name": "Siam Jasmine Reed Diffuser 100ml",
|
||||
"description": "Premium reed diffuser capturing authentic royal Thai jasmine scent. Long-lasting fragrance diffusion for 4-6 weeks.",
|
||||
"details": "Volume: 100ml. Includes 6 fiber reeds. Recommended for rooms 15-25 sqm."
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ ส่วนที่ 3: กฎสำคัญที่ LLM มักจะพลาด (Gotchas & Validation Rules)
|
||||
|
||||
1. **Option Values ต้องตรงกับ Variant Option:**
|
||||
- หากประกาศ `"options": [ { "name": "ขนาด", "values": ["10ml", "30ml"] } ]`
|
||||
- ใน `variants` แต่ละตัว ค่าของ `"option1"` **ต้องเป็น "10ml" หรือ "30ml" ตรงกันทุกตัวอักษร** (ห้ามพิมพ์เป็น `"10 ml"` หรือ `"10ML"` ที่ต่างตัวพิมพ์)
|
||||
2. **ราคาและสต็อกต้องเป็นตัวเลขจริง (Numeric Type):**
|
||||
- ถูกต้อง: `"price": 490`, `"stock": 100`
|
||||
- ผิด: `"price": "490"`, `"price": "฿490"`
|
||||
3. **รูปภาพต้องเป็น Array:**
|
||||
- รองรับทั้ง Array ของ URL: `["https://...", "https://..."]`
|
||||
- หรือ Array ของ Object: `[{"url": "https://...", "order": 0}]`
|
||||
4. **Barcode ต้องไม่ซ้ำ (Unique per Variant):**
|
||||
- สินค้าหรือตัวเลือกย่อยแต่ละชิ้นควรมีรหัส Barcode 13 หลัก (เช่น ขึ้นต้นด้วย `885...` ของประเทศไทย) ที่ไม่ซ้ำกัน เพื่อให้ใช้กับเครื่องสแกนบาร์โค้ดที่ระบบ POS ได้ทันที
|
||||
5. **Auto-Category & Brand:**
|
||||
- สามารถระบุชื่อหมวดหมู่ (`categoryName`) และชื่อแบรนด์ (`brandName`) เป็นภาษาไทยหรืออังกฤษได้ตามต้องการ หากในระบบยังไม่มี หมวดหมู่และแบรนด์เหล่านั้นจะถูกสร้างให้อัตโนมัติ
|
||||
|
||||
---
|
||||
|
||||
## 🚀 ขั้นตอนการนำเข้าหลังจากได้ JSON จาก LLM
|
||||
|
||||
1. คัดลอก JSON Array ที่ LLM ตอบกลับมา
|
||||
2. เข้าสู่ระบบ Admin ที่เมนู **Products** (`https://admin.homaroma.shop/products` หรือ URL ของ Subdomain ที่ต้องการ)
|
||||
3. กดปุ่ม **"Import JSON"** สีเขียวข้างปุ่ม Add Product
|
||||
4. วางโค้ด JSON ลงในช่อง Textarea (หรือเซฟเป็นไฟล์ `.json` แล้วกดอัปโหลด)
|
||||
5. กดปุ่ม **"ยืนยันนำเข้าสินค้า"**
|
||||
6. ระบบจะบันทึกสินค้า, สร้าง Variant, ตั้งค่าคลังสต็อก, เชื่อมโยงหมวดหมู่, และสร้าง Section หน้าบ้าน Next.js SSR ให้พร้อมใช้งานทันที!
|
||||
Reference in new issue
Block a user