Kebanyakan sistem kasir dirancang dengan satu asumsi yang jarang disebut: internet selalu ada. Asumsi ini benar di kafe pusat kota. Asumsi ini salah di sebuah bengkel variasi motor di Yogyakarta yang kami bantu, tempat sinyal hanya muncul lewat hotspot, itu pun musiman.

Bagi pemilik toko, ini bukan soal teknis. Kasir yang macet berarti antrean yang menunggu, nota yang ditulis tangan, dan stok yang tidak lagi cocok dengan kenyataan di rak. Tulisan ini menceritakan bagaimana kami merancang kasir untuk kondisi seperti itu, apa yang hampir salah di tengah jalan, dan apa yang bisa Anda pelajari kalau bisnis Anda punya masalah serupa.

Kenapa Mode Offline Biasa Tidak Cukup

Banyak aplikasi kasir punya "mode offline", tetapi isinya sebenarnya penyangga sementara. Transaksi disimpan di peramban, lalu dikirim begitu internet kembali. Untuk toko yang sesekali putus sambungan, itu cukup. Untuk toko yang hampir tidak pernah tersambung, penyangga itu berubah menjadi sumber masalah: data menumpuk di satu peramban, mudah hilang kalau peramban dibersihkan, dan tidak ada yang benar-benar tahu mana data yang asli.

Perbedaannya terletak pada cara memandang kondisi tanpa internet. Pada rancangan biasa, offline adalah keadaan darurat yang diharapkan cepat berlalu. Pada rancangan kami, offline adalah keadaan normal, dan internet justru tamu yang sesekali datang. Dari pergeseran cara pandang inilah ketiga keputusan berikut lahir. Dampaknya terasa sampai ke hal-hal kecil: cara data disimpan, cara sistem dipasang, bahkan cara kami menulis pesan galat supaya bisa dipahami kasir yang tidak punya latar belakang teknis.

Perbandingan dua cara memandang kasir offline: offline sebagai keadaan darurat dengan penyangga sementara, dan offline sebagai keadaan normal dengan PC toko sebagai sumber data utama

Tiga Keputusan Rancangan

1. PC toko adalah satu-satunya tempat transaksi dicatat. Versi cloud tidak dipakai untuk input. Ia hanya menjadi cermin untuk laporan, sehingga pemilik bisa melihat omzet dari ponsel tanpa harus berada di toko. Dengan satu sumber kebenaran, pertanyaan "data mana yang benar" tidak pernah muncul. Kalau dua sisi berbeda, sisi toko yang menang, karena di sanalah transaksi benar-benar terjadi.

2. Sinkronisasi berjalan otomatis secara berkala, dengan tombol manual sebagai cadangan. Kasir tidak perlu mengingat apa pun dan tidak perlu menunggu. Begitu ada sambungan, data terkirim sendiri. Kalau hotspot sedang menyala dan pemilik ingin laporan terbaru saat itu juga, satu tombol cukup. Sambungan yang hilang di tengah proses tidak merusak apa pun, karena data asli tetap aman di PC toko.

3. Paket instalasi membawa semuanya. Kami mengemas aplikasi lengkap dengan seluruh komponennya, sehingga pemasangan di lokasi tidak membutuhkan internet sama sekali. Ini keputusan yang terdengar sepele, padahal sering menjadi penghambat: banyak sistem yang gagal dipasang bukan karena rancangannya buruk, melainkan karena instalasinya sendiri butuh mengunduh ratusan berkas dari internet.

Kami juga sengaja memilih teknologi ringan tanpa lapisan tambahan, karena komputer di toko itu adalah PC lama berspesifikasi sederhana. Sistem yang lancar di laptop kami tetapi lambat di PC toko adalah sistem yang gagal, sebagus apa pun fiturnya.

Tiga keputusan rancangan kasir offline: PC toko sebagai satu-satunya tempat input, sinkronisasi otomatis dengan tombol manual, dan paket instalasi yang membawa semua komponen

Cara Data Bergerak dari Toko ke Laporan

Alurnya sengaja dibuat sederhana supaya mudah dipahami pemilik toko, bukan hanya teknisi. Kasir mencatat transaksi di PC toko. Data tersimpan di PC itu saat itu juga, tanpa menunggu apa pun. Pada interval tertentu, atau saat tombol sinkron ditekan, sistem mengirim transaksi yang belum terkirim ke cloud. Di sisi cloud, data yang masuk menjadi bahan laporan dan tampilan ringkasan untuk pemilik.

