BOOK 15/25ลูกค้าและโปรโมชัน
สมาชิก/แต้มสะสม
จัดการข้อมูลสมาชิก แต้มสะสม ระดับสมาชิก คูปอง และแจ้งเตือนผ่าน LINE ได้ที่เมนู “ศูนย์สมาชิก (CRM)” ฝั่งพนักงาน/แอดมิน ส่วนลูกค้าเข้าดูแต้ม/คูปอง และสแกนรับแต้มของตัวเองผ่านแอปสมาชิกที่ล็อกอินด้วย LINE
ฝั่งพนักงาน/แอดมิน (จัดการสมาชิก)
เข้าเมนู “ศูนย์สมาชิก (CRM)” + ตรวจสิทธิ์การเข้าถึง
ไปที่เมนู “จัดการ” แล้วเลือก “ศูนย์สมาชิก (CRM)” — หน้านี้แบ่งเป็น 5 แท็บ: สมาชิก, ภาพรวม, สินค้าขายดี, คูปอง/วันเกิด, LINE broadcast
เข้าหน้านี้ได้ถ้ามีสิทธิ์อย่างน้อย 1 ใน 4: settings.manage, member.manage, coupon.manage, points.adjust — แต่ปุ่ม/ฟีเจอร์แต่ละจุดยังถูกล็อกเฉพาะสิทธิ์ที่ตรงกับมันแม้เข้าหน้าได้แล้ว เช่น ปุ่มปรับแต้มต้องมี points.adjust (หรือ settings.manage) เท่านั้นถึงจะกดได้

เปิดภาพเต็ม เพิ่มสมาชิกใหม่
กรอกแบบฟอร์มด้านบนตาราง: ชื่อ (บังคับ), เบอร์โทร, อีเมล, LINE userId, ระดับสมาชิกเริ่มต้น, เพศ, แต้มเริ่มต้น, วันเกิด แล้วกด “+ เพิ่ม”
ฟิลด์ทั้งหมดยกเว้นชื่อเป็นตัวเลือก — เพิ่มสมาชิกโดยยังไม่ผูก LINE userId ได้ (ลูกค้าจะผูกเองตอนล็อกอินแอปสมาชิกครั้งแรก)

เปิดภาพเต็ม ค้นหา/เรียงลำดับ/แบ่งหน้ารายชื่อสมาชิก
พิมพ์ชื่อหรือเบอร์โทรในช่องค้นหา ระบบจะกรองให้อัตโนมัติหลังหยุดพิมพ์ประมาณ 0.3 วินาที (ค้นที่เซิร์ฟเวอร์ ไม่ใช่กรองข้อมูลที่โหลดมาแล้วในเครื่อง)
คลิกหัวคอลัมน์ วันเกิด / แต้ม / ระดับ / ยอดใช้จ่าย เพื่อเรียงลำดับ คลิกซ้ำที่คอลัมน์เดิมเพื่อสลับน้อย↔มาก — เลือกจำนวนแถวต่อหน้าและเปลี่ยนหน้าได้ที่แถบด้านล่างตาราง

เปิดภาพเต็ม เปิดดู/แก้ไขข้อมูลสมาชิก
คลิกไอคอนดินสอที่แถวสมาชิกเพื่อเปิดหน้าต่างรายละเอียด แก้ชื่อ/เบอร์/อีเมล/ระดับสมาชิก/เพศ/วันเกิด/ปีเกิด ได้ในหน้าต่างเดียว แล้วกด “บันทึก”
การแก้ช่อง “แต้ม” ในฟอร์มนี้เป็นการตั้งค่าทับแบบสัมบูรณ์ ไม่มีการบันทึกเหตุผลหรือประวัติใดๆ — ต่างจากปุ่ม “ปรับแต้ม” ในขั้นตอนถัดไปที่มีการยืนยันตัวตนและบันทึกทุกครั้ง ใช้ฟอร์มนี้เฉพาะตอนตั้งค่าเริ่มต้น/นำเข้าข้อมูล ไม่ควรใช้ปรับแต้มประจำวัน

