Pengaturan Sistem, Branding & Konfigurasi Hardware

1. Filosofi Konfigurasi Dinamis

Zhuzhe POS menggunakan pendekatan Dynamic Key-Value Storage. Alih-alih menggunakan kolom database yang kaku, seluruh pengaturan disimpan dalam format kunci dan nilai. Hal ini memungkinkan sistem untuk dikembangkan di masa depan (misal: menambah fitur baru) tanpa harus mengubah struktur database utama. Konfigurasi dibagi menjadi dua level: Global (Sistem Pusat) dan Lokal (Cabang Toko).


2. Pengaturan Aplikasi Pusat (App Settings)

Fitur ini hanya dapat diakses oleh Super Admin dan berfungsi untuk mengatur wajah sistem secara keseluruhan.

2.1 Identitas & Branding

  • Application Name: Mengubah nama sistem di seluruh antarmuka (Sidebar, Header, dan Judul Tab Browser).

  • Global Logo: Mengunggah logo utama yang akan muncul di halaman login.

  • Favicon: Mengatur ikon kecil yang muncul di tab browser untuk memperkuat identitas brand.

Sangat penting untuk aplikasi yang akan dirilis di platform Android/iOS:

  • Terms & Conditions URL: Tautan ke halaman syarat dan ketentuan penggunaan.

  • Privacy Policy URL: Tautan ke kebijakan privasi data pelanggan.

  • Dampak: Tautan ini otomatis muncul di bagian bawah halaman login agar aplikasi mematuhi standar regulasi digital.

2.3 Kontrol Teknis

  • Maintenance Mode: Super Admin dapat mengunci akses seluruh sistem jika sedang dilakukan pemeliharaan server.

  • App Versioning: Menampilkan versi sistem saat ini (misal v1.2.5) untuk memudahkan koordinasi tim teknis.


3. Pengaturan Cabang (Store Settings)

Memungkinkan setiap toko memiliki kebijakan operasional yang unik meskipun menggunakan satu aplikasi yang sama.

3.1 Identitas Struk (Receipt Branding)

Setiap cabang dapat mengatur data yang akan dicetak pada nota belanja:

  • Receipt Header: Teks pembuka (misal: "Selamat Datang di Zhuzhe Jakarta").

  • Receipt Footer: Teks penutup (misal: "Barang yang sudah dibeli tidak dapat ditukar").

  • Contact Number & Address: Informasi spesifik lokasi agar pelanggan dapat menghubungi cabang yang bersangkutan.

3.2 Kebijakan Pajak & Mata Uang

  • VAT/PPN Percentage: Setiap wilayah dapat mengatur tarif pajaknya sendiri (misal: 11% atau 0%).

  • Currency Symbol: Mendukung kustomisasi simbol mata uang (misal: Rp, $, atau SGD).


4. Konfigurasi Hardware (Printing System)

Zhuzhe POS dirancang untuk mendukung berbagai jenis printer thermal, khususnya model POS58B.

4.1 Metode Koneksi Printer

Sistem menyediakan dua jalur komunikasi hardware:

  1. Kabel USB / Jaringan (Backend ESC/POS):

    • Cara Kerja: Laravel mengirimkan perintah biner langsung ke printer melalui alamat IP atau Nama Sharing Windows.

    • Keunggulan: Sangat stabil, tidak memunculkan dialog print browser, dan sangat cepat.

  2. Bluetooth (WebBluetooth API):

    • Cara Kerja: Browser berkomunikasi langsung dengan printer bluetooth portable.

    • Keunggulan: Cocok untuk kasir yang menggunakan HP atau Tablet di warung/kantin.

4.2 Optimalisasi Cetak (Thermal Friendly)

  • Monospace Font: Menggunakan font Courier New agar rincian harga sejajar rapi secara vertikal.

  • Auto-Cutting: Perintah biner dikirimkan untuk melakukan pemotongan kertas otomatis tepat setelah footer struk tercetak.


5. Penjelasan Teknis (Technical Deep Dive)

5.1 Struktur Tabel settings & app_settings

  • settings: Menggunakan kolom store_id (Foreign Key). Setiap toko memiliki baris data sendiri untuk setiap kunci pengaturan.

  • app_settings: Tidak memiliki store_id karena bersifat global untuk sistem pusat.

  • Tipe Data longText: Kolom value menggunakan tipe data longText untuk mengakomodasi gambar logo dalam format Base64 yang memiliki karakter sangat panjang.

5.2 Kompresi Gambar Otomatis

Di sisi frontend, saat Admin mengunggah logo:

  1. Gambar diproses menggunakan elemen HTML5 Canvas.

  2. Ukuran dikecilkan (misal ke lebar 400px).

  3. Kualitas diturunkan ke 70-80% dalam format PNG/JPEG.

  4. Hasil kompresi disimpan ke database untuk menjaga performa loading aplikasi tetap ringan.


6. Ringkasan Objek Data (Data Dictionary)

6.1 Tabel settings (Store Level)

Field

Tipe Data

Fungsi

store_id

Foreign Key

Pemilik pengaturan.

key

String

Nama pengaturan (e.g., printer_path).

value

LongText

Nilai pengaturan (e.g., POS58-Jakarta).

6.2 Tabel app_settings (System Level)

Field

Tipe Data

Fungsi

key

String (Unique)

Kunci konfigurasi global (e.g., app_name).

value

LongText

Nilai konfigurasi global.

group

String

Kategori (branding, legal, technical).


Volume 8 akan membahas Panduan Operasional: Cara Instalasi, Deployment ke Hosting, dan Pemeliharaan Sistem (Maintenance).

Last updated