คู่มือเจ้าของกิจการ

จัดการร้านรถเช่าให้รัน 24/7

ตั้งแต่สมัครครั้งแรกจนถึงปิดงบประจำเดือน — ทำตามขั้นตอนได้ทันที หรือจะแยกอ่านทีละหัวข้อก็ได้

อ่านประมาณ 12 นาที

ดูแลร้านจากมือถือได้เต็มฟังก์ชัน

ทุกหน้า admin ใช้งานบนมือถือได้ — ออกแบบ mobile-first ตั้งแต่การ์ด KPI ไปจนถึงปฏิทิน Gantt · เปิด LINE → แตะลิงก์ admin → ทำงานต่อได้เลย ไม่ต้องเปิดคอม

ตั้งค่าครั้งแรก

ใช้เวลาประมาณ 5 นาทีตั้งแต่สมัครจนเปิดรับจอง — Chaorod พาทำ Onboarding ทีละขั้นแบบมีไกด์

1. สมัครสมาชิก

ไปที่ /signup กรอกชื่อกิจการ ระบบจะสร้าง slug อัตโนมัติ เช่น “สมชายรถเช่า” → somchairent จากนั้นใส่อีเมล + รหัสผ่าน ติ๊กยอมรับข้อตกลง แล้วกดสมัคร

เลือก slug ให้ดี

slug จะกลายเป็น URL หน้าร้าน เช่น somchairent.chaorod.online เปลี่ยนทีหลังลำบาก — ถ้าจะ rebrand แนะนำใช้ custom domain แทน

2. Onboarding 5 ขั้น

หลังสมัคร ระบบจะพาไป /onboarding ทันที — ใช้เวลา ประมาณ 5 นาที

  1. ข้อมูลร้าน

    ที่อยู่ · เบอร์โทร · เวลาทำการ — ข้อมูลนี้จะโชว์ที่หน้าร้านลูกค้า
  2. ข้อมูลธนาคาร

    บัญชีรับโอนมัดจำจากลูกค้า — Chaorod จะสร้าง QR PromptPay จากเลขนี้ในหน้า checkout อัตโนมัติ
  3. เพิ่มรถคันแรก

    กรอกรุ่น · ทะเบียน · ราคา/วัน · อัปโหลดรูป (เก็บที่ Cloudflare R2)
  4. เชื่อม LINE Official Account

    ใส่ Channel Secret + Access Token — ข้ามได้ ทำทีหลังที่ /admin/settings
  5. พร้อมเปิดร้าน

    กดเปิด → หน้าร้านของคุณพร้อมรับลูกค้าทันทีที่ <slug>.chaorod.online

แดชบอร์ด

หน้าแรกของ admin (/admin) แสดงภาพรวมประจำวัน

  • KPI การ์ด — รายได้ · จำนวน booking · utilization · ลูกค้าใหม่
  • กราฟแนวโน้ม (sparkline) — 7/30/90 วันที่ผ่านมา + DeltaBadge เปรียบเทียบกับช่วงก่อนหน้า
  • การจองล่าสุด — เห็นสถานะ pending/confirmed ครบในที่เดียว
  • รถที่กำลังเช่าอยู่ — เห็นวันคืนรถใกล้สุด
demo.chaorod.online/admin
หน้าแดชบอร์ดของ admin แสดง KPI การ์ดและรถพร้อมเช่า
แดชบอร์ดประจำวัน — KPI · กราฟรายได้ · สถานะคลัง · งานที่ต้องทำวันนี้

จัดการรถ

ดูที่ /admin/cars — เพิ่ม · แก้ไข · ปิดสถานะรถ

เพิ่มรถใหม่

  1. กดปุ่ม + เพิ่มรถ มุมขวาบน
  2. ใส่รุ่น · ยี่ห้อ · ปี · ทะเบียน · ประเภท (eco/sedan/SUV/van/pickup)
  3. เลือกเกียร์ (auto/manual) · จำนวนที่นั่ง
  4. กำหนดราคาเช่าต่อวัน (base rate — ปรับยืดหยุ่นต่อใน Pricing)
  5. อัปโหลดรูป (หลายรูปได้ — เก็บที่ R2 cloud)
  6. เลือกเจ้าของรถ (ดู Owners) — เว้นว่าง = รถของร้านเอง
  7. กด บันทึก