เปิดภาพเต็ม ปรับแต้มด้วยมือ (+/-) ผ่าน PIN
ในหน้าต่างเดียวกัน เลือกทิศทาง “เพิ่ม” หรือ “ลด”, กรอกจำนวนแต้ม (กรอกเป็นเลขบวกเสมอ) และเหตุผล (บังคับกรอก) แล้วกดปุ่มปรับแต้ม
ระบบจะขอ PIN ของผู้มีสิทธิ์ settings.manage ก่อนบันทึกจริงทุกครั้ง (ยืนยันซ้ำ/step-up) — ถ้าลดแต้มแล้วผลลัพธ์จะติดลบ ระบบจะปฏิเสธคำสั่งทั้งหมด ไม่ลดให้บางส่วน (เช่น สมาชิกมี 30 แต้ม กดลด 50 ระบบจะขึ้น error ไม่ใช่ลดเหลือ 0) ต้องแก้จำนวนให้ไม่เกินแต้มคงเหลือก่อนถึงจะกดซ้ำได้

เปิดภาพเต็ม ดูประวัติแต้มและประวัติบิลของสมาชิก
เลื่อนลงในหน้าต่างเดียวกันเพื่อดู “ประวัติแต้ม” (ได้แต้ม/ปรับแต้ม/ใช้แต้ม พร้อมจำนวนแต้มก่อน-หลังทุกรายการ) และ “ประวัติบิล” ของสมาชิกคนนี้
ทั้งสองรายการโหลดสดจากเซิร์ฟเวอร์ทุกครั้งที่เปิดหน้าต่างของสมาชิกคนนั้น ไม่ใช่ข้อมูลที่แคชไว้ล่วงหน้า

เปิดภาพเต็ม ลบสมาชิก / เลือกหลายคนพร้อมกัน (bulk)
กดไอคอนถังขยะที่แถวเพื่อลบสมาชิกทีละคน (คูปองที่แจกให้สมาชิกคนนั้นถูกลบไปด้วย) — ระบบจะถามยืนยันก่อนลบทุกครั้ง
ติ๊กช่องซ้ายมือหลายแถว (หรือติ๊กหัวตารางเพื่อเลือกทั้งหน้า) เพื่อเปิดแถบเครื่องมือ bulk ด้านล่าง — ลบพร้อมกันหลายคน หรือกำหนดระดับสมาชิก (Bronze/Silver/Gold) ให้ทุกคนที่เลือกในคลิกเดียว

เปิดภาพเต็ม แท็บ “ภาพรวม” และ “สินค้าขายดี”
แท็บ “ภาพรวม” สรุปจำนวนสมาชิกแต่ละระดับ, แต้มรวมทั้งระบบ, รายชื่อสมาชิกวันเกิดวันนี้และจำนวนวันเกิดเดือนนี้, ยอดใช้จ่ายสูงสุด 10 อันดับ (Top spenders), และสถิติความถี่การมาใช้บริการ (มาครั้งเดียว/มาซ้ำ/ยอดใช้จ่ายเฉลี่ยต่อครั้ง) — คำนวณจากเพศ/ช่วงอายุด้วย
แท็บ “สินค้าขายดี” แสดงเมนูขายดีตามยอดขายจริงจากบิลทั้งระบบ โหลดแบบแบ่งหน้า กด “โหลดเพิ่ม” เพื่อดูรายการถัดไปทีละ 20 รายการ

