Panduan Akses POS & Login Karyawan

Daftar Isi

  1. Perbedaan Akun Dashboard vs Akun POS
  2. Cara Membuat Akun Karyawan (Employee)
  3. Cara Login ke POS
  4. Role Karyawan & Hak Akses POS
  5. Mengelola Karyawan
  6. Logout dari POS
  7. Troubleshooting Login POS

1. Perbedaan Akun Dashboard vs Akun POS

Sistem Pesan POS menggunakan dua jenis akun yang terpisah:

Akun Dashboard (Owner/Admin) Akun POS (Karyawan/Employee)
Login di /login /pos/login
Identitas login Email + Password Kode Tenant + Kode Karyawan
Akses ke Dashboard manajemen (produk, laporan, settings, dll.) Halaman POS kasir (/pos)
Dibuat oleh Sistem saat pendaftaran Owner/Admin via menu Employees
Contoh pengguna Pemilik restoran, manajer Kasir, pelayan, staf dapur

Penting: Akun owner/admin tidak bisa digunakan untuk login ke halaman /pos. Harus menggunakan akun karyawan.

flowchart LR
    A[Owner / Admin] -->|Login di /login| B[Dashboard Manajemen]
    C[Karyawan / Kasir] -->|Login di /pos/login| D[Halaman POS /pos]
    B -->|Kelola karyawan| E[Menu Employees di Dashboard]
    E -->|Buat akun| C

2. Cara Membuat Akun Karyawan (Employee)

Akun karyawan dibuat oleh Owner/Admin melalui dashboard.

2.1 Buka Halaman Employees

  1. Login ke dashboard sebagai owner/admin
  2. Buka menu Employees (sidebar kiri)
  3. Klik tombol + Create Employee / Tambah Karyawan
  4. URL: /employees/create

2.2 Isi Data Karyawan

Field Keterangan Status Contoh
Employee Code Kode unik karyawan — digunakan sebagai password login POS Wajib EMP001, KASIR01
Name Nama lengkap karyawan Wajib Budi Santoso
Phone Nomor telepon karyawan Opsional 0812xxxxxxxx
Email Email karyawan Opsional budi@gmail.com
Role Peran karyawan di restoran Wajib cashier
Status Status aktif/tidak aktif Wajib active

💡 Tips: Klik tombol Generate Code untuk membuat employee code acak secara otomatis (format: EMP + 6 karakter acak, contoh: EMPXK72A). Atau isi manual dengan kode yang mudah diingat.

2.3 Pilihan Role

Role Keterangan Bisa Login ke POS?
cashier Kasir — mengelola transaksi ✅ Ya
waiter Pelayan — melayani meja ✅ Ya
manager Manajer — supervisori ✅ Ya
admin Admin restoran ✅ Ya
kitchen Staf dapur ✅ Ya

Semua role dapat login ke halaman POS. Tidak ada pembatasan berdasarkan role di level akses POS.

2.4 Simpan

Klik Save / Create Employee. Karyawan akan muncul di daftar /employees.


3. Cara Login ke POS

3.1 Buka Halaman Login POS

Akses URL:

https://dashboard.pesan.cafe/pos/login

Atau dari halaman mana pun, buka browser dan ketik /pos/login.

3.2 Isi Form Login

Halaman login POS memiliki dua field:

┌─────────────────────────────────────────┐
│  POS Login ✨                            │
│  Enter tenant and employee code to      │
│  access POS. 🔒                          │
│                                         │
│  Tenant Code                            │
│  ┌─────────────────────────────────┐   │
│  │  kode-tenant-anda               │   │
│  └─────────────────────────────────┘   │
│                                         │
│  Employee Code                          │
│  ┌─────────────────────────────────┐   │
│  │  ●●●●●●●●                       │ 👁 │
│  └─────────────────────────────────┘   │
│                                         │
│  [Verifikasi CAPTCHA Cloudflare]        │
│                                         │
│  ┌─────────────────────────────────┐   │
│  │         Enter POS 🚀             │   │
│  └─────────────────────────────────┘   │
└─────────────────────────────────────────┘
Field Nilai yang Diisi Cara Mendapatkan
Tenant Code Kode unik tenant/bisnis Anda Lihat di Settings → Tenant, field tenant_code
Employee Code Kode karyawan (ditampilkan sebagai password) Lihat di halaman detail karyawan (/employees/{id})

3.3 Verifikasi CAPTCHA

Halaman login POS dilindungi oleh Cloudflare Turnstile (CAPTCHA). Klik atau selesaikan verifikasi yang muncul sebelum submit.

3.4 Submit

Klik Enter POS 🚀. Jika berhasil, Anda akan diarahkan ke:

  • /pos — Table Overview (jika table tracking aktif)
  • /pos → redirect ke /pos/transaction (jika table tracking tidak aktif)

4. Role Karyawan & Hak Akses POS

4.1 Alur Login

