เริ่มใช้และดูแล Platalay Desk
สำหรับเจ้าของร้าน แอดมิน และผู้ดูแลเซิร์ฟเวอร์
1. รับไฟล์และติดตั้งโปรแกรม
- รับตัวติดตั้งหรือ ZIP รุ่นที่ผู้ดูแลยืนยัน พร้อมไฟล์ร้าน
store-profile.jsonที่ลงนามแล้ว รับบัญชีแอดมินเป็นการส่วนตัว แยกจาก ZIP - ถ้าเป็น ZIP ให้คลิกขวา → Extract All / แยกทั้งหมด ลงโฟลเดอร์ถาวร ห้ามเปิดโปรแกรมจากภายใน ZIP และห้ามย้ายไฟล์เฉพาะ .exe ออกมาเดี่ยว ๆ
- ถ้าเป็นตัวติดตั้ง ให้ทำตามขั้นตอนของตัวติดตั้งที่ผู้ดูแลจัดให้ ใช้ทางลัดประจำร้านที่เตรียมไว้ ตรวจชื่อร้านและ URL ทุกครั้งที่เปิดครั้งแรก
- สำหรับผู้ดูแลที่ต้องเปิดโปรไฟล์เอง ใช้
Platalay Desk.exe --store-profile="C:\Platalay\store-profile.json"โดยแก้เส้นทางให้ตรงไฟล์จริง ไม่แก้ JSON ที่ลงนาม - เข้าสู่ระบบ Live Chat ด้วยบัญชีของตัวเอง หากเลือกรักษาการเข้าสู่ระบบ ให้ใช้บัญชี Windows ของตัวเองเท่านั้น LINE OA ต้องเข้าสู่ระบบของ LINE แยก อาจต้องสแกน QR ใหม่เมื่อเซสชันหมดอายุ
- หากขึ้นผิดร้าน / ตรวจสิทธิ์ไม่ได้ ให้หยุดและแจ้งผู้ดูแล ไม่ลบโฟลเดอร์โปรแกรมหรือข้อมูลผู้ใช้เพื่อแก้เอง
สำหรับรอบพัฒนาเซ็ต 5 ยังไม่เผยแพร่รุ่นใหม่ ให้ใช้คู่มือนี้ตรวจชุดทดสอบก่อน การส่งมอบตัวติดตั้งจริงรอครบทั้ง 6 เซ็ต
2. เจ้าของร้านตรวจการตั้งค่าครั้งแรก
- เปิด ส่งมอบและดูแลร้าน ตรวจรหัสร้าน URL ฐานข้อมูล UTF8 และสถานะสิทธิ์
- ใส่ชื่อเรียกภายใน ช่องทางติดต่อผู้ดูแล และเวลาที่ทีมดูแลให้บริการ ข้อมูลนี้แสดงในหน้าดูแลร้าน ไม่เปลี่ยน URL หรือโปรไฟล์ร้าน
- ไป บัญชีแอดมิน เปลี่ยนรหัสผ่านเจ้าของ และเพิ่มบัญชีให้แต่ละคน แอดมินทั่วไปแก้ค่าร้านหรือส่งออกข้อมูลไม่ได้
- คัดลอกโค้ดฝังจากหน้าดูแลร้าน ไปวางที่เว็บไซต์เพียงครั้งเดียว ตรวจ URL เว็บไซต์ว่าอยู่ในรายการที่อนุญาต หากไม่อยู่ ให้ผู้ดูแลเซิร์ฟเวอร์แก้
WIDGET_ALLOWED_ORIGINSแล้วรีสตาร์ต ไม่ใช้ * เพื่อให้ผ่านทุกเว็บไซต์ - ตั้งค่า Telegram, LINE และ Thunder เท่าที่ใช้งานจริง ไม่ใส่ API key ในโค้ดฝังหรือไฟล์รายงานปัญหา
- เปิดเว็บจริงจากคอมและมือถือ ส่งข้อความกับรูป ทดสอบแอดมินตอบกลับและเปิดประวัติหลัง reload ทดสอบเสียงรอเกิน 5 นาทีสำหรับ Web/Telegram โดยใช้ลูกค้าทดสอบ
3. ทำงานประจำวัน
- แชทลูกค้า: รับเคส Web + Telegram ตอบข้อความ รูป Emoji และตรวจสถานะส่ง หาก Failed ให้ดูสาเหตุก่อน Retry เพื่อไม่ส่งซ้ำ
- LINE OA: ตอบผ่านหน้า OA โดยตรง ใช้ข้อมูลสถานะที่ OA แสดง ไม่ถือว่าสถานะรอตอบหรือประวัติจาก OA ซิงก์ครบกับระบบเรา
- ตรวจสลิป: เลือกรูป กดตรวจด้วยมือ อ่านยอด บัญชีร้าน และสลิปซ้ำ ผล “ตรวจพบ” ไม่เท่ากับอนุมัติเครดิตแล้ว ให้ผู้มีหน้าที่ตรวจและอนุมัติตามขั้นตอนร้าน
- เสียงเตือน: ตรวจเสียง Windows และระดับเสียงโปรแกรม อนุญาตแจ้งเตือน หากพักเสียงไว้ 1 ชั่วโมง ให้ตรวจว่าเสียงกลับมาเมื่อครบเวลา
- ปิดโปรแกรม: ปุ่ม × อาจย่อไปข้างนาฬิกาตามการตั้งค่า ใช้ “ออกจากโปรแกรม” เมื่อต้องการหยุดจริง ก่อนอัปเดตให้ส่งข้อความร่างและบันทึกงานก่อน
4. สิทธิ์ใช้งานและการต่ออายุ
ทดลองเริ่มนับ 24 ชั่วโมงเมื่อผู้ดูแลศูนย์ยืนยันเปิดสิทธิ์ รายเดือนต่อจากเวลาที่เหลือหรือเริ่มใหม่เมื่อหมดอายุ ต้องนำไฟล์สิทธิ์ไปติดตั้งและรีสตาร์ตเซิร์ฟเวอร์ร้าน การดาวน์โหลดไฟล์เฉย ๆ ยังไม่เปิดใช้งาน
หมดอายุแล้วไม่ลบประวัติ เจ้าของร้านยังเข้าสู่หน้าดูแลร้านด้วยเบราว์เซอร์เพื่อส่งออกข้อมูลหรือเตรียมรายงานปัญหาได้ แต่ API แชทและ webhook ถูกปิด ข้อความที่ส่งเข้าระหว่างปิดอาจไม่ถูกเก็บครบ
5. สำรองข้อมูล — สำหรับผู้ดูแลเซิร์ฟเวอร์
สำรองเป็นไฟล์ PostgreSQL ที่เข้ารหัส AES-256-GCM (.plb) เก็บฐานข้อมูลทั้งร้าน รวมรูป สิทธิ์ และค่าการเชื่อมต่อ กุญแจสำรองแยกอยู่ใน source/secrets/backup-key เก็บกุญแจและ .env แยกจากไฟล์สำรอง ในพื้นที่จำกัดสิทธิ์ ถ้ากุญแจหายจะถอดไฟล์ไม่ได้
ใช้คำสั่งจากโฟลเดอร์ชุดร้านที่มี compose.sh ซึ่งผูก project และ environment ของร้านไว้แล้ว:
./compose.sh run --rm backup once ./compose.sh run --rm backup list ./compose.sh run --rm backup status
ค่าเริ่มต้นสำรองทุกวัน เก็บ 7 ไฟล์ ต้องคัดลอกไฟล์เข้ารหัสออกไปอีกเครื่องหรือที่เก็บนอกเซิร์ฟเวอร์ด้วย ระบบนี้ยังไม่ส่งขึ้น cloud ให้อัตโนมัติ คำว่า status ผ่านหมายถึงมีไฟล์ล่าสุดตามเวลา ไม่ใช่หลักฐานว่ากู้คืนแล้ว ต้องทดสอบกู้คืนเป็นระยะ
กู้คืนโดยไม่เขียนทับฐานข้อมูลเดิม
- หยุดแอปของร้านชั่วคราวก่อนสลับฐานข้อมูล ตรวจรหัสร้าน origin ชื่อไฟล์ กุญแจ และข้อมูลวันสำรอง จดวันหมดอายุล่าสุดจากศูนย์ด้วย
- สร้างฐานข้อมูลใหม่ ชื่อลงท้าย
_restoreเช่นstore_restoreห้ามใช้ฐานข้อมูลร้านอื่นหรือฐานที่มีตารางอยู่ - สร้างฐานใหม่และกู้คืนใน project ร้านเดิม ตัวอย่างด้านล่างให้แทนชื่อไฟล์จากผล list:
./compose.sh stop app ./compose.sh exec db sh -c 'createdb -U "$POSTGRES_USER" store_restore' ./compose.sh run --rm -e PGDATABASE=store_restore \ backup restore platalay-YYYYMMDDTHHMMSSmmmZ-UUID.plb \ --confirm-empty-database
ระบบตรวจความถูกต้องของไฟล์เข้ารหัสก่อนรัน SQL ตรวจรหัสร้าน/URL จาก environment กับข้อมูลที่กู้คืน และทำทั้งหมดใน transaction ถ้าผิดจะไม่ทิ้งฐานที่กู้คืนค้างครึ่งหนึ่ง ห้ามแก้ STORE_ID เพื่อให้ไฟล์ของร้านอื่นผ่าน
- กู้คืนแล้ว เซสชันแอดมินและลูกค้าถูกเพิกถอน บรอดแคสต์ที่ยังไม่จบถูกยกเลิก LINE/Telegram/Thunder ถูกปิดก่อน เพื่อไม่ส่งข้อความหรือเรียกบริการซ้ำ
- ตรวจข้อมูลในฐานใหม่ก่อนเปลี่ยน
POSTGRES_DBของsource/.envให้ชี้ฐานที่กู้คืน จากนั้นใช้ชุดโค้ดล่าสุดทำ migration และเปิด app ใหม่ เก็บฐานเดิมไว้ก่อน ห้ามลบทันที - สิทธิ์รายเดือนในไฟล์สำรองอาจเก่ากว่าศูนย์ ให้นำไฟล์สิทธิ์ล่าสุดของร้านจากศูนย์มาติดตั้งใหม่และรีสตาร์ต วันหมดอายุไม่เริ่มนับใหม่จากวันกู้คืน
- เข้าสู่ระบบด้วยบัญชีเจ้าของ ตรวจชื่อ/รายละเอียด/แท็ก/รูป/ประวัติ/ผลตรวจสลิปและสิทธิ์ เปิด provider ทีละตัวหลังตรวจ API key และทดสอบข้อความจริงด้วยบัญชีทดสอบ
- สำรองฐานที่กู้คืนอีกครั้ง บันทึกชื่อไฟล์ วันเวลา และผลทดสอบก่อนส่งให้แอดมินใช้งาน หากไม่ผ่านให้กลับฐานเดิมตามแผนผู้ดูแล อย่าลอง restore ทับฐานที่มีข้อมูล
6. ส่งออกข้อมูล
เจ้าของร้านกด “ส่งออกข้อมูลร้าน” ในหน้าดูแลร้าน ได้ .ndjson: หนึ่ง JSON ต่อบรรทัด เริ่มด้วย manifest ตามด้วย customer, conversation, message, slip และ slipApproval ลงท้าย complete พร้อมจำนวนรายการ รูปที่เก็บในฐานข้อมูลอยู่ใน attachmentBase64 ส่วนไฟล์ภายนอกที่ระบบไม่ได้เก็บไม่ถูกรวม
ไม่รวมรหัสผ่าน เซสชัน API key ข้อมูล provider ดิบ หรือข้อมูลทั้งระบบสำหรับติดตั้งใหม่ ผลตรวจสลิปส่งออกเฉพาะสถานะและรายการอนุมัติ ถ้าต้องการกู้คืนผลละเอียดและการตั้งค่าครบให้ใช้ .plb รูปแบบส่งออกนี้ยังไม่มีปุ่มนำเข้ากลับ
ใช้ Chrome/Edge เพื่อบันทึกไฟล์แบบสตรีม หากเบราว์เซอร์ไม่รองรับจะจำกัดดาวน์โหลดแบบพักข้อมูลในหน่วยความจำที่ 64 MB หากไม่พบ complete ท้ายไฟล์ให้ส่งออกใหม่
7. เมื่อใช้งานติดขัด
- ตรวจอินเทอร์เน็ตและเปิดหน้าเว็บปกติ ตรวจชื่อร้าน วันหมดอายุ และสถานะบริการในหน้าดูแลร้าน
- ยังแก้ไม่ได้ กรอกประเภท หัวข้อ และขั้นตอนที่ทำในส่วน “แจ้งปัญหา” ดาวน์โหลด JSON ส่งให้ผู้ดูแลตามช่องทางติดต่อ ห้ามแนบรหัสผ่านหรือ API key
- ผู้ดูแลศูนย์กด “รับแจ้งปัญหา” แล้วนำเข้าไฟล์ รายงานรหัสเดิมไม่สร้างเรื่องซ้ำ ต้องตรงกับรหัสร้านและ URL ที่ลงทะเบียน หากร้านยังเปิดโปรแกรมไม่ได้ ใช้ “เพิ่มเรื่องจากโทรศัพท์หรือข้อความ” แล้วกรอกรหัสร้านที่มีในศูนย์แทนได้
- เปลี่ยนสถานะเป็นกำลังแก้ไข บันทึกวิธีแก้ก่อนปิดเรื่อง มีประวัติว่าใครบันทึกผล แล้วแจ้งกลับร้านผ่านช่องทางเดิม ไม่ได้ส่งข้อความอัตโนมัติ
รายการตรวจรับก่อนส่งมอบ
- โปรไฟล์ / URL / บัญชีเจ้าของตรงร้าน และไม่มีความลับใน ZIP สาธารณะ
- Web และช่องทางที่เปิดใช้ส่ง–รับข้อความ/รูปได้จริง; บริการที่ไม่ได้ใช้ยังปิดอยู่
- สิทธิ์ทดลอง/รายเดือนตรงกับศูนย์และตรวจหมดอายุแล้ว
- สำรองสำเร็จ กู้คืนลงฐานใหม่ได้ ล็อกอินใหม่และอ่านรูป/แชทเดิมได้
- เจ้าของส่งออกได้ แอดมินทั่วไปถูกปฏิเสธ รายงานปัญหานำเข้าได้และปิดเรื่องพร้อมวิธีแก้ได้
- จดผู้รับมอบ เวลา ผลทดสอบ และช่องทางรับแจ้งปัญหา เก็บกุญแจสำรองกับผู้รับผิดชอบ