แผนผังชั้นและโต๊ะ
ตัวแก้ไข Floor Plan คือผืนผ้าใบสำหรับจัดวางโต๊ะของคุณแบบภาพ ส่วนหน้า Tables คือมุมมองการทำงานรายโต๊ะสำหรับดูรายละเอียดและคำสั่งดำเนินการ ทั้งสองหน้าทำงานบนข้อมูลโต๊ะชุดเดียวกัน
ชั้น
ชั้นใช้จัดกลุ่มโต๊ะตามตำแหน่งจริง เช่น "Main Hall", "Mezzanine" หรือ "Outdoor Patio" คุณสร้างและจัดการชั้นได้จาก Settings > ร้านอาหาร
คาเฟทุกแห่งต้องมีอย่างน้อยหนึ่งชั้น โต๊ะทุกตัวต้องถูกกำหนดให้อยู่บนชั้นใดชั้นหนึ่งเสมอ คุณสามารถจัดลำดับชั้นด้วยปุ่ม move-up และ move-down และชั้นบนสุดจะกลายเป็นค่าเริ่มต้นเมื่อเปิดแท็บ Floor Plan หน้า Floor Plan ยังมีปุ่ม "All floors" สำหรับดูโต๊ะทั้งหมดรวมกัน
ตัวแก้ไข Floor Plan
ตัวแก้ไข Floor Plan แสดงบนผืนผ้าใบขนาด 1200 x 720 พร้อมกริด 10 พิกเซล โต๊ะจะปรากฏเป็นรูปทรงตามตำแหน่งที่บันทึกไว้ ตัวแก้ไขรองรับ 2 โหมดการแสดงผล:
| โหมด | เหมาะสำหรับ |
|---|---|
| 2D | แก้ไขและจัดวาง ลากโต๊ะ เพิ่มหรือลบ เปลี่ยนชื่อ |
| 3D | ใช้สำหรับพรีเซนต์และเดินดูผัง ผืนผ้าจะเอียงด้วย CSS perspective เพื่อให้ได้มุมมองแบบสถาปนิก การลากถูกปิดใช้งานในโหมด 3D เพราะการแมปพอยน์เตอร์บนผืนผ้าที่เอียงทำได้ไม่ชัดเจน |
การเพิ่มและจัดตำแหน่งโต๊ะ
- เปิด ร้านอาหาร > Floor Plan
- เลือกชั้นเป้าหมายจากปุ่มชั้นด้านบน
- คลิก Add Table โต๊ะใหม่จะปรากฏที่จุดกำเนิดของผืนผ้า พร้อมรูปทรง ขนาด และจำนวนที่นั่งเริ่มต้น
- ลากตัวโต๊ะไปยังตำแหน่งที่ต้องการ ตำแหน่งจะถูกบันทึกอัตโนมัติเมื่อคุณปล่อยปุ่มเมาส์
- ทำซ้ำสำหรับทุกชุดที่นั่ง
ตำแหน่งจะสแนปเข้ากริด 10 พิกเซล เพื่อให้โต๊ะเรียงตัวเป็นระเบียบโดยไม่ต้องวางแบบเป๊ะระดับพิกเซล
คุณสมบัติโต๊ะ
โต๊ะทุกตัวมีฟิลด์ที่แก้ไขได้ดังนี้:
| ฟิลด์ | ความหมาย |
|---|---|
| Code | ตัวระบุสั้นๆ ที่พิมพ์บน QR และมองเห็นได้สำหรับพนักงาน ต้องไม่ซ้ำกันภายในคาเฟของคุณ |
| Display Name | ป้ายชื่อยาวกว่าสำหรับพนักงาน เช่น "Window 3" หรือ "Booth A" |
| Seat Count | จำนวนที่นั่งของโต๊ะ ค่าเริ่มต้นคือ 2 |
| Shape | เลือกได้ระหว่าง square, rectangle horizontal, rectangle vertical, round |
| Size | จำนวนเต็ม 1 ถึง 10 ควบคุมขนาดที่แสดงในตัวแก้ไขและในมุมมอง 3D |
| Floor | ชั้นที่โต๊ะนี้สังกัดอยู่ สามารถย้ายโต๊ะระหว่างชั้นได้โดยแก้ฟิลด์นี้ |
| State | idle, in_use หรือ out_of_order |
สถานะโต๊ะ
| State | ความหมาย |
|---|---|
| idle | ไม่มีเซสชันที่กำลังใช้งาน ลูกค้าจะยังสั่งไม่ได้จนกว่าพนักงานจะนั่งให้ |
| in_use | มีรหัสความปลอดภัยที่ใช้งานอยู่ ลูกค้าสแกน QR และสั่งได้ |
| out_of_order | โต๊ะไม่พร้อมใช้งาน ผังจะแสดงแบบจาง และหน้าจอ QR จะแจ้งว่าใช้งานไม่ได้ ใช้สำหรับงานซ่อมหรือปัญหาเฟอร์นิเจอร์ |
การให้ลูกค้านั่งโต๊ะ
ถ้าต้องการรับคำสั่งซื้อจากโต๊ะ พนักงานต้องนั่งลูกค้าให้เรียบร้อย การนั่งลูกค้าจะออกโค้ดความปลอดภัยและย้ายโต๊ะเข้าสู่สถานะ in_use
- ที่หน้า Tables หรือจากเมนูคำสั่งของ Floor Plan ให้เลือกโต๊ะ
- คลิก Seat Customer (มีป้ายกำกับว่า "Open Table" ด้วย)
- ระบบจะสร้างรหัสความปลอดภัย 6 หลักและแสดงให้เห็น
- ส่งรหัสนี้ให้ลูกค้า ลูกค้าจะพิมพ์รหัสหลังจากสแกน QR
รหัสจะถูกแสดงเป็นข้อความธรรมดาเฉพาะตอนสร้าง และตอนที่ผู้ดูแลเปิดกล่องโต้ตอบ Show Code ของโต๊ะที่นั่งแล้วเท่านั้น จากนั้นมันจะถูกแฮชฝั่งเซิร์ฟเวอร์ รหัสหมดอายุหลังจากระยะเวลาค่าเริ่มต้น และสามารถหมุนใหม่หรือรีเซ็ตได้ทุกเมื่อ
การแสดงและหมุนรหัส
- Show Code แสดงรหัสข้อความธรรมดาที่แคชไว้ของโต๊ะที่เปิดอยู่ เหมาะเวลาลูกค้าฟังไม่ทันครั้งแรก การทำงานนี้ไม่หมุนรหัสและไม่ทำให้ QR เดิมใช้ไม่ได้
- Rotate QR สร้าง QR token ใหม่สำหรับโต๊ะ สติ๊กเกอร์ QR เดิมจะใช้ไม่ได้ เหมาะเมื่อคุณพิมพ์สติ๊กเกอร์ใหม่หรือสงสัยว่ามีการแชร์ QR เดิมออกไปภายนอก
การปิดโต๊ะ
เมื่อลูกค้าออกไปโดยไม่มีบิลค้าง ให้คลิก Close Table รหัสความปลอดภัยจะหมดอายุทันที โต๊ะจะกลับสู่ idle และการสแกนครั้งต่อไปต้องเริ่มนั่งใหม่
ถ้ายังมีออเดอร์ค้างที่โต๊ะ ให้ใช้ Settle Check แทน การปิดบิลจะปิดออเดอร์ที่เปิดอยู่ทั้งหมดด้วยวิธีชำระเงินที่เลือก แล้วคืนโต๊ะสู่สถานะ idle ดูกระบวนการปิดบิลได้ใน หน้า Orders
QR Codes
โต๊ะทุกตัวมี QR code ที่เข้ารหัส URL handy.cafe/{cafe-slug}/{table-code} โดยมี query parameter ที่เก็บ QR token เพื่อยืนยันความถูกต้องของสติ๊กเกอร์ เมื่อลูกค้าสแกน QR:
- หน้ามีเมนูจะตรวจสอบ slug และ table code กับ cloud API
- ถ้าโต๊ะอยู่ในสถานะ
in_useระบบจะขอรหัสความปลอดภัย 6 หลัก - เมื่อยืนยันสำเร็จ ระบบจะออก session token และเก็บไว้ทั้งในคุกกี้และตัวสำรอง Bearer token สาเหตุที่มี Bearer fallback เพราะ iPhone Safari อาจบล็อก third-party cookies ในบางการตั้งค่า
สร้าง QR แบบพิมพ์ได้จากหน้า Tables แต่ละโต๊ะจะมีตัวอย่าง QR ให้บันทึกเป็น SVG หรือ PNG ได้ พิมพ์สติ๊กเกอร์ใหม่ทุกครั้งที่คุณหมุน QR token หรือเปลี่ยน slug
เคล็ดลับการออกแบบผังพื้น
- เริ่มจากวางผังจริงลงบนผืนผ้าใบก่อน วางทางเข้าชิดขอบด้านหนึ่งแล้วค่อยไล่เข้าด้านใน วิธีนี้ช่วยให้พนักงานมองผังได้ง่ายขึ้น
- แยกโต๊ะตามชั้นแม้ร้านจะมีเพียงชั้นเดียว การแยกเป็น "Hall" กับ "Terrace" จะช่วยให้กรองแดชบอร์ดออเดอร์ตามโซนได้
- ใช้ค่า Size ที่ใหญ่ขึ้นสำหรับบูธที่นั่งได้ 4 คนขึ้นไป และใช้ค่าที่เล็กกว่าสำหรับเก้าอี้เคาน์เตอร์
- ทำเครื่องหมายโต๊ะเป็น
out_of_orderเมื่อเฟอร์นิเจอร์ต้องซ่อม เพื่อไม่ให้ลูกค้าสั่งโต๊ะนั้น อย่าลบเรคคอร์ดโต๊ะเว้นแต่ที่นั่งนั้นจะหายไปถาวร