flowchart TD
    A[Buka /pos/login] --> B[Isi Tenant Code + Employee Code]
    B --> C[Selesaikan CAPTCHA]
    C --> D[Submit]
    D --> E{Validasi}

    E -->|Tenant Code salah / tidak aktif| F[Error: Invalid or inactive tenant code]
    E -->|Employee Code salah / tidak aktif| G[Error: Invalid or inactive employee code]
    E -->|CAPTCHA gagal| H[Error: Security verification failed]
    E -->|Berhasil| I{Table Tracking?}

    I -->|ON| J[Table Overview /pos]
    I -->|OFF| K[POS Transaction /pos/transaction]

    style F fill:#c62828,color:#fff
    style G fill:#c62828,color:#fff
    style H fill:#c62828,color:#fff
    style J fill:#388e3c,color:#fff
    style K fill:#388e3c,color:#fff

4.2 Validasi yang Dilakukan Sistem

Saat login, sistem melakukan 3 pengecekan berurutan:

  1. Tenant Code — apakah kode tenant ada dan statusnya active
  2. Employee Code — apakah kode karyawan ada, milik tenant tersebut, dan statusnya active
  3. Role — apakah role karyawan termasuk dalam daftar yang diizinkan (cashier, waiter, manager, admin, kitchen)

5. Mengelola Karyawan

5.1 Melihat Daftar Karyawan

URL: /employees

Fitur yang tersedia:

  • 🔍 Search berdasarkan nama, kode, email, atau telepon
  • Filter berdasarkan Role dan Status
  • Toggle status aktif/nonaktif langsung dari daftar

5.2 Melihat Detail & Kode Karyawan

URL: /employees/{employeeId}

Di halaman detail karyawan, Anda dapat melihat:

  • Semua informasi karyawan
  • Employee Code (ini yang digunakan sebagai password login POS)

🔑 Bagikan Employee Code ini kepada karyawan yang bersangkutan agar dapat login ke POS. Employee Code bersifat rahasia.

5.3 Mengedit Karyawan

URL: /employees/{employeeId}/edit

Field yang bisa diubah:

  • Employee Code (jika perlu reset "password" POS)
  • Nama, telepon, email
  • Role
  • Status (active / inactive)

⚠️ Jika Employee Code diubah, karyawan harus menggunakan kode baru saat login POS berikutnya.

5.4 Menonaktifkan Karyawan

Karyawan yang statusnya inactive tidak dapat login ke POS. Gunakan fitur ini untuk:

  • Karyawan yang cuti/resign
  • Memblokir akses sementara tanpa menghapus data

Cara menonaktifkan:

  1. Dari daftar /employees — klik tombol toggle status langsung
  2. Atau buka halaman edit karyawan → ubah Status ke inactive → Save

5.5 Menghapus Karyawan

Karyawan hanya bisa dihapus jika tidak memiliki order atau pembayaran yang terkait. Jika karyawan sudah pernah bertransaksi, gunakan fitur nonaktifkan saja.


6. Logout dari POS

Untuk keluar dari sesi POS:

  1. Di halaman POS mana pun, cari tombol Logout (biasanya di sudut kanan atas atau menu)
  2. Klik tombol logout
  3. Sistem akan menghapus sesi POS dan mengarahkan kembali ke /pos/login

Catatan: Logout dari POS tidak mempengaruhi sesi dashboard owner/admin. Keduanya berjalan secara terpisah.


7. Troubleshooting Login POS

❌ "Invalid or inactive tenant code"

Penyebab: Kode tenant salah atau akun tenant tidak aktif.

Solusi:

  1. Pastikan Tenant Code yang dimasukkan benar — cek di Dashboard → Settings → Tenant, field Tenant Code
  2. Tenant Code bersifat case-sensitive — pastikan huruf besar/kecil sesuai
  3. Pastikan status tenant aktif (hubungi admin Pesan POS jika akun dinonaktifkan)

❌ "Invalid or inactive employee code"

Penyebab: Kode karyawan salah, karyawan tidak terdaftar di tenant tersebut, atau status karyawan inactive.

Solusi:

  1. Pastikan Employee Code yang dimasukkan benar — cek di Dashboard → Employees → Detail Karyawan
  2. Pastikan karyawan terdaftar di tenant yang sama dengan Tenant Code yang dimasukkan
  3. Pastikan status karyawan adalah active — jika inactive, aktifkan kembali di halaman edit

❌ "Security verification failed. Please try the CAPTCHA again."

Penyebab: Verifikasi Cloudflare Turnstile gagal.

Solusi:

  1. Reload halaman dan coba lagi
  2. Pastikan koneksi internet stabil
  3. Coba gunakan browser yang berbeda atau mode incognito

❌ "This employee role is not permitted to access POS."

Penyebab: Role karyawan tidak termasuk dalam daftar yang diizinkan.

Solusi:

  • Ubah role karyawan menjadi salah satu dari: cashier, waiter, manager, admin, atau kitchen
  • Lakukan di Dashboard → Employees → Edit Karyawan

❌ Berhasil login tapi langsung kembali ke login

Penyebab: Sesi expired atau ada konflik cookie.

Solusi:

  1. Clear cookie browser untuk domain ini
  2. Pastikan browser mengizinkan cookie
  3. Coba gunakan browser berbeda atau mode incognito

📋 Ringkasan Cepat — Cara Login POS:

  1. Buka /pos/login
  2. Isi Tenant Code (dari Settings → Tenant)
  3. Isi Employee Code (dari halaman detail karyawan)
  4. Selesaikan CAPTCHA
  5. Klik Enter POS 🚀