Batalkan pesanan yang belum dibayar, atau kembalikan uang untuk transaksi yang sudah lunas.
Rute terkait: /orders (antrian & detail transaksi) · /pos/[id]/payment (pembayaran) · /shift (laporan refund)
Untuk siapa halaman ini
Halaman ini untuk Anda yang menangani pesanan batal dan pengembalian dana. Ada dua situasi yang berbeda di sini, dan penting untuk tidak mencampurnya.
Pertama, pembatalan. Pesanan belum dibayar dan pelanggan berubah pikiran. Transaksinya dibatalkan, tidak ada uang yang berpindah. Statusnya menjadi DIBATALKAN PELANGGAN dan pesanan itu tidak dihitung sebagai penjualan.
Kedua, refund. Pesanan sudah dibayar, tetapi uangnya harus dikembalikan, sebagian atau seluruhnya. Di sini uang benar-benar keluar dari laci atau dari saldo penjualan. Refund tercatat di laporan retur dan memengaruhi pendapatan bersih.
Memilih jalur yang benar sejak awal mencegah selisih kas yang membingungkan saat tutup shift.
Prasyarat
- Anda sudah login sebagai kasir atau admin.
- Untuk pembatalan: pesanan masih berstatus Belum Bayar.
- Untuk refund: transaksi sudah berstatus Sudah Bayar atau Lunas.
- Alasan pengembalian sudah Anda ketahui dari pelanggan.
Alur pertama kali pakai
| Langkah | Nama | Deskripsi |
|---|---|---|
| 1 | Kenali status pesanan | Belum dibayar → batalkan. Sudah dibayar → refund |
| 2 | Buka pesanannya | Dari halaman Transaksi |
| 3 | Pilih tindakan | Batalkan Pesanan atau Refund |
| 4 | Tentukan cakupan | Sebagian item atau seluruh transaksi |
| 5 | Isi alasan | Wajib, untuk jejak audit |
| 6 | Proses | Status berubah, saldo menyesuaikan |
Skenario yang Dibahas
- Batalkan pesanan — pesanan belum dibayar, tidak ada uang berpindah
- Refund sebagian — hanya beberapa item yang dikembalikan
- Refund penuh — seluruh transaksi dibatalkan setelah dibayar
- Refund berulang — pengembalian dilakukan bertahap dalam satu transaksi
- Refund tunai — uang benar-benar keluar dari laci
Skenario 1 — Batalkan pesanan
Dipakai bila pesanan belum dibayar dan pelanggan membatalkannya. Tidak ada uang yang dikembalikan.
Daftar pesanan di halaman Transaksi


Dari daftar ini Anda memilih pesanan yang akan dibatalkan. Status BELUM BAYAR menandakan pesanan itu bisa dibatalkan.
Menyaring pesanan yang bisa dibatalkan
Gunakan Filter status pembayaran untuk memisahkan pesanan yang belum dibayar dari yang sudah lunas.


