ระบบ Tier ของ Loyalty — ภาพรวมสำหรับทุกคน

Tier คืออะไร?

Tier คือ “ระดับสมาชิก” ที่บอกว่าลูกค้าคนนี้ใช้จ่ายมากแค่ไหน ยิ่ง Tier สูง ยิ่งได้สิทธิพิเศษมากขึ้น

💙 NAVY      →  ยอดสะสม 049,999 บาท
❤️ SCARLET   →  ยอดสะสม 50,000299,999 บาท
👑 CROWN     →  ยอดสะสม 300,0001,999,999 บาท
⭐ VEGA      →  ยอดสะสม 2,000,000 บาท ขึ้นไป
💎 CRYSTAL / VVIP  →  ได้รับเชิญพิเศษเท่านั้น (ไม่ขึ้นกับยอดซื้อ)

ยอดสะสมที่ระบบใช้คำนวณ Tier

ระบบไม่ได้ดูยอดซื้อทั้งหมดตลอดชีวิต แต่ดู 2 ช่วงเวลา ที่ต่างกัน:

ยอดสะสม ดูช่วงไหน ใช้ทำอะไร
ยอดสะสม 24 เดือนย้อนหลัง 2 ปีที่ผ่านมา ตัดสินว่าควร ขึ้น Tier ไหม
ยอดสะสมในรอบ Tier ปัจจุบัน ตั้งแต่วันที่ได้ Tier นี้ ตัดสินว่าควร คง Tier ไว้ไหมตอนสิ้นรอบ

เมื่อไหร่ Tier จะเปลี่ยน?

Flow 1 — ซื้อของแล้ว Tier ขึ้น (Real-time)

flowchart TD A([ลูกค้าซื้อของ]) --> B[ระบบรับข้อมูลจาก POS ทันที] B --> C[คำนวณยอดสะสม 24 เดือนใหม่] C --> D{ยอดถึงเกณฑ์ยอดสะสม<br/>ของ Tier สูงกว่า?} D -->|ใช่| E[✅ ขึ้น Tier ทันที<br/>+ แจ้ง Engagement / Notification] D -->|ไม่ใช่| F[อัปเดตยอดสะสมอย่างเดียว]

ตัวอย่าง:

คุณ A อยู่ Tier NAVY มียอดสะสม 24 เดือนอยู่ที่ 45,000 บาท
วันนี้ซื้อของเพิ่ม 10,000 บาท → ยอดสะสมใหม่ = 55,000 บาท
SCARLET ต้องการ 50,000 บาท → ✅ ขึ้น Tier เป็น SCARLET ทันที

แต่ถ้าซื้อแค่ 3,000 บาท → ยอดสะสมใหม่ = 48,000 บาท → ยังไม่ถึง 50,000 → คง NAVY ไว้


Flow 2 — คืนสินค้า / ยกเลิกรายการ แล้ว Tier ลง (Real-time)

flowchart TD A([ลูกค้าคืนสินค้าหรือยกเลิก]) --> B[ระบบรับข้อมูลทันที] B --> C[หักยอดสะสมออก] C --> D{ยอดต่ำกว่าเกณฑ์ยอดสะสม<br/>ของ Tier ปัจจุบัน?} D -->|ใช่| E[⬇️ ลด Tier ทันที] D -->|ไม่ใช่| F[ไม่เปลี่ยน Tier] E --> G["⚠️ เฉพาะกรณีที่รายการที่คืน<br/>เกิดขึ้นหลังวันที่ได้ Tier ปัจจุบัน"]

ตัวอย่าง:

คุณ B อยู่ Tier SCARLET มียอดสะสม 24 เดือนอยู่ที่ 80,000 บาท
คืนสินค้าที่ซื้อเมื่อเดือนที่แล้ว มูลค่า 40,000 บาท → ยอดสะสมใหม่ = 40,000 บาท
SCARLET ต้องการ 50,000 บาท → ❌ ต่ำกว่าเกณฑ์ → ⬇️ ลงเป็น NAVY ทันที