เปลี่ยนสถานะรถ

เข้าหน้ารายละเอียดรถที่ /admin/cars/{id} → เปลี่ยนสถานะเป็น กำลังซ่อม หรือ ไม่พร้อมเช่า เพื่อปิดรับจองชั่วคราว

demo.chaorod.online/admin/cars
หน้าจัดการรถใน admin
รายการรถทั้งหมดใน fleet — เห็นสถานะ ราคาฐาน รูปประจำคัน ครบในการ์ดเดียว

การจอง · ตั้งแต่จองจนคืนรถ

หัวใจหลักของระบบ — ตั้งแต่ตรวจสลิปจนคืนเงินประกัน จบครบในที่เดียวที่ /admin/bookings

มัดจำ ≠ เงินประกัน — แยกให้ชัด

  • มัดจำ — เงินที่ลูกค้าโอนตอนจอง (PromptPay) เพื่อล็อกคิว · หักเข้าค่าเช่า · คืนให้เมื่อยกเลิกหรือปฏิเสธสลิป
  • เงินประกัน — เงินค้ำที่ลูกค้าวางตอนรับรถ (มักเป็นเงินสด) · คืนเต็มเมื่อคืนรถไม่มีปัญหา หรือหักค่าเสียหายก่อนคืน

ภาพรวมทั้งวงจร

การจองทุกใบจะวิ่งตามขั้นตอนนี้ — ตั้งแต่ลูกค้าจ่ายมัดจำ จนคืนเงินประกันเสร็จ:

  • pending_payment → ลูกค้ายังไม่อัปโหลดสลิป
  • pending_admin_approval → อัปโหลดแล้ว รอเราตรวจ
  • confirmed → อนุมัติ รอวันรับรถ
  • active → รับรถแล้ว กำลังเช่า
  • returned → คืนรถแล้ว — มี sub-state deposit_hold_status:
    • none · ไม่มีเงินประกัน จบเลย
    • held · เงินประกันส่วนหนึ่งยัง hold อยู่ รอครบกำหนด
    • released · คืนเงินประกันครบแล้ว
    • forfeited · ยึดเงินประกันทั้งก้อน (ลูกค้าทำผิดสัญญา)
  • cancelled / expired → ยกเลิก

หน้ารายการ Booking

/admin/bookings — แสดงทุก booking ของร้าน + KPI 4 ตัว · status chips · ค้นหา · Export CSV

  • คลิกแถว → preview drawer เปิดด้านขวา (ข้อมูลสรุปเร็ว ๆ + ปุ่ม “ดูเต็มหน้า”)
  • คลิก “ดูเต็มหน้า” → ไปหน้า /admin/bookings/[id] — มีปุ่ม action ครบ
  • URL จำ filter ไว้ — ?status=active&q=ชื่อ share ลิงก์ให้ทีมได้
demo.chaorod.online/admin/bookings
หน้ารายการ booking ใน admin
รายการการจองทั้งหมด — KPI ด้านบน · status chips · คลิกแถวเปิด preview drawer

1. อนุมัติสลิป (Review Queue)

เมื่อสถานะ pending_admin_approval — ใช้หน้า /admin/bookings/review-queue ที่ออกแบบมาเพื่อ เคลียร์สลิปทีละใบเร็ว ๆ (keyboard-friendly)

  1. เปิด review-queue → ใบที่รอตรวจขึ้นทีละใบ
  2. ดูสลิปที่ลูกค้าอัปโหลด · ตรวจยอด + เวลา + เลขบัญชี
  3. กด ✅ อนุมัติ → สถานะเป็น confirmed + ส่ง LINE/Email แจ้งลูกค้าอัตโนมัติ + ใบถัดไปขึ้นมา
  4. กด ❌ ปฏิเสธ → ใส่เหตุผล → ลูกค้าได้ notification ทันที พร้อม CTA ให้อัปโหลดสลิปใหม่
