Bekerja offline
Saat server tak bisa dihubungi, kasir tetap bisa buat pesanan dan terima pembayaran. Masing-masing menunggu di perangkat dan terkirim sendiri satu per satu begitu koneksi kembali. Cara kerjanya sama di layar kasir web maupun di aplikasi kasir mobile.


Siapa yang bisa
Pemilik, manajer, kasir, dan pelayan. Orang yang sama yang membuat pesanan dan menerima pembayaran. Tidak ada yang perlu diaktifkan: aplikasi tahu server hilang dan jalan terus. Gangguan sebentar tidak membuat apa pun hilang.
Yang tetap jalan
Perangkat menyimpan salinan hal yang dibutuhkan layar kasir, jadi masih ada saat server menghilang:
- outlet dan menunya,
- laci kasir,
- meja,
- dan shift yang terbuka di laci ini.
Dengan itu semua di tangan, pesanan tetap bisa dibangun, dikirim ke dapur untuk dibayar nanti, dan pembayaran tetap bisa diterima, semua offline. Di web, layarnya sendiri juga bisa dimuat ulang tanpa jaringan: berkas aplikasi tersimpan di cache, jadi refresh atau baterai habis tidak membuat layar jadi kosong.
Perilakunya saat offline
- Setiap tindakan yang dibuat saat server hilang masuk antrean di perangkat, yang paling lama di depan.
- Aplikasi terus mencoba sendiri: tepat setelah tiap tindakan, lalu begitu koneksi kembali, dan tiap setengah menit selama masih ada yang menunggu.
- Saat server menjawab lagi, antrean terkirim sesuai urutan dibuatnya. Pembayaran yang menempel pada pesanan offline menunggu sampai pesanannya sampai di server dulu, baru menyusul.
Tidak perlu menekan apa pun untuk sync. Antrean terkuras sendiri.
Daftar "Belum terkirim"
Buka untuk melihat apa yang masih harus dikirim perangkat. Di web berupa jendela "Belum terkirim"; di ponsel berupa sheet "Belum terkirim". Isinya dua bagian:
- "Ditolak server". Tindakan yang diterima server tapi ditolak (misalnya produk yang sementara itu ditandai habis). Masing-masing menampilkan alasannya dan, di bawahnya, apa pun yang tertahan di belakangnya ("Ikut menunggu: ..."). Bisa "Coba lagi" (setelah kembali online) atau "Hapus".
- "Menunggu koneksi" (offline) atau "Sedang dikirim" (online). Tindakan yang baik-baik saja dan tinggal menunggu giliran. Ini tidak butuh apa pun.
Saat tidak ada yang tersisa, tulisannya "Semua pesanan dan pembayaran sudah terkirim."
Menghapus sebuah tindakan minta konfirmasi, karena ia tidak akan sampai ke server:
- Menghapus pesanan: "Pesanan ini dan pembayarannya tidak akan tercatat di server. Uang yang sudah diterima tidak masuk laporan."
- Menghapus pembayaran: "Pembayaran ini tidak akan tercatat di server. Pesanannya tetap tercatat belum bayar."
Aturan
- Kirim ulang tidak pernah dobel. Tiap tindakan di antrean membawa kunci permintaan yang sama seperti saat pertama dikirim, dan server menjawab kunci yang berulang dengan hasil yang pertama. Jadi kalau aplikasi mengirim sesuatu dua kali (misalnya crash di antara mengirim dan menyimpan) tetap terhitung sekali.
- Tindakan yang ditolak server (bukan sekadar gangguan koneksi) ditahan sebagai "Ditolak server" dengan alasannya; ia tidak dicoba ulang sendiri. Pilihannya di tangan kasir: kirim ulang atau hapus.
- Antrean berhenti mengirim di tindakan pertama yang tak dijawab (masih offline) atau kena error server, lalu lanjut lagi nanti; satu tindakan yang ditolak disisihkan dan yang di belakangnya jalan terus.
- Antrean tinggal di satu perangkat itu saja. Perangkat lain tidak melihatnya.
Batasan
- Pesanan dan pembayaran bisa masuk antrean offline, tapi pekerjaan back office tidak: menu, staf, stok, pengaturan, dan laporan butuh server.
- Tindakan yang sudah dihapus hilang. Tidak ada cara memulihkannya dari perangkat.
- Di aplikasi mobile, offline membawa alur pesanan-dan-pembayaran yang sama seperti web, tapi aplikasinya tidak punya layar dapur dan tidak ada diskon atau persetujuan. Lihat Aplikasi kasir mobile.
Masalah yang sering muncul
- Pesanan di antrean menampilkan "Ditolak server" dengan "... sedang habis". Produknya ditandai habis di antara saat pesanan dibuat dan dikirim. Pesanan tidak bisa lolos apa adanya; hapus dan buat ulang tanpa item itu, atau tandai produknya tersedia dulu.
- "Coba lagi" tidak bisa ditekan. Masih offline. Tombolnya jalan begitu server bisa dihubungi lagi.
- Antrean tidak terkuras. Server masih tak terjangkau atau bermasalah. Aplikasi terus mencoba; biarkan daftar "Belum terkirim" terbuka untuk melihatnya terkuras saat koneksi kembali.