แต่ถ้าคืนสินค้าที่ซื้อก่อนวันที่ได้ SCARLET → ระบบไม่ลด Tier (เพราะอยู่นอกรอบปัจจุบัน)


Flow 3 — ระบบคำนวณยอดสะสมใหม่แบบ Batch

ระบบมี job รันตามกำหนดเวลา เพื่อซิงค์ยอดสะสมให้ถูกต้อง ป้องกันกรณีที่ยอดคลาดเคลื่อนจาก real-time:

flowchart TD A([Batch job รันตามกำหนด]) --> B{ประเภท job} B -->|อัปเดตยอดสะสมอย่างเดียว| C[คำนวณยอดสะสม 24 เดือนใหม่<br/>ไม่เปลี่ยน Tier] B -->|คำนวณใหม่ทั้งหมด| D[ดึงยอดจาก DB<br/>คำนวณ Tier ใหม่] D --> E{Tier เปลี่ยนไหม?} E -->|ใช่| F[✅ อัปเดต Tier] E -->|ไม่ใช่| G[ไม่เปลี่ยน]

ตัวอย่าง:

transaction ของคุณ C เมื่อ 2 ปีที่แล้วหลุดออกจาก rolling window 24 เดือน
Batch job ตรวจพบว่ายอดสะสมที่แท้จริงลดลง แต่ระบบไม่ลด Tier จาก batch นี้
(การลด Tier จาก batch เกิดเฉพาะกรณีที่มี refund เท่านั้น)


Flow 4 — ครบรอบ Tier — ต่ออายุหรือลดระดับ (ปีละครั้ง)

แต่ละ Tier มีอายุ 2 ปี นับจากวันที่ได้รับ เมื่อครบกำหนด ระบบจะตรวจสอบอัตโนมัติทุกวัน:

flowchart TD A([ครบรอบ Tier]) --> B[ดูยอดสะสมในรอบที่ผ่านมา] B --> C{ยอดถึงเกณฑ์<br/>คง Tier?} C -->|ใช่| D[✅ คง Tier เดิม<br/>+ เริ่มรอบใหม่ 2 ปี] C -->|ไม่ใช่| E[⬇️ ลด Tier ตามยอดที่ทำได้จริง<br/>+ เริ่มรอบใหม่ 2 ปี]

ตัวอย่าง:

คุณ D ได้ Tier CROWN เมื่อ 1 มี.ค. 2023 → รอบ Tier สิ้นสุด 31 ธ.ค. 2024
ยอดสะสมในรอบนี้ (มี.ค. 2023 – ธ.ค. 2024) = 350,000 บาท
CROWN ต้องการ 300,000 บาท → ✅ ผ่าน → คง CROWN + เริ่มรอบใหม่ 1 ม.ค. 2025

แต่ถ้ายอดในรอบ = 60,000 บาท → ไม่ถึง CROWN (300,000) แต่ถึง SCARLET (50,000) → ⬇️ ลงเป็น SCARLET


Flow 5 — ตรวจสอบ Tier หลังครบรอบ (Reconcile)

หลังจากกระบวนการต่ออายุ Tier เสร็จ ระบบจะตรวจซ้ำอีกรอบ เพื่อจับกรณีที่ลูกค้าควรได้ Tier สูงกว่าแต่ยังไม่ได้รับ:

flowchart TD A([หลังครบรอบ Tier]) --> B{ลูกค้าควรได้<br/>Tier สูงกว่าปัจจุบันไหม?} B -->|ใช่| C[✅ ขึ้น Tier ย้อนหลังให้ถูกต้อง] B -->|ไม่ใช่| D[ไม่เปลี่ยน]

ตัวอย่าง:

หลัง maintain tier เสร็จ ระบบตรวจพบว่าคุณ E ถูก maintain ไว้ที่ SCARLET
แต่ยอดสะสม 24 เดือนจริงๆ อยู่ที่ 320,000 บาท ซึ่งถึงเกณฑ์ CROWN แล้ว
→ ระบบปรับขึ้นเป็น CROWN ย้อนหลังให้ถูกต้อง


