Files
homaroma/LLM_PRODUCT_JSON_GENERATOR_GUIDE.md
T

14 KiB

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:

คุณคือ 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 - มีขนาด/กลิ่น/สี)

{
  "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 - ไม่มีตัวเลือกย่อย)

{
  "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 ให้พร้อมใช้งานทันที!