ถ้าต้องตรวจครั้งละหลายใบ ใช้ review-queue จะเร็วกว่าเปิดทีละ booking มาก — สลับใบได้รวดเร็วกว่าหลายเท่า
demo.chaorod.online/admin/bookings/review-queue
หน้า review queue สำหรับตรวจสลิป
Review queue — สลิป + ปุ่ม approve/reject keyboard-friendly ใบถัดไปขึ้นมาทันทีหลัง action

2. รับรถ (Pickup)

เมื่อสถานะ confirmed และลูกค้ามาถึง — เปิดหน้า booking detail → sidebar ขวา จะมี section “บันทึกรับรถ”:

  1. กรอกเลขไมล์ตอนรับรถ (optional แต่แนะนำ — ใช้คำนวณค่าน้ำมัน/ระยะตอนคืน)
  2. กดปุ่ม ✓ บันทึกรับรถ → สถานะเปลี่ยนเป็น active + เริ่มสัญญาเช่า
ถ้าลูกค้ายังไม่ได้อัปโหลดบัตร ปชช + ใบขับขี่ — ระบบจะเตือนก่อนปล่อยรถ (KYC card บนหน้า detail จะแสดงสถานะเอกสารแต่ละชนิด)
หน้า booking detail ตอนสถานะ confirmed — มี section บันทึกรับรถ
หน้า booking detail (confirmed) — sidebar ขวามี form บันทึกรับรถ + ขยายเวลา + ยกเลิก

3. คืนรถ + คืนเงินประกัน

เมื่อสถานะ active ลูกค้าเอารถมาคืน — เปิด booking detail → sidebar ขวา จะเปลี่ยนเป็น section “คืนรถ + คืนเงินประกัน”

ช่องใช้ทำอะไร
เลขไมล์ตอนคืนใช้คำนวณค่าน้ำมัน/ส่วนต่างระยะทาง
หมายเหตุความเสียหายถ้ามีรอย/ขีดข่วน เขียนไว้ใน record
คืนทันที (฿)จำนวนที่โอนกลับให้ลูกค้าเลย — Default = เงินประกันเต็ม
Hold ส่วนที่เหลือ (วัน)ถ้าอยากกันไว้ก่อนเช็คสภาพรถ/รอใบสั่ง — 0/3/5/7/14 วัน
วิธีคืนเงินทันทีโอนธนาคาร / PromptPay / เงินสด — เลือกตามที่ลูกค้าสะดวก
อ้างอิง (TXN / ใบเสร็จ)เลขรายการธนาคาร ถ้ามี

บัญชีรับคืนเงินประกัน (ส่วนกลางหน้า) — ถ้าวิธีคืน = โอนธนาคาร ต้องกรอกบัญชีลูกค้าก่อน Save ถึงจะกดปุ่มยืนยันได้

กด ✓ บันทึกคืนรถ + คืนเงิน X ฿

  • สถานะเป็น returned
  • ถ้า Hold = 0 วัน → deposit_hold_status = released — จบเลย
  • ถ้า Hold > 0 วัน → deposit_hold_status = held — เข้า timeline รอครบกำหนด (ดูข้อ 4)
  • ส่ง LINE/Email แจ้งลูกค้า + แนบ “ใบรับรองคืนเงินประกัน” PDF
หน้า booking detail ตอนสถานะ active — form คืนรถ + คืนเงินประกัน
หน้า booking detail (active) — sidebar ขวาเป็น form คืนรถ + คืนเงิน · กลางหน้าเป็นบัญชีรับคืน

4. Hold เงินประกัน + Release (Deposit hold)

หลังคืนรถ ถ้าเลือก Hold ส่วนที่เหลือ — booking จะเข้า state returned + deposit_hold_status = held — sidebar ขวาจะแสดง Timeline เงินประกัน:

  • วันคืนรถ → จำนวนที่คืนทันที
  • นับวันถอยหลังจนครบ hold period
  • ถ้าครบกำหนดและไม่มีปัญหา → กด คืนส่วนที่เหลือ → status → released
  • ถ้าเจอความเสียหาย → กด หักจากเงินประกัน → ใส่จำนวน + เหตุผล → ส่วนที่เหลือคืนลูกค้า (หรือยึดทั้งหมด = forfeited)

ระบบเตือนเมื่อครบกำหนด