Langkah
1. Buka pesanan tersebut dari daftar pada halaman Transaksi.
2. Ketuk tombol Batalkan Pesanan.
3. Dialog konfirmasi muncul, lengkap dengan Rincian Pesanan.
4. Baca ringkasannya, lalu konfirmasi pembatalannya.
5. Pesanan berstatus DIBATALKAN PELANGGAN.
Setelah dibatalkan, pesanan tidak lagi menghalangi penutupan shift. Ia juga hilang dari daftar tunggu dapur.
Perbedaan dengan pesanan sudah dibayar
| Kondisi pesanan | Tindakan yang tersedia |
|---|---|
| Belum Bayar | Batalkan Pesanan |
| Sudah Bayar atau Lunas | Refund |
Bila Anda mengetuk batalkan pada pesanan yang sudah dibayar, aplikasi menolak dan menyarankan refund dengan pesan Pesanan Sudah Dibayar.
Studi kasus: Pelanggan memesan dua porsi, lalu berubah pikiran sebelum membayar. Kasir membatalkan pesanannya lewat Batalkan Pesanan. Pesanan itu hilang dari daftar tunggu dan tidak muncul di laporan penjualan, sehingga angka penjualan hari itu tetap bersih.
Contoh lain yang bisa dibuat:
- Pelanggan yang pergi sebelum pesanannya dibayar.
- Pesanan salah tipe yang baru diketahui sebelum bayar.
Skenario 2 — Refund sebagian
Dipakai bila hanya beberapa item yang dikembalikan, misalnya karena pesanan salah.
Langkah
1. Buka transaksi yang sudah dibayar dari halaman Transaksi.
2. Ketuk Refund.
3. Pada Rincian Refund, pilih item yang dikembalikan saja. Jangan centang semuanya.
4. Pilih Refund Tunai bila uangnya dibayarkan kembali secara tunai.
5. Isi alasan pengembalian.
6. Ketuk Terapkan atau proses refund.
Field pada form refund
Setelah diproses, hanya item yang dicentang yang dianggap retur. Item lainnya tetap tercatat sebagai penjualan.
Studi kasus: Pelanggan memesan tiga menu, tetapi satu di antaranya salah. Kasir memproses refund hanya untuk menu yang salah, memilih Refund Tunai, dan menuliskan alasan Salah input kasir. Dua menu lain tetap tercatat sebagai penjualan, sehingga laporan tidak terdistorsi.
Contoh lain yang bisa dibuat:
- Satu minuman yang tidak jadi diambil pelanggan.
- Satu porsi yang salah varian dari yang dipesan.
Skenario 3 — Refund penuh
Dipakai bila pelanggan membatalkan semuanya setelah membayar. Seluruh nilai transaksi dikembalikan.
Langkah
1. Buka transaksi yang sudah dibayar.
2. Ketuk Refund.
3. Pilih seluruh itemnya pada Rincian Refund, atau gunakan Pilih Semua bila tersedia.
4. Pilih Refund Tunai bila uangnya dibayarkan kembali secara tunai.
5. Isi alasan pengembalian.
6. Proses refund.
Transaksi tersebut tercatat sebagai retur penuh. Nilainya masuk ke Total Refund pada laporan shift dan mengurangi pendapatan bersih.
Studi kasus: Pelanggan memesan makanan, membayar, lalu membatalkan semuanya karena harus buru-buru pergi. Kasir memproses refund seluruh transaksi dengan alasan Permintaan pelanggan dan mengembalikan uangnya tunai. Di laporan shift, angka Total Refund naik dan Tunai Seharusnya menyesuaikan otomatis.
Contoh lain yang bisa dibuat:
- Pesanan yang tidak jadi dimasak karena bahan habis setelah dibayar.
- Pelanggan yang salah outlet dan uangnya dikembalikan penuh.
Skenario 4 — Refund berulang dan sebagian
Kadang pengembalian tidak selesai dalam satu kali. Seorang pelanggan bisa mengembalikan satu item terlebih dahulu, lalu kembali lagi dengan item lain di hari yang sama.
Langkah
1. Proses refund pertama seperti biasa, centang item yang dikembalikan.
2. Bila pelanggan kembali dengan item lain, buka transaksi yang sama.
3. Ketuk Refund lagi, centang item sisanya.
4. Setiap refund tercatat sebagai baris tersendiri, dan jumlahnya bertambah ke Total Refund.
Setiap baris refund punya waktunya sendiri, sehingga Anda bisa menelusuri kapan pengembalian dilakukan. Transaksi induknya tetap satu.
Studi kasus: Seorang pelanggan mengembalikan satu minuman yang salah pada siang hari, lalu kembali sore untuk mengembalikan satu makanan yang tidak habis dimakan. Kasir memproses dua refund pada transaksi yang sama. Di Riwayat Pembayaran, terlihat dua baris pengembalian dengan waktu berbeda, dan laporan shift tetap rapi.
Contoh lain yang bisa dibuat:
- Pelanggan yang mengembalikan item secara bertahap sepanjang hari.
- Koreksi terpisah untuk dua masalah berbeda dalam satu pesanan.
Alasan refund
Alasan refund bukan sekadar formalitas. Catatan ini muncul di laporan dan membantu penelusuran bila ada pertanyaan di kemudian hari.
| Alasan | Kapan dipakai |
|---|---|
Salah input kasir | Item yang salah dimasukkan ke pesanan |
Permintaan pelanggan | Pelanggan berubah pikiran |
Menu tidak sesuai pesanan | Masakan tidak seperti yang dipesan |
Kualitas tidak sesuai | Rasa atau porsi di bawah standar |
Pesanan tidak diambil | Pelanggan tidak datang mengambil |
Outlet tutup mendadak | Pesanan dibatalkan karena force majeure |
Tulis alasan sejelas mungkin. Hindari alasan yang terlalu umum kalau ada keterangan lebih spesifik.
Studi kasus: Seorang pelanggan menemukan porsi makanannya jauh lebih kecil dari biasanya. Kasir memproses refund penuh dengan alasan Kualitas tidak sesuai dan menambahkan catatan singkat pada Keterangan. Pemilik melihat catatan itu di laporan dan menindaklanjuti ke dapur.
Melihat rincian refund
Setelah refund diproses, rinciannya bisa dilihat di dua tempat.
- Di halaman Transaksi, buka detail transaksi tersebut dan periksa Riwayat Pembayaran. Refund tercatat sebagai baris tersendiri.
- Di Laporan Shift, bagian Rincian Refund menampilkan daftar pengembalian selama shift beserta Total Refund.
Bila belum ada refund pada shift tersebut, bagian itu menampilkan pesan Tidak ada refund.
Catatan: refund tunai mengurangi uang di laci. Itulah sebabnya jumlahnya ikut dihitung saat tutup shift.
Kendala umum
| Kendala | Penyebab | Solusi |
|---|---|---|
| Tombol Batalkan Pesanan tidak muncul | Pesanan sudah dibayar | Pakai Refund, bukan pembatalan |
| Tombol Refund tidak aktif | Anda bukan kasir/admin, atau transaksi belum lunas | Login dengan akun berhak, atau selesaikan pembayarannya dulu |
| Refund gagal disimpan | Item belum dicentang, atau Keterangan kosong | Centang minimal satu item dan isi alasan |
| Kas laci tidak sesuai setelah refund | Pembayaran refund tidak tunai | Periksa status Refund Tunai pada catatan refund |
| Refund tidak muncul di laporan | Laporan shift belum diperbarui | Muat ulang Laporan Shift bagian Rincian Refund |
Kendala paling sering adalah mencampur pembatalan dengan refund. Ingat aturannya: belum dibayar berarti batalkan, sudah dibayar berarti refund.
Tips & Peringatan
Tips: catat alasan refund dengan jelas, karena terlihat di laporan dan membantu penelusuran.
Tips: periksa status Refund Tunai untuk memastikan laci dan laporan tetap cocok.
Peringatan: pembatalan dan refund adalah dua hal berbeda. Membatalkan pesanan yang sudah dibayar akan ditolak sistem.
Ringkasan
| Ingin melakukan | Langkah |
|---|---|
| Membatalkan pesanan belum bayar | Transaksi → buka pesanan → Batalkan Pesanan → konfirmasi |
| Refund sebagian item | Transaksi → buka transaksi → Refund → centang item → proses |
| Refund seluruh transaksi | Transaksi → buka transaksi → Refund → pilih semua → proses |
| Mengembalikan uang tunai | Nyalakan Refund Tunai pada form refund |
| Memeriksa riwayat refund | Detail transaksi → Riwayat Pembayaran, atau Laporan Shift → Rincian Refund |
Dokumentasi Terkait
- Riwayat Transaksi, mencari transaksi yang akan dibatalkan atau direfund
- Buka & Tutup Shift, bagaimana refund memengaruhi perhitungan kas