Flow 6 — Admin ปรับยอดด้วยมือ

Admin สามารถเพิ่มหรือหักยอดสะสมให้ลูกค้าได้โดยตรง ซึ่งอาจทำให้ Tier เปลี่ยนได้เช่นกัน:

flowchart LR A([Admin เพิ่มยอด]) --> B[ระบบทำเหมือนลูกค้าซื้อของ] --> C[อาจขึ้น Tier] D([Admin หักยอด]) --> E[ระบบทำเหมือนลูกค้าคืนสินค้า] --> F[อาจลง Tier]

ตัวอย่าง:

คุณ F อยู่ NAVY มียอดสะสม 45,000 บาท
Admin เพิ่มยอดให้ 10,000 บาท → ยอดสะสมใหม่ = 55,000 บาท → ✅ ขึ้นเป็น SCARLET

Admin หักยอด 20,000 บาท → ยอดสะสมใหม่ = 35,000 บาท → ต่ำกว่า 50,000 → ⬇️ กลับเป็น NAVY


Flow 7 — บัตร Co-Brand — ขึ้น/ลง Tier ตามบัตร

บัตรเครดิต Co-Brand บางใบมีสิทธิ์กำหนด “Tier ขั้นต่ำ” ให้ลูกค้า:

flowchart TD A([ได้รับบัตร Co-Brand ใหม่]) --> B{บัตรกำหนด Tier ขั้นต่ำ<br/>สูงกว่า Tier ปัจจุบัน?} B -->|ใช่| C[✅ ขึ้น Tier ทันที] B -->|ไม่ใช่| D[ไม่เปลี่ยน] E([ยกเลิก / ระงับบัตร Co-Brand]) --> F[คำนวณ Tier ใหม่จากยอดสะสม] F --> G{Tier ใหม่ต่ำกว่าปัจจุบัน?} G -->|ใช่| H[⬇️ ลด Tier] G -->|ไม่ใช่| I[ไม่เปลี่ยน]

ตัวอย่าง:

คุณ G อยู่ NAVY มียอดสะสม 30,000 บาท
ได้รับบัตร Co-Brand ที่กำหนด Tier ขั้นต่ำ = CROWN → ✅ ขึ้นเป็น CROWN ทันที (แม้ยอดสะสมจะไม่ถึง)

ต่อมายกเลิกบัตรนั้น → ระบบคำนวณ Tier ใหม่จากยอดสะสม 30,000 บาท
ไม่ถึง SCARLET (50,000) → ⬇️ กลับลงมาเป็น NAVY


Flow 8 — พนักงานออกจากบริษัท

พนักงานที่ได้ Tier พิเศษ (CRYSTAL) จากสถานะพนักงาน เมื่อออกจากบริษัทจะถูกปรับ Tier ใหม่:

flowchart TD A([Admin อัปโหลดไฟล์พนักงานที่ออก]) --> B[ระบบลบสถานะพนักงานออก] B --> C[คำนวณ Tier ใหม่จากยอดสะสมปกติ] C --> D[ปรับ Tier เป็น NORMAL tier ตามยอดที่มี]

ตัวอย่าง:

คุณ H เป็นพนักงาน ได้ Tier CRYSTAL จากสถานะพนักงาน
ลาออกจากบริษัท → Admin อัปโหลดไฟล์ → ระบบลบสถานะพนักงานออก
ยอดสะสม 24 เดือนของคุณ H = 80,000 บาท → ถึงเกณฑ์ SCARLET → ปรับเป็น SCARLET


Flow 9 — Import สมาชิกเข้าระบบ

Admin สามารถ import รายชื่อสมาชิกพร้อม Tier ที่กำหนดมาให้ผ่านไฟล์ CSV:

flowchart TD A([Admin อัปโหลดไฟล์ CSV]) --> B{สมาชิกมีในระบบแล้ว?} B -->|ใช่| C[อัปเดต Tier ตามไฟล์<br/>ป้องกันการลด Tier] B -->|ไม่ใช่| D[สร้างสมาชิกใหม่<br/>ยอดสะสมเริ่มต้น = 0] C --> E[✅ Tier ถูกกำหนดตามไฟล์] D --> E

ตัวอย่าง:

Import ไฟล์ระบุว่าคุณ I ควรได้ Tier CROWN
คุณ I มีในระบบแล้ว อยู่ NAVY → ระบบอัปเดตเป็น CROWN ทันที

คุณ J ยังไม่มีในระบบ → ระบบสร้างสมาชิกใหม่ด้วย Tier SCARLET และยอดสะสม = 0


ภาพรวมทุก Trigger ที่ทำให้ Tier เปลี่ยน

flowchart LR subgraph RT ["⚡ Real-time"] R1["🛒 Flow1: ซื้อของ → Tier ขึ้น"] R2["↩️ Flow2: คืนสินค้า → Tier ลง"] end subgraph SC ["🕐 ตามกำหนดเวลา"] S1["📊 Flow3: Batch คำนวณยอดสะสม"] S2["📅 Flow4: ครบรอบ Tier<br/>→ คง Tier หรือลด Tier"] S3["🔍 Flow5: ตรวจสอบหลังครบรอบ<br/>→ อาจขึ้น Tier"] S2 --> S3 end subgraph AD ["👤 Admin / Manual"] A1["✏️ Flow6: ปรับยอดด้วยมือ<br/>→ อาจขึ้น/ลง Tier"] A2["📂 Flow8: พนักงานออก / Flow9: Import สมาชิก"] end subgraph CB ["💳 Co-Brand Card"] C1["Flow7: ได้บัตร → อาจขึ้น Tier<br/>ยกเลิกบัตร → อาจลง Tier"] end CORE(["🎯 ระบบ Loyalty Tier"]) RT --> CORE SC --> CORE AD --> CORE CB --> CORE

Tier ขั้นต่ำ (Minimum Tier)

ลูกค้าบางคนมี “Tier ขั้นต่ำ” ที่ระบบจะไม่ลด Tier ต่ำกว่านี้ ไม่ว่ายอดสะสมจะเป็นเท่าไหร่ก็ตาม

สาเหตุที่ได้ Tier ขั้นต่ำ:

  • ถือบัตร Co-Brand ที่กำหนด Tier ขั้นต่ำไว้
  • ได้รับการ Import เข้าระบบพร้อม Tier ที่กำหนดมาให้

สรุปสั้นๆ

สถานการณ์ Flow ผลลัพธ์
ซื้อของจนยอดถึงเกณฑ์ยอดสะสม 1 Tier ขึ้น (ทันที)
คืนสินค้าจนยอดต่ำกว่าเกณฑ์ยอดสะสม 2 Tier ลง (ทันที)
Batch ซิงค์ยอดสะสม 3 อัปเดตยอด / อาจเปลี่ยน Tier
ครบรอบ 2 ปี ยอดในรอบผ่านเกณฑ์ 4 คง Tier เดิม + เริ่มรอบใหม่
ครบรอบ 2 ปี ยอดในรอบไม่ผ่านเกณฑ์ 4 Tier ลง + เริ่มรอบใหม่
ตรวจสอบหลังครบรอบ 5 อาจ Tier ขึ้น
Admin ปรับยอดเพิ่ม 6 อาจ Tier ขึ้น
Admin ปรับยอดลด 6 อาจ Tier ลง
ได้บัตร Co-Brand ที่มี Tier สูงกว่า 7 Tier ขึ้น (ทันที)
ยกเลิกบัตร Co-Brand 7 อาจ Tier ลง
พนักงานออกบริษัท 8 ปรับ Tier ตามยอดสะสมปกติ
Import สมาชิกเข้าระบบ 9 Tier ถูกกำหนดตามไฟล์