บัตรกำนัล คูปอง และแพ็กเกจ (ถ้าเปิดใช้งานสำหรับร้านของคุณ)
สร้างและจัด การมูลค่าจ่ายล่วงหน้า (บัตรกำนัล) ส่วนลด (คูปอง) และชุดเซสชัน (แพ็กเกจ) POS แลก; Admin ตั้งค่าและติดตาม

สามประเภทสินทรัพย์
| สินทรัพย์ | คืออะไร | ขายที่ | แลกที่ |
|---|---|---|---|
| บัตรกำนัล | มูลค่าดอลลาร์จ่ายล่วงหน้า (เช่น บัตรของขวัญ $100) | เคาน์เตอร์ POS หรือออนไลน์ | เช็คเอาท์ (วิธีชำระ) |
| คูปอง | ส่วนลด (บริการฟรี, %, $ คงที่ หรือซื้อ X แถม Y); เลือกระบุชื่อผู้ถือได้ | Admin (ออกเป็นชุด) | เช็คเอาท์ (วิธีชำระ) |
| แพ็กเกจ | ชุดเซสชันจ่ายล่วงหน้า (เช่น 5× นวดเนื้อเยื่อลึก) | เคาน์เตอร์ POS, Admin หรือออนไลน์ | รายการบริการ (ไม่ใช่เช็คเอาท์) |
ทั้งสามตามรูปแบบ เทมเพลต → อินสแตนซ์: ออกแบบเทมเพลต (กฎ) แล้วขาย/ออกอินสแตนซ์จากมัน
เทมเพลตบัตรกำนัล
Admin → จัดการบัตรกำนัล → แท็บเทมเพลต
| ฟิลด์ | วัตถุประสงค์ |
|---|---|
| ชื่อ | แสดงระหว่างขายและบนบัตรกำนัล |
| คำนำหน้ารหัส | ตัวอักษรแรกของรหัสที่สร้าง (เช่น GV-) |
| มูลค่าหน้าบัตร | จำนวนที่ผู้ถือใช้ได้ |
| มูลค่าแปรผัน | เมื่อเปิด ผู้ซื้อกำหนดจำนวนเองตอนขายแทนมูลค่าหน้าบัตรคงที่ |
| ราคาขาย | ผู้ซื้อจ่ายเท่าไหร่ (อาจต่างจากมูลค่าหน้าบั ตรสำหรับโปรโมชัน) |
| อายุการใช้งาน | ค่า + หน่วย (วัน / เดือน / ปี) นับจากการขาย |
| ใช้ได้ตั้งแต่ / ถึง | ช่วงเวลาคงที่ที่แลกได้ (ไม่บังคับ) |
| ขั้นต่ำคำสั่งซื้อ | ยอดรวม Visit ขั้นต่ำที่ต้องการเพื่อแลก |
| หมวดบริการที่ใช้ได้ | จำกัดการแลกเฉพาะบางหมวดบริการ (ว่าง = ทั้งหมด) |
| อนุญาตให้ใช้บางส่วน | เปิดตามค่าเริ่มต้น — ผู้ถือใช้ยอดคงเหลือได้หลายครั้งจนหมด; ปิดหมายถึงใช้หมดในครั้งเดียว |
อินสแตนซ์บัตรกำนัล
อินสแตนซ์ถูกสร้างเมื่อบัตรกำนัลขายที่ POS (ขายบัตรกำนัล) หรือออนไลน์ แต่ละอินสแตนซ์มีรหัสเฉพาะ ยอดคงเหลือ และวันหมดอายุ และแสดงในแท็บบัตรกำนัลที่ขายแล้ว ซึ่งส่งเป็นของขวัญทางอีเมลได้จากที่นั่น (ส่งของขวัญ)
เทมเพลตคูปอง
Admin → จัดการคูปอง → แท็บเทมเพลต
| ฟิลด์ | วัตถุประสงค์ |
|---|---|
| ชื่อ | แสดงให้ลูกค้าและที่ POS |
| ประเภทส่วนลด | free_service, percentage_discount, fixed_discount หรือ buy_x_get_y |
| มูลค่าส่วนลด | ลด % หรือ $ (หรือบริการฟรี/แถม) |
| จำนวนส่วนลดสูงสุด | เพดาน $ ของส่วนลดแบบเปอร์เซ็นต์ |
| วันที่ถูกต้อง | วันจากออกจนหมดอายุ |
| ขั้นต่ำคำสั่งซื้อ | ยอดรวม Visit ขั้นต่ำที่ต้องการ |
| บริการที่ใช้ได้ | คูปองใช้กับบ ริการไหน (ว่าง = ทั้งหมด) |
| โหมดการใช้งาน / จำนวนใช้สูงสุด / จำนวนทั้งหมด | รหัสหนึ่งแลกได้กี่ครั้ง และเทมเพลตออกรหัสได้รวมกี่รหัส |
| พื้นฐานค่าคอมมิชชัน | คำนวณคอมมิชชันนักบำบัดแบบ after_discount (ค่าเริ่มต้น) หรือจากราคาก่อนลด — สิ่งนี้เปลี่ยนค่าตอบแทนนักบำบัด |
| วิธีชำระที่ยกเว้น | วิธีชำระที่ใช้ร่วมกับคูปองไม่ได้ |
| คูปองระบุชื่อ | เมื่อเปิด ต้องระบุตัวผู้ถือตอนแลก — เฉพาะลูกค้าที่กำหนดใช้ได้ |
ออกคูปอง
คูปองออกจาก Admin เป็นชุดครั้งละสูงสุด 100 รหัสจากเทมเพลต พร้อมวันหมดอายุ (ไม่บังคับ) รหัสไม่ผูกกับลูกค้าตอนออก; ทำเครื่องหมายเทมเพลตเป็นระบุชื่อหากต้อ งระบุตัวผู้ถือ รหัสที่ออกแล้วแสดงในแท็บคูปองที่ออกแล้ว และป้อนที่ POS เช็คเอาท์
เทมเพลตแพ็กเกจ
Admin → จัดการแพ็กเกจ → แท็บเทมเพลต
| ฟิลด์ | วัตถุประสงค์ |
|---|---|
| ชื่อ | เช่น "5× นวดเนื้อเยื่อลึก 60 นาที" |
| รหัส | รหัสแพ็กเกจที่จำเป็น (เช่น PKG-001) |
| รายการ | รายการ JSON ของบริการที่รวม (ID บริการ + จำนวน) |
| ราคาขาย | ผู้ซื้อจ่ายเท่าไหร่สำหรับชุด |
| วันที่ถูกต้อง | วันจากซื้อจนหมดอายุ |
| โอนได้ | ผู้ถือส่งต่อแพ็กเกจให้คนอื่นได้หรือไม่ |
| ขายออนไลน์ | เปิดการขายออนไลน์; ต้องเป็นแพ็กเกจที่โอนไม่ได้ และตั้ งรหัสนโยบายออนไลน์ + เวอร์ชัน |
อินสแตนซ์แพ็กเกจ
ขายที่ POS, จาก Admin หรือออนไลน์ และแสดงในแท็บแพ็กเกจที่ขายแล้ว แต่ละอินสแตนซ์ติดตามเซสชันคงเหลือต่อประเภทบริการ การแลกเกิดที่รายการบริการ (ไม่ใช่ขั้นตอนชำระ) — ดู การชำระ → แพ็กเกจ
การขายออนไลน์และการดำเนินงานพาณิชย์
บัตรกำนัลและแพ็กเกจขายออนไลน์ได้ด้วย คำสั่งซื้อออนไลน์ไหลจาก payment_pending → paid → fulfilled; ติดตามได้ที่ Admin → การดำเนินงานพาณิชย์ (commerce.operations.read) ซึ่งลองส่งมอบหรือแจ้งเตือนลูกค้าใหม่ได้เมื่อขั้นตอนใดล้มเหลว
การหมดอายุ
ทั้งสามประเภทมีการหมดอายุอัตโนมัติ:
- Celery task ทุกคืน (
expire_assets) ทำงานตอนเที่ยงคืนเวลาแพลตฟอร์ม ทำเครื่องหมายอินสแตนซ์ที่เลยวันหมดอายุเป็นexpired - สินทรัพย์หมดอายุแลกไม่ได้
- การหมดอายุมองเห็นในรายละเอียดอินสแตนซ์และรายงาน
การแลกข้ามสาขา (Twin)
ถ้าร้านอยู่ในกา รดำเนินงานร่วม Twin:
- บัตรกำนัลที่ขายจากร้าน A แลกได้ที่ร้าน B
- ร้าน Twin ใช้กองมูลค่าร่วมกัน (
settlement_mode = shared_poolไม่มีอัตรา settlement) การแลกข้ามสาขาจึงไม่สร้างรายการ settlement ระหว่างสาขา - เป็นอัตโนมัติเมื่อ Twin ใช้งาน; ไม่ต้องตั้งค่าเพิ่ม
เคล็ดลับ
- บัตรกำนัลมูลค่าแปรผัน: มีประโยชน์สำหรับยอดของขวัญที่กำหนดเอง ผู้ซื้อตั้งราคาเองที่ POS
- การกำหนดเป้าหมายคูปอง: ทำเครื่องหมายเทมเพลตเป็นระบุชื่อเมื่อรหัสต้องใช้โดยลูกค้าที่มอบให้เท่านั้น; รหัสที่ไม่ระบุชื่อใครถือก็แลกได้
- คอมมิชชันแพ็กเกจ: นักบำบัดได้คอมมิชชันจากราคาเมนูของบริการ ไม่ใช่ราคาลดของแพ็กเกจ ทำให้ค่าตอบ แทนยุติธรรมไม่ว่าลูกค้าจ่ายอย่างไร