เปิดภาพเต็ม สร้าง/แก้ไขคูปอง และแจกให้สมาชิก
แท็บ “คูปอง/วันเกิด” กด “+ คูปองใหม่” เพื่อเปิดฟอร์มเดียวที่ตั้งได้ทั้งประเภทส่วนลด (ลด %, ลดบาท, แถมสินค้าฟรี), ขอบเขต (ทั้งบิล หรือเจาะจงเมนู/หมวด/กลุ่มที่เลือก), วันหมดอายุ, ใช้ครั้งเดียวหรือใช้ซ้ำได้, เปิดให้เฉพาะคนที่แจกหรือให้ทุกคนเห็น, จำนวนแต้มที่ต้องใช้แลก, ระดับสมาชิกที่มีสิทธิ์ใช้ และเงื่อนไขจำกัดเฉพาะช่วงวันเกิด
กลับไปแท็บ “สมาชิก” เลือกคูปองจาก dropdown ที่แถวสมาชิกคนนั้น แล้วกดไอคอนแจก — คูปองจะไปโผล่ในแอปสมาชิกของลูกค้าคนนั้นทันที

เปิดภาพเต็ม LINE broadcast และแจ้งเตือนอัตโนมัติ
แท็บ “LINE broadcast” ส่งข้อความหาสมาชิกที่ผูก LINE ไว้ทั้งหมด หรือเจาะกลุ่มตามช่วงอายุ/เพศ/เดือนเกิด/ยอดใช้จ่าย/จำนวนวันตั้งแต่มาครั้งล่าสุด — เมื่อเปิดโหมดเจาะกลุ่ม ระบบจะประมาณจำนวนผู้รับให้ดูก่อนกดส่งจริง
ด้านล่างมีปุ่มดูประวัติการส่งย้อนหลัง และตารางบันทึกการแจ้งเตือนอัตโนมัติ (วันเกิด/เดือนเกิด/แต้มใกล้หมดอายุ/ฝากเหล้าใกล้หมดอายุ) ที่ระบบยิงให้เองตามตั้งค่า — ไม่ต้องกดส่งเอง

เปิดภาพเต็ม ลิงก์สมัคร/QR สำหรับลูกค้า
ด้านบนแท็บสมาชิกมีกล่องลิงก์ + QR โค้ดให้ลูกค้าสแกนเพื่อเข้าแอปสมาชิก — ต้องตั้งค่า publicBaseUrl ที่เมนู “ตั้งค่า” ก่อน ระบบถึงจะสร้างลิงก์/QR ให้ได้ ถ้ายังไม่ตั้งจะเห็นข้อความเตือนให้ไปตั้งค่าก่อนแทน
กด “คัดลอกลิงก์” เพื่อคัดลอกไปแปะที่อื่น เช่น ใบปลิวหรือสติ๊กเกอร์ติดโต๊ะ (ในเบราว์เซอร์ที่ไม่รองรับการคัดลอกอัตโนมัติ ระบบจะเปิดกล่องให้เลือกคัดลอกด้วยตัวเองแทน)

เปิดภาพเต็ม ตั้งค่าระดับสมาชิกและแต้มสะสม (อยู่ที่เมนู “ตั้งค่า”)
เกณฑ์ระดับสมาชิก (Silver/Gold ต้องใช้จ่ายกี่บาทในช่วงเวลาที่กำหนด), อัตราแต้มสะสม (ทุกกี่บาทได้กี่แต้ม), จำนวนเดือนก่อนแต้มหมดอายุ และจำนวนวันแจ้งเตือนล่วงหน้าก่อนแต้มหมดอายุ ไม่ได้ตั้งที่หน้าศูนย์สมาชิก แต่ตั้งที่เมนู “ตั้งค่า” → แท็บ “CRM / สมาชิก” → หัวข้อ “ระดับสมาชิก (Tier) & หมดอายุแต้ม” แทน
ถ้าไม่ได้ตั้งเกณฑ์ระดับสมาชิก (ทั้งยอดเงินและช่วงเวลา) ระบบจะไม่คำนวณระดับอัตโนมัติเลย — ระดับจะเปลี่ยนได้เฉพาะตอนพนักงานแก้ด้วยมือเท่านั้น