Yang penting dipahami: arah datanya satu arah untuk transaksi. Dari toko ke cloud, tidak sebaliknya. Kesederhanaan inilah yang membuat sistem mudah dipercaya, sebab tidak ada dua sisi yang saling menimpa data satu sama lain.

Alur data kasir offline: kasir mencatat transaksi di PC toko, data tersimpan lokal, sinkronisasi otomatis atau manual mengirim ke cloud, lalu menjadi laporan untuk pemilik

Bug yang Hanya Muncul di Sambungan

Bagian ini yang paling kami pelajari. Saat memeriksa jalur sinkronisasi, kami menemukan bahwa transaksi yang masuk dari mode offline tidak pernah mengurangi stok barang. Untuk toko yang menjual suku cadang dan variasi, stok yang tidak berkurang adalah masalah serius, sebab angka di sistem perlahan menjauh dari kenyataan di rak.

Penyebabnya halus. Pada jalur online, transaksi dibuat dengan status "menunggu", lalu isi barangnya dimasukkan, lalu statusnya diubah menjadi "lunas". Pengurangan stok terpicu pada perubahan terakhir itu. Pada jalur sinkronisasi, transaksi langsung dibuat sebagai "lunas" sebelum barangnya dimasukkan. Sistem melihat transaksi lunas tanpa isi, menyimpulkan tidak ada yang perlu dikurangi, lalu menandainya selesai. Urutannya terbalik, dan akibatnya tidak ada satu pesan galat pun.

Setiap komponen bekerja dengan benar kalau diuji sendiri-sendiri. Yang salah adalah urutan di antara keduanya. Kami menemukannya lewat audit sebelum ada satu pun transaksi nyata yang terdampak, lalu memperbaiki dan mengujinya ulang sampai seluruh rangkaian pengujian lolos.

Perbandingan urutan jalur online dan jalur sinkronisasi: pada jalur online stok berkurang setelah isi barang masuk, pada jalur sinkronisasi yang salah transaksi lunas lebih dulu sehingga stok tidak berkurang

Pelajarannya berlaku jauh di luar urusan kasir: pengujian yang paling penting bukan pada tiap komponen, melainkan pada sambungan antar komponen, terutama di jalur yang jarang dilewati. Jalur offline yang jarang dipakai adalah tempat bug seperti ini bersembunyi paling lama.

Yang Sengaja Tidak Kami Bangun Dulu

Sinkronisasi dua arah untuk data produk dan harga tidak masuk versi pertama. Untuk sementara aturannya sederhana: produk dan harga diubah di satu sisi saja, tidak di dua tempat sekaligus. Kami lebih memilih sistem yang sempit tetapi bisa dipercaya daripada sistem lengkap yang menyimpan risiko selisih data. Fitur itu menyusul setelah fondasinya terbukti kuat.

Keputusan untuk tidak membangun sesuatu sering lebih sulit daripada keputusan untuk membangunnya. Setiap fitur tambahan di sistem yang menyangkut uang dan stok adalah permukaan baru tempat kesalahan bisa masuk.

Empat Pertanyaan Sebelum Memilih Sistem Kasir

Kalau bisnis Anda punya kondisi jaringan yang tidak ideal, dan sebenarnya banyak toko di Indonesia punya, ajukan empat pertanyaan ini kepada penyedia sistem mana pun sebelum menandatangani apa pun.

  1. Apa yang terjadi pada toko saya kalau internet mati selama satu hari penuh?
  2. Kalau ada dua salinan data, mana yang dianggap benar, dan siapa yang memutuskan?
  3. Apakah sistemnya lancar di komputer yang benar-benar saya pakai, bukan di komputer demo?
  4. Bagaimana stok tetap akurat setelah transaksi offline tersinkron?
Empat pertanyaan sebelum memilih sistem kasir: kondisi internet mati sehari penuh, sumber data yang dianggap benar, kinerja di komputer toko, dan akurasi stok setelah sinkronisasi

Sistem kasir yang baik tidak diukur dari fiturnya saat semuanya normal. Ia diukur dari perilakunya saat kondisi tidak ideal. Bagi banyak toko di Indonesia, kondisi tidak ideal justru kondisi sehari-hari.

Bagaimana XETUP Membantu

Pengalaman di bengkel variasi ini membentuk cara kami membangun sistem kasir untuk bisnis dengan kondisi lapangan yang tidak seragam. Kalau toko atau cabang Anda menghadapi sambungan yang tidak stabil, atau Anda ingin tahu apakah sistem kasir Anda saat ini akan bertahan saat internet mati, kenali produk XETUP atau hubungi tim kami untuk berdiskusi langsung.