ระบบมีโจ๊บ notify_overdue_deposits ทำงานทุกวัน 09:05 — เมื่อ booking ครบกำหนด ระบบจะส่ง LINE + email เตือนเจ้าของร้าน ระบบไม่ได้คืนเงินอัตโนมัติ — เจ้าของร้านต้องโอนเงินคืนลูกค้าเอง แล้วกด คืนส่วนที่เหลือ ในระบบเพื่อบันทึก
หน้า booking detail ตอน deposit_hold_status=held — timeline เงินประกัน
Timeline เงินประกัน — แสดงวันคืนรถ · จำนวนที่คืนแล้ว · countdown ครบกำหนด + ปุ่ม release/หัก

5. สรุปเงินประกัน (หลัง Release)

เมื่อ deposit_hold_status เป็น released หรือ forfeited — sidebar จะเปลี่ยนเป็นการ์ด สรุปเงินประกัน แสดง:

  • เงินประกันเข้า (รับจากลูกค้าตอนรับรถ)
  • หัก (กี่รายการ + รวมเท่าไหร่)
  • คืนหลัง hold (ก้อนที่ปล่อยตอน release)
  • คืนรวม (ยอดสุทธิที่ลูกค้าได้กลับ)
  • ปุ่ม ใบรับรองคืนเงินประกัน (PDF) สำหรับ download
หน้า booking detail ตอน deposit_hold_status=released — สรุปเงินประกัน
สรุปเงินประกัน (หลัง released) — เงินประกันเข้า · หัก · คืนหลัง hold · คืนรวม + ปุ่ม PDF ใบรับรอง

6. คืนเงินกรณีพิเศษ (Generic Refund)

Section “คืนเงินอื่น ๆ” สำหรับกรณีที่ ไม่ใช่ deposit flow — เช่น:

  • ยกเลิกก่อนรับรถ → คืน lock fee
  • Goodwill — ค่าน้ำมันส่วนเกินที่ลูกค้าจ่ายเผื่อ
  • ปรับยอดเล็ก ๆ หลัง booking ปิดไปแล้ว

กรอกจำนวน + เหตุผล → ปุ่ม 💸 คืนเงิน → ระบบบันทึก ledger + ส่ง notification

Section นี้จะซ่อนเมื่อ deposit_hold_status = held — เพราะระหว่าง hold ควรใช้ “Timeline เงินประกัน” เพื่อให้ trail audit เคลียร์

7. ขยายเวลา (Extend)

ระหว่าง confirmed หรือ active — sidebar มี section ขยายเวลา ให้เลือกวันคืนใหม่ → ระบบ:

  1. เช็คว่ารถว่างช่วงเวลาขยายไหม (ถ้าชนกับ booking อื่น = error)
  2. คำนวณค่าเช่าเพิ่มอัตโนมัติตาม pricing rule
  3. อัปเดต end_at + บันทึก event ใน ledger

8. ยกเลิก Booking

Section “โซนอันตราย” — ใช้สำหรับสถานะ confirmed/active ที่ต้องยกเลิกกลางคัน

  • กดปุ่มยกเลิก → modal ขอเหตุผล (required)
  • ถ้ามีเงินประกันที่จ่ายแล้ว → ระบบเสนอ refund ให้
  • สถานะเป็น cancelled + ลูกค้าได้ notification

Walk-in (สร้าง booking เอง)

ลูกค้าเดินเข้าร้านไม่ผ่านระบบจอง → ไปที่ /admin/bookings/new ใส่ข้อมูลลูกค้า + เลือกรถ + วันที่ → ระบบสร้างให้ทันทีเป็นสถานะ confirmed (ข้ามขั้นตอนตรวจสลิป)

ปฏิทินรถ

/admin/calendar — แสดงเป็น Gantt chart (แกน X วันที่ · แกน Y คันรถ)

  • เห็นว่ารถคันไหนว่าง/ไม่ว่างช่วงไหน
  • คลิก booking bar → preview drawer เปิด
  • ใช้ตอบลูกค้าโทรถาม “รถคันนี้ว่างวันที่ X ไหม”
demo.chaorod.online/admin/calendar
ปฏิทินรถใน admin แสดง Gantt chart
ปฏิทินรถแบบ Gantt — แถวเป็นคันรถ คอลัมน์เป็นวันที่ booking bar แสดงทับช่วงที่ถูกจอง