เปิดภาพเต็ม
มุมมองลูกค้า (แอปสมาชิกผ่าน LINE)
เข้าสู่ระบบด้วย LINE + กรอกข้อมูลครั้งแรก
ลูกค้าเปิดลิงก์แอปสมาชิกแล้วเข้าสู่ระบบด้วย LINE — ถ้ายังไม่เคยกรอกเบอร์โทร/วันเกิด ระบบจะบังคับเปิดหน้าต่างให้กรอกเบอร์มือถือ (รูปแบบ 06/08/09 นำหน้าตามด้วยเลข 9 หลัก) และวันเดือนปีเกิดให้ครบก่อน ถึงจะปิดหน้าต่างและใช้งานต่อได้ — อีเมลเป็นช่องไม่บังคับ (ถ้า LINE มีอีเมลผูกอยู่แล้วระบบจะดึงมาเติมให้ล่วงหน้า แก้ไขเองได้)
ถ้ายังไม่กรอกครบ หน้าต่างนี้จะเด้งขึ้นมาบังหน้าจอทุกครั้งที่เปิดแอป จนกว่าจะกรอกผ่าน — ปิดหน้าต่างเฉยๆ ไม่ได้

เปิดภาพเต็ม หน้าแรกสมาชิก: แต้มสะสม ระดับสมาชิก และแจ้งเตือน
หลังเข้าระบบสำเร็จ จะเห็นการ์ดสมาชิกแสดงชื่อ, เบอร์โทร, ระดับสมาชิก (สีขอบการ์ดเปลี่ยนตามระดับ) และแต้มสะสมตัวเลขใหญ่ตรงกลาง
ถ้าร้านเปิดใช้แต้มหมดอายุ (FIFO) และมีแต้มก้อนไหนใกล้ครบกำหนด จะมีแถบเตือนสีแดงบอกจำนวนแต้มที่จะหมดพร้อมวันที่ชัดเจน — ด้านล่างเป็นไอคอน 3 ปุ่ม: คูปองของฉัน, การจองโต๊ะ (ไปหน้าเต็ม), Bottle Keep — กดคูปองหรือ Bottle Keep เพื่อเปิดเป็นหน้าต่างป๊อปอัป

เปิดภาพเต็ม ใช้คูปอง → รับรหัส OTP
ในการ์ดคูปองแต่ละใบที่สถานะ “ใช้ได้” จะโชว์จำนวนแต้มที่ต้องใช้แลก (หรือ “ฟรี” ถ้าไม่มี) กดปุ่ม “ใช้คูปอง → รับ OTP” ระบบจะออกรหัส 6 หลักให้แสดงต่อพนักงาน มีอายุใช้งาน 30 นาที
ถ้าแต้มไม่พอสำหรับคูปองที่ต้องใช้แต้มแลก ปุ่มนี้จะถูกปิดใช้งานพร้อมข้อความ “แต้มไม่พอ” — คูปองที่ติดป้าย “สำหรับสมาชิกทุกคน” หรือ “ใช้ซ้ำได้” จะมีป้ายบอกไว้บนการ์ดให้เห็นชัด และมีลิงก์ “ประวัติการใช้คูปอง” ไว้ดูคูปองที่เคยใช้ไปแล้วจริงเท่านั้น

เปิดภาพเต็ม สแกน QR รับแต้มจากใบเสร็จ
หลังพนักงานปิดบิลและพิมพ์ใบเสร็จ ใบเสร็จจะมี QR “สะสมแต้ม” แนบอยู่ — ลูกค้าสแกนแล้วเปิดหน้านี้ ถ้าล็อกอิน LINE ค้างอยู่แล้ว ระบบจะรับแต้มให้อัตโนมัติทันทีโดยไม่ต้องกดอะไรเพิ่ม พร้อมป๊อปอัปสรุปแต้มที่ได้รับและแต้มสะสมรวมล่าสุด
ถ้ายังไม่ได้ล็อกอิน ระบบจะพาไปเข้าสู่ระบบ LINE ก่อน แล้วพากลับมารับแต้มที่หน้านี้ต่อให้เองอัตโนมัติหลังล็อกอินสำเร็จ

