Cara Input Penjualan (OFD)
Panduan Tim Warung mengunggah laporan penjualan per channel (GoFood, ShopeeFood, QRIS-Gopay, QRIS-ShopeePay) di MBS Food Cost β pilih warung, periode & channel, lalu pilih mode 'Dari File' (unggah CSV/XLSX/PDF/foto sesuai channel, tekan 'Proses file' untuk membaca angka NET otomatis) atau 'Isi Manual' (tersedia di semua channel, ketik angka sendiri tanpa file). Untuk channel Cash, ambil foto langsung dari kamera HP atau pilih dari galeri β dibaca otomatis (nominal, rekening tujuan, tanggal) dengan rekening tujuan dicocokkan ke daftar resmi outlet & dicap status π©/π₯/π¨. Untuk channel GrabFood, unggah laporan PDF yang dibaca otomatis (NET, gross, tanggal). File/dokumen kini OPSIONAL di semua channel termasuk Cash & GrabFood β kalau bukti belum ada, entri tetap bisa disimpan lewat 'Isi Manual' dan barisnya otomatis ditandai 'β οΈ Tanpa lampiran bukti (isi manual)' agar mudah dicek ulang, bukan ditolak. Tim Warung kini bisa memproses file di SEMUA channel, termasuk Cash & GrabFood (menyetor foto bukti sendiri, tidak perlu lagi lewat Admin/Keuangan). Manajer ke atas dapat membatalkan (void) entri yang salah lewat kolom 'Kelola'. Penjualan NET (setelah komisi platform) inilah yang menjadi pembagi Food Cost %, dan unggahan harian terakumulasi menjadi total bulan.
Halaman Penjualan (menu Operasional Harian β Penjualan) adalah tempat Anda memasukkan hasil penjualan dari tiap aplikasi (channel) β Cash, GrabFood, GoFood, ShopeeFood, QRIS-Gopay, QRIS-ShopeePay, plus channel kustom apa pun yang sudah ditambahkan Admin/Keuangan (mis. Tokopedia, Blibli). Saat menekan Tambah Penjualan, Anda memilih salah satu dari dua mode: Dari File (unggah dokumen, dibaca otomatis) atau Isi Manual (ketik angka sendiri, tanpa dokumen). File yang diminta menyesuaikan channel β foto untuk Cash, PDF untuk GrabFood, CSV atau XLSX untuk yang lain β jadi Anda tidak akan salah pilih jenis file. Unggahan setiap hari menumpuk menjadi total bulan.
Channel kustom = selalu Isi Manual. Channel tambahan yang dibuat sendiri (bukan 6 channel bawaan) tidak punya mode unggah file β begitu Anda memilihnya, formulir langsung menampilkan kolom Amount NET (tidak ada tombol Dari File, kamera, atau kolom unggah). Ini normal: channel kustom diisi manual per periode. Cara menambah channel baru ada di panduan Admin/Keuangan β Data Master.
Di bagian atas halaman ada kartu total per channel β satu kartu Total NET (periode) plus satu kartu untuk tiap channel (Cash, GrabFood, GoFood, ShopeeFood, QRIS-Gopay, QRIS-ShopeePay) yang menunjukkan jumlah penjualan channel itu sepanjang bulan yang dipilih. Channel yang belum ada datanya menampilkan Rp0. Kartu ini hanya tontonan (angka penjualan murni) β bukan persen food cost.
π Pahami dulu: kenapa pakai angka NET, bukan kotor
Analogi sederhana
Bayangkan Anda jualan lewat ojek online. Pembeli bayar Rp 100.000 (itu angka kotor / gross), tapi aplikasi memotong komisi mereka, jadi yang masuk ke rekening Anda mungkin cuma Rp 70.000 (itu angka bersih / NET). Uang yang benar-benar Anda terima adalah yang NET β jadi itulah yang dipakai untuk menghitung untung-rugi. Angka kotor hanya disimpan sebagai catatan pembanding.
Cara kerjanya: dari file sampai jadi laporan
Kenapa penting?
Penjualan NET adalah pembagi dalam rumus Food Cost % (biaya bahan Γ· penjualan). Kalau angka penjualan salah, persen food cost ikut salah. Karena itu: unggah laporan yang benar, dan jangan unggah file yang sama dua kali β aplikasi memang akan menolaknya supaya penjualan tidak terhitung dobel. Unggah tiap hari; angka harian akan dijumlahkan sendiri menjadi total bulan.
Mengunggah laporan dari file (mode "Dari File")
Pilih warung, periode & channel
Dari menu kiri, pilih Penjualan. Halaman ini menampilkan daftar penjualan yang
sudah tercatat. Untuk menambah penjualan baru, tekan tombol biru Tambah
Penjualan di kanan atas β formulirnya terbuka dalam sebuah jendela. Di
dalam jendela itu, pastikan Warung benar, Periode adalah bulan laporannya
(mis. 2026-06), dan Channel sesuai aplikasi asal file β mis. GoFood. Daftar
channel menampilkan 6 channel bawaan dulu, lalu channel kustom (jika ada) di
bagian bawah. (Kalau Anda memilih channel kustom, langsung lanjut ke bagian
Isi manual β channel kustom tidak punya mode unggah.)
Pastikan mode "Dari File" terpilih
Di bawah tiga pilihan itu ada dua tombol mode: Dari File (aktif secara otomatis saat jendela dibuka) dan Isi Manual. Pastikan Dari File yang terpilih (tombolnya berwarna biru) β kalau Anda pernah menekan Isi Manual sebelumnya, tekan Dari File untuk kembali.
Hanya satu mode yang tampil dalam satu waktu β memilih Dari File menampilkan kolom unggah file, memilih Isi Manual menampilkan kolom angka langsung (lihat bagian Isi manual di bawah). Kolom file selalu menyesuaikan channel yang dipilih β untuk GoFood/ShopeeFood/QRIS-Gopay/QRIS-ShopeePay kolomnya menerima file CSV atau XLSX (Excel); mengunggah jenis file lain ditolak dengan pesan "Untuk (nama channel), unggah file CSV atau XLSX.".
Pilih file laporan, lalu tekan "Proses file"
Pada kolom File laporan (CSV/XLSX), pilih file CSV atau XLSX yang Anda unduh dari aplikasi penjualan (kedua format sama β pakai saja yang tersedia). Lalu tekan Proses file.
Aplikasi membaca file dan menampilkan Amount NET (penjualan bersih) yang sudah dijumlahkan otomatis, beserta jumlah baris dan angka kotor (gross) sebagai pembanding.
Periksa & betulkan, isi nama penginput
Aplikasi mengisi Tanggal Penjualan otomatis dari file (ada tulisan kecil "π dari file β boleh dikoreksi") β betulkan kalau perlu. Amount NET juga boleh dikoreksi. Isi Nama penginput (nama Anda).
Tekan Simpan Penjualan
Muncul pesan hijau "β Tersimpan: GoFood BENOWO 2026-06 = Rp934.200. (Akumulasi harian.)". Penjualan hari itu tersimpan dan ditambahkan ke total bulan.
File yang sama ditolak. Kalau Anda mengunggah file yang persis sama dua kali, aplikasi menampilkan "File ini sudah pernah diunggah (mencegah dobel hitung)." dan tidak menyimpan ulang. Ini sengaja, supaya penjualan tidak terhitung dua kali. Untuk hari berikutnya, unduh file baru dari aplikasi penjualan.
Isi manual (kalau tidak ada file)
Pada semua channel β termasuk Cash dan GrabFood β Anda bisa menekan tombol mode Isi Manual dan langsung mengetik Amount NET, tanggal, dan nama penginput, tanpa file. Ini berguna kalau Anda sudah tahu angkanya dan tidak perlu mengunggah laporan.
Channel kustom sudah otomatis manual. Untuk channel tambahan (bukan 6 bawaan), Anda tidak perlu menekan Isi Manual β begitu channel dipilih, tombol Dari File / Isi Manual hilang dan diganti keterangan "Sumber kustom β isi manual NET per periode (tidak ada unggah file)", lalu kolom Amount NET langsung muncul. Langkah pengisiannya sama persis dengan di bawah ini.
Menekan Isi Manual mengganti tampilan β kolom unggah file & tombol Proses file hilang, digantikan langsung oleh kolom Amount NET, Gross, Tanggal Penjualan, Nama penginput, dan Catatan. Menekan Dari File lagi mengembalikan kolom unggah (angka yang sempat diketik di mode manual akan dikosongkan, supaya tidak tertinggal tanpa sengaja).
File jadi opsional, bukan hilang. Isi Manual bukan pengganti permanen β kalau lain kali Anda punya dokumennya (foto/PDF/CSV), tekan Dari File untuk kembali ke mode unggah otomatis. Pilih mode sesuai yang lebih cepat untuk Anda saat itu.
Kalau channel-nya Cash atau GrabFood, entrinya ditandai
Cash dan GrabFood biasanya punya dokumen (foto bukti setoran / laporan PDF). Jadi kalau Anda menyimpan tanpa dokumen di kedua channel ini, muncul peringatan kuning sebelum tombol simpan:
β οΈ Disimpan tanpa lampiran bukti. Baris ini ditandai agar mudah dicek ulang β lampirkan bukti lewat "Dari File" jika ada.
Ini bukan error dan tidak menghalangi Anda menyimpan. Entrinya tersimpan normal dan tetap dihitung. Bedanya, catatan baris itu otomatis diberi tanda "β οΈ Tanpa lampiran bukti (isi manual)", supaya Manajer/Keuangan bisa memisahkan mana setoran yang ada buktinya dan mana yang belum saat memeriksa rekonsiliasi.
π Kenapa boleh disimpan tanpa bukti?
Dulu Cash & GrabFood ditolak kalau tidak ada dokumen. Akibatnya, kalau bukti belum di tangan, penjualannya sering tidak jadi dicatat sama sekali β dan penjualan yang hilang jauh lebih berbahaya daripada penjualan yang tercatat tapi belum ada buktinya (penjualan adalah pembagi Food Cost %, jadi angka yang hilang membuat Food Cost % terlihat lebih buruk dari kenyataan).
Sekarang aturannya: catat dulu, ditandai, lengkapi buktinya belakangan.
Untuk channel GoFood, ShopeeFood, QRIS-Gopay, QRIS-ShopeePay tidak ada tanda ini β channel tersebut memang bisa diisi manual sejak awal.
Channel Cash: foto bukti setoran (dibaca otomatis)
Untuk uang tunai (Cash) yang Anda setor ke rekening, aplikasi membaca foto bukti transfer secara otomatis: nominal, nomor rekening tujuan, nama pemilik, dan tanggal β Anda tinggal memeriksa lalu menyimpan. Tim Warung bisa memproses foto ini sendiri β tidak perlu lagi menyerahkannya ke Admin/Keuangan untuk diunggah.
π Pahami dulu: kenapa rekening tujuan diperiksa
Analogi sederhana
Bayangkan uang laci warung disetor ke bank. Yang benar, uang itu masuk ke rekening resmi warung. Kalau ada yang diam-diam mentransfer ke rekening pribadi, itu tanda bahaya. Aplikasi membandingkan rekening tujuan di foto dengan daftar rekening resmi outlet dan memberi tanda warna β supaya selisih setoran cepat ketahuan.
Tiga tanda status rekening
Kenapa penting?
Status dicap otomatis oleh server dan tidak bisa Anda ubah dari form β jadi tanda π₯ tidak bisa dihapus dengan mengetik. Setoran yang TIDAK COCOK tetap bisa disimpan, tapi ditandai supaya diperiksa. Inilah pengaman agar tidak ada uang setoran yang nyasar ke rekening pribadi tanpa ketahuan.
Pilih Cash, lalu ambil/pilih foto bukti
Pilih Channel = Cash (dan pastikan mode Dari File). Muncul dua kotak: Ambil Foto (langsung buka kamera HP) dan Pilih dari Galeri (pilih foto yang sudah tersimpan). Pilih salah satu, lalu tekan Proses file. Di HP, Ambil Foto langsung membuka kamera β praktis kalau bukti transfernya belum difoto. Di komputer, kedua tombol sama-sama membuka jendela pilih file.
File opsional β boleh dikosongkan jika diisi manual.
Periksa angka & rekening yang dibaca aplikasi
Aplikasi mengisi Amount NET (nominal setoran), Tanggal, dan kotak Rekening tujuan setoran (No. rekening, Bank, Nama pemilik) β semuanya boleh dikoreksi kalau pembacaan kurang pas. Di atas kotak rekening muncul tanda status (π©/π₯/π¨).
π¨ Rekening belum terdaftar
Status rekening dicap otomatis oleh server saat disimpan β tidak bisa diubah dari sini.
Isi nama penginput, lalu Simpan Penjualan
Isi Nama penginput, lalu tekan Simpan Penjualan. Muncul pesan hijau "β Tersimpan: Cash BENOWO 2026-06 = Rp406.875. (Akumulasi harian.)". Status rekening (π©/π₯/π¨) ikut tersimpan dan dipakai untuk pemeriksaan setoran.
Foto tidak wajib β tapi entri tanpa foto ditandai. Kalau bukti transfernya belum ada (mis. baru disetor, strukanya menyusul), Anda tetap bisa menyimpan: tekan Isi Manual, ketik Amount NET, dan isi Rekening tujuan setoran kalau tahu. Muncul peringatan kuning "β οΈ Disimpan tanpa lampiran bukti" β ini bukan error, entrinya tersimpan normal. Bedanya, catatan barisnya diberi tanda "β οΈ Tanpa lampiran bukti (isi manual)" supaya Manajer/Keuangan mudah mengeceknya ulang saat rekonsiliasi. Kalau fotonya sudah ada, tekan Dari File dan proses seperti biasa. Foto yang sama tetap ditolak (mencegah dobel hitung), sama seperti file CSV.
Channel GrabFood: laporan PDF (dibaca otomatis)
Untuk GrabFood, aplikasi membaca laporan PDF yang Anda unduh dari aplikasi GrabMerchant: penjualan bersih (NET), angka kotor (gross), dan tanggal β Anda tinggal memeriksa lalu menyimpan, tanpa mengetik angka dari PDF satu per satu. Sama seperti Cash, Tim Warung bisa memproses laporan GrabFood sendiri.
Pilih GrabFood, lalu unggah laporan PDF
Pilih Channel = GrabFood (mode Dari File). Kolom file menampilkan "Laporan GrabFood (PDF)" β kolom ini hanya menerima file PDF; jenis lain akan ditolak β pilih file PDF laporannya, lalu tekan Proses file.
PDF laporan GrabFood β dibaca otomatis (boleh dikoreksi)
Periksa NET, gross & tanggal yang dibaca aplikasi
Aplikasi mengisi Amount NET (penjualan bersih), Gross (angka kotor), dan Tanggal Penjualan otomatis dari PDF (ada tulisan "π dari file β boleh dikoreksi") β semuanya boleh dikoreksi kalau pembacaan kurang pas. GrabFood tidak punya kotak rekening tujuan (itu khusus Cash).
Isi nama penginput, lalu Simpan Penjualan
Isi Nama penginput, lalu tekan Simpan Penjualan. Muncul pesan hijau "β Tersimpan: GrabFood BENOWO 2026-06 = Rp406.875. (Akumulasi harian.)".
PDF tidak wajib; pembacaan otomatis butuh internet. Kalau pembacaan otomatis gagal (mis. internet bermasalah) atau PDF-nya belum diunduh, form tetap bisa diisi manual β tekan Isi Manual, ketik Amount NET dan tanggalnya sendiri, lalu simpan. Sama seperti Cash, muncul peringatan kuning "β οΈ Disimpan tanpa lampiran bukti" dan catatan barisnya ditandai "β οΈ Tanpa lampiran bukti (isi manual)" β tersimpan normal, hanya ditandai agar mudah dicek ulang. Laporan PDF yang sama tetap ditolak (mencegah dobel hitung), sama seperti file CSV dan foto Cash.
Tab "Pelacakan": pantau penjualan sudah masuk belum (per hari & per channel)
Di halaman Penjualan ada dua tab: Riwayat Entri (daftar penjualan seperti di atas) dan Pelacakan. Tab Pelacakan menampilkan kotak-kotak seperti kalender β kolom adalah tanggal (1 sampai akhir bulan), baris adalah channel (Cash, GrabFood, GoFood, ShopeeFood, QRIS-Gopay, QRIS-ShopeePay, plus channel kustom apa pun yang aktif), plus satu baris Total di paling bawah. Channel kustom yang pernah punya penjualan lalu dinonaktifkan tetap muncul barisnya, supaya riwayat penjualannya tidak hilang dari pantauan. Tiap kotak menunjukkan penjualan hari itu per channel, dan warnanya menandakan status pencatatannya. Saringan Warung dan Periode di atas tab berlaku untuk kedua tab.
π Pahami dulu: arti 4 warna kotak Pelacakan
Analogi sederhana
Bayangkan Anda punya buku absen harian. Tiap hari Anda mencoret kotak hari itu kalau laporan penjualannya sudah masuk. Kotak yang kosong berarti hari itu belum diisi. Tab Pelacakan adalah buku absen itu β tapi otomatis dan per channel, jadi Anda langsung tahu hari & channel mana yang masih bolong.
Empat warna status
Warna latar kotak mengikuti status pencatatan penjualan hari itu per channel. Warnanya dipilih ramah buta-warna (tidak memakai pasangan hijauβmerah yang gampang tertukar), jadi keempat status tetap bisa dibedakan:
Angka di dalam kotak (mis. Rp12,6M) tetap terbaca jelas di atas warna latarnya, dan keterangan warna (legenda) selalu tampil di bawah kalender β warna kotak dan warna di legenda selalu sama.
Baris Total: warnanya mengikuti yang "paling parah"
Baris Total di bawah menjumlahkan semua channel di hari itu. Warnanya memakai aturan "yang paling parah menang": kalau salah satu channel hari itu Perlu dicek (oranye-merah), maka kotak Total hari itu ikut oranye-merah. Kotak Total hanya hijau-toska kalau semua channel yang sudah diinput hari itu sudah direkonsiliasi. Jadi baris Total adalah ringkasan satu pandang untuk satu hari.
Kenapa penting?
Tab ini membantu Anda tidak bolong β dengan sekali lihat Anda tahu hari & channel mana yang belum diinput (kotak abu-abu), jadi tidak ada penjualan yang tertinggal. Status direkonsiliasi (hijau-toska) dan perlu dicek (oranye-merah) bukan diatur dari sini β itu hasil pencocokan dengan mutasi bank yang dilakukan di halaman Rekonsiliasi Bank. Tab Pelacakan hanya menampilkan status itu supaya mudah dipantau.
Buka tab Pelacakan
Di halaman Penjualan, tekan tab Pelacakan (di samping Riwayat Entri). Muncul kotak-kotak kalender: kolom = tanggal, baris = channel, dengan baris Total di bawah.
Pilih warung & periode yang ingin dipantau
Gunakan saringan Warung dan Periode di atas tab (saringan yang sama dengan tab Riwayat Entri). Kotak-kotak berubah mengikuti warung & bulan yang dipilih.
Lihat hari/channel yang masih kosong (putih)
Kotak abu-abu = belum diinput. Itu hari & channel yang belum ada penjualannya β entah memang tidak ada penjualan, atau laporannya belum diunggah. Kotak yang terisi angka (dan berwarna) berarti hari itu channel itu sudah dicatat.
Gulir ke kanan kalau tanggalnya banyak
Bulan yang panjang (mis. 31 hari) membuat kotaknya melebar ke samping. Gulir ke kanan (scroll) di dalam kotak itu untuk melihat tanggal-tanggal berikutnya β baris channel & Total ikut menggulir, jadi angkanya tetap sejajar.
Status "sudah direkonsiliasi" / "perlu dicek" bukan diatur dari sini. Kotak hijau-toska (sudah direkonsiliasi) dan oranye-merah (perlu dicek) adalah hasil pencocokan penjualan dengan uang masuk di bank (rekonsiliasi). Pengaturannya ada di halaman Rekonsiliasi Bank, bukan di tab Pelacakan. Tab ini hanya menampilkan status itu supaya gampang dipantau per hari.
Mencari & memeriksa penjualan yang sudah tercatat
Halaman Penjualan menampilkan daftar semua penjualan yang sudah masuk, sehingga Anda bisa mengeceknya kapan saja:
- Kotak pencarian β ketik untuk menyaring daftar (mis. nama channel atau penginput).
- Pilihan Periode β pilih bulan (
yyyy-MM) yang ingin Anda lihat. - Pilihan Warung β pilih warung yang ingin ditampilkan.
- Judul kolom bisa diurutkan β tekan judul kolom (ada tanda β) untuk mengurutkan daftar, mis. dari Tanggal terbaru atau NET terbesar.
- Halaman di bagian bawah β kalau datanya banyak, gunakan tombol halaman di bawah daftar untuk berpindah halaman.
Membatalkan entri yang salah (Void)
Kalau ada entri penjualan yang salah catat (mis. channel keliru, angka dobel, atau hari itu ternyata tidak ada penjualan), Manajer ke atas bisa membatalkan entri itu dari daftar Riwayat Entri. Pembatalan menghapus entri itu dari total penjualan bulan ini β jadi angka food cost tetap benar.
Tekan "Kelola" di baris yang salah
Di tab Riwayat Entri, tiap baris punya tombol Kelola (titik tiga β―) di kolom
paling kanan. Tekan tombol itu di baris entri yang ingin dibatalkan, lalu pilih
Batalkan.
Konfirmasi "Ya, batalkan"
Muncul jendela peringatan "Batalkan transaksi?" yang mengingatkan bahwa aksi ini tidak dapat dikembalikan. Baca baik-baik, lalu tekan Ya, batalkan.
Entri hilang dari daftar
Entri yang dibatalkan langsung hilang dari daftar Riwayat Entri (tidak perlu muat ulang), dan tidak dihitung lagi di kartu total maupun di persen food cost.
Staf tidak bisa membatalkan. Tombol Kelola hanya bisa dipakai oleh Manajer, Admin, Keuangan, atau Owner. Kalau Anda staf dan menemukan entri salah, hubungi manajer Anda β pembatalan sengaja dibatasi ke peran yang berwenang, supaya catatan penjualan tidak mudah diubah sembarangan.
Bukan untuk hapus harian. Pembatalan dipakai untuk mengoreksi kesalahan (entri dobel, channel salah), bukan untuk menghapus penjualan yang memang terjadi. Kalau hari itu benar ada penjualan, jangan dibatalkan β angka itu milik laporan bulan ini.
Cara Mencatat Pembelian
Panduan Tim Warung mencatat pembelian bahan (Pembelian) di MBS Food Cost β mencatat beberapa barang dari satu vendor sekali simpan (daftar barang + Tambah Baris), satuan beli, harga, sumber dana Kas Kecil, beli tempo ('Sudah dibayar? Belum' β jatuh tempo, kas ditunda tapi barang tetap masuk stok & COGS), barang dwi-satuan (ayam β pesan per ekor, ditagih per kg), satuan bertingkat (box β ml), pita harga π©/π₯ saat mengetik, dan memahami tanda 'Harga di atas toleransi'. Setiap pembelian langsung masuk ke biaya bahan (COGS) saat disimpan.
Cara Unggah Laporan POS
Panduan Tim Warung mengunggah laporan 'Sales Recapitulation Detail Report' (.xlsx) dari dashboard POS ke MBS Food Cost β pilih warung, pilih file laporan yang benar, lalu tekan 'Unggah laporan POS'. Sistem memeriksa format file: file yang benar disimpan dan menampilkan jumlah baris tersimpan, baris nol yang dilewati, bill duplikat, dan jumlah bill yang stok teoretisnya otomatis dikurangi dari resep; file yang SALAH pilih atau formatnya BERUBAH ditolak otomatis agar data penjualan tidak rusak. Mengunggah file yang sama dua kali tidak menambah baris (aman dari dobel).