ราคา + โปรโมชั่น

ตั้งราคาแบบยืดหยุ่น 3 ระดับ ที่ /admin/pricing

ระดับตัวอย่างใช้งาน
Globalทุกเสาร์-อาทิตย์ +20%
Per car typeSUV ราคาวันธรรมดา 1,800 บาท
Per carHonda City ทะเบียน xx ลด 10% ในเดือนนี้

สร้าง Pricing rule

  1. เลือกระดับ → เลือกรถ/ประเภท (ถ้าไม่ใช่ global)
  2. กำหนดเงื่อนไข — date range · weekday · ระยะเวลาเช่า (1-3d/4-7d/8+d)
  3. กำหนดการคิดราคา: override ราคาฐาน หรือ multiplier %
  4. บันทึก
การเปลี่ยนแปลงราคา ไม่กระทบ booking ที่ยืนยันแล้ว — มีผลกับการจองใหม่เท่านั้น
demo.chaorod.online/admin/pricing
หน้าตั้งราคา pricing rules ใน admin
Pricing editor — กำหนด weekday rate · long-stay discount · ค่าธรรมเนียมพิเศษได้ในที่เดียว

โปรโมชั่นโค้ด

/admin/promotions — สร้างโค้ดส่วนลด เช่น SONGKRAN2026 กำหนดมูลค่า (%/บาท) · ขั้นต่ำการเช่า · จำนวนครั้งที่ใช้ได้ · วันหมดอายุ

ลูกค้า + KYC

จัดการโปรไฟล์ลูกค้า และตรวจเอกสาร KYC ให้ครบก่อนปล่อยรถ

รายชื่อลูกค้า

/admin/customers มี 3 tab — ทั้งหมด · VIP · Blacklist

Blacklist

  1. ค้นหาลูกค้า → กดเมนู → เพิ่มเข้า blacklist
  2. ใส่เหตุผล (เช่น “ไม่คืนรถ 2 ครั้ง”)
  3. ลูกค้าคนนี้จะจองไม่ได้อีก — ระบบบล็อกตอน checkout

ตรวจเอกสาร (Compliance)

/admin/compliance — queue เอกสารรออนุมัติ (บัตร ปชช + ใบขับขี่)

  • กด ดู → เห็นรูปเอกสาร
  • กด ✅ ผ่าน หรือ ❌ ไม่ผ่าน (พร้อมเหตุผล)
  • ลูกค้าได้รับ notification ทาง LINE/อีเมลทันที
demo.chaorod.online/admin/customers
หน้ารายการลูกค้าใน admin แสดง KPI + tab VIP/Blacklist
หน้าลูกค้า — Tab ทั้งหมด/VIP/Blacklist · กดเข้าโปรไฟล์ดูประวัติทุกใบที่เคยจอง

เงินประกัน + บัญชี

เงินประกัน (Deposits)

/admin/deposits/held — ติดตามเงินประกันที่ลูกค้าวาง ตอนรับรถ · /admin/deposits/report สำหรับสรุปประจำเดือน

  • ค้างคืน — รถยังไม่คืน ยังถือเงินประกันไว้
  • รอคืนเงิน — รถคืนเรียบร้อย ต้องโอนกลับ
  • หักจากเงินประกัน — มีค่าเสียหาย → ใส่จำนวน + เหตุผล

Flow เต็มอยู่ไหน

ดูรายละเอียด deposit flow ทั้ง state machine ได้ที่ docs/design/deposit-flow.md
demo.chaorod.online/admin/deposits/held
หน้าจัดการเงินประกันใน admin
หน้าเงินประกันที่ค้างคืน — เห็นทุก booking ที่ยังถือเงินประกันไว้ พร้อมยอด + วันครบกำหนดที่ต้องโอนคืน (เจ้าของร้านโอนเอง)

บัญชี (Accounting)

/admin/accounting — สรุป cash flow รายเดือน (รายได้ - รายจ่าย = กำไรสุทธิ)

บัญชี รับ-จ่าย

/admin/accounting — รายได้/รายจ่าย/กำไรสุทธิ (แยก เงินประกันออกจากกำไร) · ค่าเช่าลงอัตโนมัติเมื่อคืนรถ · บันทึกรายจ่าย manual เอง (ค่าซ่อม น้ำมัน ทำความสะอาด)