เปิดภาพเต็ม
จุดที่มักสับสน
ระดับสมาชิกคำนวณอัตโนมัติได้ — และจะเขียนทับค่าที่พนักงานตั้งเอง
ถ้าเปิดใช้ฟีเจอร์ระดับสมาชิกอัตโนมัติที่เมนูตั้งค่า (กำหนดยอดเงินขั้นต่ำของ Silver/Gold + ช่วงเวลาที่นับยอด) ระบบจะคำนวณระดับใหม่จากยอดใช้จ่ายในหน้าต่างเวลานั้นทุกครั้งที่บิลของสมาชิกคนนั้นปิดสำเร็จ — ถ้าพนักงานเพิ่งแก้ระดับด้วยมือในหน้าแก้ไขสมาชิกหรือใช้ปุ่ม bulk ตั้งระดับ ค่าที่ตั้งจะถูกคำนวณทับทันทีที่บิลถัดไปของสมาชิกคนนั้นปิด ถ้าฟีเจอร์นี้เปิดอยู่ ถ้ายังไม่ได้ตั้งเกณฑ์ครบทั้งสองอย่าง (ยอดเงิน Silver/Gold + จำนวนเดือน) ระบบจะไม่แตะระดับเลย เปลี่ยนได้เฉพาะที่ตั้งเองเท่านั้น
ปรับแต้มด้วยมือ vs แก้ไขแต้มในฟอร์ม — คนละกลไก คนละร่องรอย
การแก้ช่อง “แต้ม” ตรงๆ ในฟอร์มแก้ไขสมาชิกเป็นการตั้งค่าทับแบบสัมบูรณ์ ไม่มีการบันทึกเหตุผลหรือ log ใดๆ — ใช้ได้แต่ไม่แนะนำสำหรับปรับแต้มประจำวัน ส่วนปุ่ม “ปรับแต้ม” (+/-) เป็นการเพิ่ม/ลดแบบสัมพัทธ์ ต้องระบุเหตุผลและยืนยันด้วย PIN เสมอ ทุกครั้งจะถูกบันทึกลงประวัติแต้มแบบตรวจสอบย้อนหลังได้ — ใช้ปุ่มปรับแต้มเป็นค่าเริ่มต้นเสมอสำหรับงานประจำวัน
เบอร์โทรซ้ำกันได้ ระบบไม่บล็อก
ระบบไม่ตรวจสอบว่าเบอร์โทรที่กรอกตอนเพิ่ม/แก้ไขสมาชิกซ้ำกับสมาชิกคนอื่นในระบบหรือไม่ — เพิ่มสมาชิกสองคนด้วยเบอร์เดียวกันได้โดยไม่มีคำเตือนใดๆ ถ้าต้องการเบอร์ไม่ซ้ำ ต้องตรวจสอบเองก่อนเพิ่ม (ค้นหาเบอร์ในช่องค้นหาก่อนกด + เพิ่ม)
แต้มหมดอายุแบบ FIFO ทีละก้อนตามวันที่ได้รับ ไม่ใช่หมดพร้อมกันทั้งยอด
ถ้าเปิดใช้แต้มหมดอายุ (ตั้งจำนวนเดือนที่เมนูตั้งค่า) แต้มแต่ละก้อนจะมีวันหมดอายุของตัวเองตามวันที่ได้แต้มก้อนนั้นมา + จำนวนเดือนที่ตั้งไว้ (ไม่ใช่นับจากยอดรวมหรือวันมาใช้บริการครั้งล่าสุด) ระบบใช้ลำดับ FIFO กินแต้มก้อนเก่าสุดก่อนเสมอเวลาใช้แต้ม/แลกคูปอง เพื่อไม่ให้แต้มใหม่หมดอายุไปพร้อมแต้มเก่า การตัดแต้มหมดอายุจริงรันวันละครั้งจากเครื่องที่ร้านเท่านั้น (ไม่ใช่เครื่อง standby/cloud) และรันเฉพาะช่วงเวลาทำการที่ตั้งไว้ — ถ้าร้านปิดเครื่องทั้งวัน การตัดแต้มของวันนั้นจะข้ามไปจนกว่าจะเปิดเครื่องอีกครั้ง
บิลถูกยกเลิกหลังลูกค้าได้ OTP คูปองแล้ว — คูปองกลับมาใช้ได้ใหม่ ไม่เสียแต้ม
ตั้งแต่ลูกค้ากดขอ OTP คูปองจนถึงพนักงานปิดบิล คูปองจะอยู่ในสถานะ “จองไว้” โดยยังไม่หักแต้มจริง — การหักแต้มเกิดขึ้นตอนปิดบิลสำเร็จเท่านั้น ถ้าบิลใบนั้นถูกยกเลิก/ยกเลิกการขายก่อนปิด คูปองจะถูกปลดกลับเป็น “ใช้ได้” โดยอัตโนมัติให้ลูกค้าใช้ใหม่ได้ และไม่มีแต้มถูกหักไปเลย
คูปองแบบ “ใช้ซ้ำได้” กลับมาใช้ได้ทันทีหลังปิดบิล ต่างจากคูปองปกติ
คูปองปกติ (ใช้ครั้งเดียว) เมื่อใช้เสร็จ (ปิดบิลสำเร็จ) จะกลายเป็น “ใช้แล้ว” ถาวร ต้องรอแจกใหม่ถึงจะใช้ได้อีก ส่วนคูปองที่ตั้งเป็น “ใช้ซ้ำได้” พอปิดบิลสำเร็จ สถานะจะเด้งกลับเป็น “ใช้ได้” ทันที ให้สมาชิกคนเดิมกดใช้ซ้ำได้เรื่อยๆ โดยไม่ต้องแจกใหม่ทุกครั้ง (แต้มยังถูกหักตามจำนวนที่ตั้งไว้ทุกครั้งที่ใช้ ถ้าคูปองนั้นมีเงื่อนไขใช้แต้มแลก)
รหัส OTP ทั้งคูปองและ Bottle Keep มีอายุ 30 นาทีเท่ากัน และรหัสใหม่ทับรหัสเก่าทันที
ทั้งรหัสใช้คูปองและรหัสเบิกเหล้าฝาก (Bottle Keep) เป็นรหัส 6 หลัก อายุใช้งาน 30 นาทีนับจากที่ลูกค้ากดขอ — ถ้าเกินเวลาแล้วยังไม่ได้ใช้ พนักงานกรอกรหัสจะขึ้น “หมดอายุ” ลูกค้าต้องกดขอรหัสใหม่จากหน้าเดิม การกดขอรหัสใหม่ (ครั้งที่ 2 ขึ้นไป) จะทำให้รหัสเก่าใช้ไม่ได้ทันที แม้จะยังไม่ครบ 30 นาทีก็ตาม
จอเลือกสมาชิก (Demo) ในแอปลูกค้าไม่มีในระบบจริง
จอเลือกสมาชิกและปุ่ม “+ คะแนน (฿500)” ที่เห็นในแอปลูกค้าของ sandbox/demo นี้เปิดใช้เฉพาะตอนตั้งค่าโหมดทดสอบ เพื่อให้ทดสอบได้โดยไม่ต้องล็อกอิน LINE จริง — หน้าร้านจริงจะไม่มีจอเลือกสมาชิกหรือปุ่มเพิ่มแต้มลัดนี้เลย ลูกค้าจริงเข้าได้ทางเดียวคือผ่านการล็อกอิน LINE เท่านั้น