New season — Spring/Summer drop now live

Test Flows — flow ทดสอบทุกแบบ

8 scenarios สำหรับทดสอบครอบคลุมทั้งระบบ

Flow A — Happy Path (ลูกค้า → ผู้ขาย → ส่งของ → จบ)

A1. ลูกค้าซื้อ + อัปโหลดสลิป

  1. เปิด incognitohttp://localhost:3001
  2. สมัครสมาชิก หรือ login customer@example.com / Customer1234!
  3. กดเข้า “เสื้อผ้า” → เลือกสินค้า
  4. เลือก option (size/color) + จำนวน
  5. เพิ่มลงตะกร้า
  6. ไป /cart → ดำเนินการชำระเงิน
  7. /checkout — เลือกที่อยู่ + วิธีจ่าย “โอน + อัปโหลดสลิป”
  8. ยืนยันคำสั่งซื้อ
  9. /payment/[orderNo] → อัปโหลดรูปอะไรก็ได้เป็น “สลิป”
  10. รอ redirect ไป /orders/[id] → สถานะ “รอตรวจสอบสลิป”

✅ เช็คได้:

  • ออเดอร์ถูกสร้าง
  • สต๊อกลด
  • ไฟล์สลิปขึ้น ecommerce-api/uploads/

A2. ผู้ขายตรวจ + ยืนยัน

  1. window ใหม่ (ปกติ ไม่ incognito) → /store/login
  2. Login admin@lumora.shop
  3. /store/orders?status=waiting_payment_review
  4. เปิดออเดอร์ที่เพิ่งสร้าง → ดูสลิป
  5. ยืนยันการชำระเงิน → สถานะ paid

A3. เตรียมของ + ส่ง

ต่อในหน้าเดิม:

  1. เริ่มเตรียมสินค้าpreparing
  2. พร้อมจัดส่งready_to_ship
  3. จัดส่งแล้ว + ใส่ tracking → shipping
  4. ส่งถึงแล้วdelivered

A4. ลูกค้ายืนยันรับ

  1. กลับ window ลูกค้า → /orders/[id]
  2. ยืนยันได้รับสินค้าแล้วcompleted

Flow A สำเร็จ — end-to-end

Flow B — ปฏิเสธสลิป

  1. ทำ A1 ใหม่
  2. ใน admin → กด “ปฏิเสธสลิป” → ใส่เหตุผล “ยอดเงินไม่ตรง”
  3. ลูกค้าเห็นสถานะกลายเป็น “ปฏิเสธ”
  4. ลูกค้าสามารถอัปโหลดสลิปใหม่ได้

Flow C — ยกเลิกออเดอร์

  1. ทำ A1 ถึงข้อ 9 (สร้างออเดอร์เสร็จ)
  2. /orders/[id] → ปุ่ม “ยกเลิกคำสั่งซื้อ” (ล่างขวา)
  3. ยืนยัน → สถานะ cancelled
  4. ตรวจใน admin: สต๊อกสินค้าคืนกลับมาแล้ว

Flow D — เก็บปลายทาง (COD)

  1. ลูกค้าสมัคร / login
  2. ตะกร้า → checkout → เลือก “เก็บเงินปลายทาง”
  3. ยืนยัน → ไป /orders/[id] เลย (ไม่ผ่าน /payment)
  4. สถานะเริ่มต้น confirmed
  5. ผู้ขายดำเนินการ: preparing → ship → delivered
  6. ลูกค้ายืนยันรับ → จ่ายเงินสดตอนรับ

Flow E — ใช้คูปอง

  1. ใส่ของในตะกร้ายอด ≥ ฿500
  2. /checkout → ในช่องคูปอง พิมพ์ WELCOME10
  3. กด “ใช้” → preview ลดราคา 10%
  4. ยืนยันคำสั่งซื้อ
  5. ตรวจ /orders/[id] — discount แสดง

ลอง edge cases:

  • ✓ พิมพ์ code ผิด → error “คูปองไม่ถูกต้อง”
  • ✓ ยอดน้อยกว่าขั้นต่ำ → error “ขั้นต่ำ ฿500”
  • ✓ ใช้ code ที่หมดอายุ → error

Flow F — Search + Filter

  1. /products → พิมพ์ keyword ในช่องค้น
  2. ลอง sort:
    • ใหม่ล่าสุด
    • ราคาต่ำ → สูง
    • ราคาสูง → ต่ำ
    • ชื่อ A-Z
  3. Filter หมวด — ลอง “เสื้อผ้า” / “รองเท้า”
  4. ลอง URL share — ?search=shirt&sort=price_asc ตรงทุก state

Flow G — Wishlist Sync

  1. login ลูกค้า A บนเว็บ
  2. กด ♥ บน product card 3 ชิ้น
  3. /wishlist → เห็น 3 ชิ้น
  4. ลองบนแอปมือถือ (ถ้ารัน expo): login บัญชีเดียวกัน → wishlist sync มา
  5. ลบ 1 ชิ้นในแอป → กลับเว็บ → refresh /wishlist → ลดเหลือ 2

Flow H — สิทธิ์ Staff vs Manager vs Owner

Staff (staff@lumora.shop)

  • ✓ /store/orders ดู + จัดการได้
  • ✓ /store/products แก้ได้
  • ✗ /store/settings ถูกซ่อน
  • ✗ /store/staffs ถูกซ่อน
  • ✗ /store/reports ถูกซ่อน
  • ลอง access /store/settings โดยตรง → redirect /store/dashboard

Manager (manager@lumora.shop)

  • ✓ ทุกอย่างยกเว้น…
  • ✗ /store/staffs ไม่เห็น
  • ✗ ลบสินค้าได้ไหม? ✓ ได้

Owner (admin@lumora.shop)

  • ✓ ทุกอย่าง ทั้งหมด

Test Checklist รวม

ก่อนตัดสินใจซื้อ — ทดสอบให้ครบ:

  • [ ] Flow A ครบ (สร้าง → ตรวจ → ส่ง → รับ)
  • [ ] Flow B (ปฏิเสธสลิป)
  • [ ] Flow C (ยกเลิก + สต๊อกคืน)
  • [ ] Flow D (COD)
  • [ ] Flow E (คูปอง 3 cases)
  • [ ] Flow F (search + filter + sort)
  • [ ] Flow G (sync เว็บ-แอป)
  • [ ] Flow H (3 role permissions)
  • [ ] ทดสอบบน mobile browser (responsive)
  • [ ] ทดสอบ Light/Dark (ปัจจุบัน light only)
  • [ ] ทดสอบสลับภาษา TH ↔ EN
  • [ ] รัน Lighthouse score → Performance ≥ 90
  • [ ] ทดลอง API บน Swagger (/docs ของ api)

ขั้นต่อไป

Join the club

ของเด็ดส่งตรง
ถึงอินบ็อกซ์

สมัครรับข่าวสาร — รับส่วนลด 10% สำหรับสมาชิกใหม่ + อัปเดตคอลเลกชันก่อนใคร