ใบเสนอราคา + รายงาน

ใบเสนอราคา

/admin/quotations — สร้าง PDF (WeasyPrint) สำหรับลูกค้าองค์กร พร้อมเลขผู้เสียภาษี + ที่อยู่จัดส่ง · อายุ default 7 วัน

demo.chaorod.online/admin/quotations
หน้าใบเสนอราคาใน admin
รายการใบเสนอราคา — แสดง expiry · ยอดรวม · สถานะ (draft/sent/accepted/expired)

Analytics

/admin/analytics — วิเคราะห์เชิงลึก: top performing cars · customer cohorts · conversion funnel · เลือก period 7d/30d/90d/1y

Reports

/admin/reports — รายงาน download: ยอดขายรายเดือน (.csv/.pdf) · รายงานภาษี · utilization ต่อคันรถ

เจ้าของรถ + ทีมงาน

เจ้าของรถ (Owners)

/admin/owners — กรณีรับฝากรถจากเจ้าของอื่น (revenue share)

  1. เพิ่มเจ้าของรถ — ชื่อ · เลข ปชช · บัญชีธนาคาร
  2. ผูกรถกับเจ้าของในหน้าเพิ่ม/แก้ไขรถ
  3. กำหนด % ส่วนแบ่ง (เช่น เจ้าของ 70% · ร้าน 30%)
  4. ระบบคำนวณยอดที่ต้องจ่ายให้แต่ละคนอัตโนมัติทุกเดือน
demo.chaorod.online/admin/owners
หน้ารายการเจ้าของรถใน admin
เจ้าของรถ — เห็นจำนวนคันที่ฝาก + ยอดส่วนแบ่งที่ต้องโอนให้ในรอบปัจจุบัน

ทีมงาน (Team)

/admin/team — เชิญสมาชิกทีม

Roleสิทธิ์
ownerเจ้าของ — ทุกสิทธิ์
managerผู้จัดการ — จัดการ booking + รถ + ดูเงิน
staffพนักงาน — จัดการ booking เท่านั้น

แบรนด์ + โดเมน + LINE

ปรับแต่งหน้าร้าน

/admin/settings — เปลี่ยนชื่อร้าน · โลโก้ · สีหลัก · cover image · ข้อความต้อนรับ · เบอร์ · LINE ID · เวลาทำการ · แผนที่

เปลี่ยนสีและโลโก้มีผลทันที

ไม่ต้อง redeploy — ระบบ render บนคลาวด์
demo.chaorod.online/admin/settings
หน้าตั้งค่าร้านใน admin
หน้า Settings — แก้ข้อมูลร้าน · สี · โลโก้ · เวลาทำการ · เบอร์ติดต่อ ครบในที่เดียว

Custom Domain

ใช้ได้เฉพาะแผน Pro และ Enterprise
  1. /admin/domains — ใส่โดเมน เช่น rent.somchaicars.com
  2. ระบบแสดง CNAME ที่ต้องไปตั้งกับ registrar
  3. ตั้ง DNS เสร็จ → กด Verify
  4. ใช้งานได้ภายใน 5 นาที (SSL อัตโนมัติ)

LINE Bot

เชื่อม LINE OA ของร้านที่ /admin/settings → หัวข้อ “LINE Bot (ส่งข้อความลูกค้า)”: ใส่ Channel Secret + Access Token · วาง Webhook · เผยแพร่เมนู · LIFF — ทำตามทีละขั้นที่ /docs/line-setup

ส่วน คำตอบอัตโนมัติ (keyword → ข้อความตอบกลับ · greeting message · log ล่าสุด) ตั้งแยกที่ /admin/bot

ดูข้อความที่ระบบจะส่งให้ลูกค้าก่อนเปิดใช้จริง

เมื่อเชื่อม LINE แล้ว ระบบจะส่ง Flex Messages อัตโนมัติ 6 แบบ ตลอด lifecycle ของ booking (ยืนยันจอง · เตือนรับ-คืน · คืนเงินประกัน · ยกเลิก) — ดูตัวอย่างทุกข้อความได้ที่ /docs/notifications