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