Gerbang jenis penjualan
OTC, Resep, atau BPJS dipilih sebelum item pertama. Obat keras dan racikan ditolak di jalur OTC — dan pindah balik ke OTC ditolak selama keranjang masih memuat obat keras.
Obat keras tertahan di jalur OTC, interaksi obat tertangkap sebelum masuk keranjang, dan stok benar sampai ke butir tablet. Transaksi selesai di perangkat — sinkron ke SATUSEHAT menyusul begitu jaringan kembali.
Keselamatan mendahului kecepatan — dan aturannya dipaksa oleh layar kasir itu sendiri, bukan diingat-ingat petugas.
Item pertama otomatis memunculkan pilihan jalur. Jenis menentukan obat apa yang boleh keluar, data apa yang wajib diisi, dan siapa yang menagih — pasien, atau BPJS lewat SEP.
Obat keras dan racikan tidak dapat dilayani tanpa resep. Penolakan selalu menawarkan jalan keluar: satu ketukan «Ganti ke Resep» dan item langsung masuk keranjang.
Keranjang diurai sampai zat aktif — isi paket dan komponen racikan ikut dibuka — lalu dicocokkan dengan aturan kurasi apoteker. Hanya temuan baru yang meminta konfirmasi, dan konfirmasinya tersimpan sebagai catatan klinis.
Tunai dihitung dengan saran pecahan uang. QRIS dan BPJS dicatat non-laci — menambah omzet tanpa menambah uang fisik. Untuk BPJS, tagihan pasien Rp0 dan SEP terbit otomatis.
Transaksi tuntas di perangkat, lalu antrean mengirim MedicationDispense, InventoryReport, dan Claim saat jaringan kembali. Laporan shift dibekukan — tidak bisa diedit.
Golongan obat, resep, racikan, stok sampai butir, dan disiplin kas laci — hal-hal yang membuat kasir ritel umum gagal dipakai di apotek.
OTC, Resep, atau BPJS dipilih sebelum item pertama. Obat keras dan racikan ditolak di jalur OTC — dan pindah balik ke OTC ditolak selama keranjang masih memuat obat keras.
Bekerja pada zat aktif, bukan nama dagang: parasetamol dari dua produk berbeda tetap tertangkap sebagai duplikasi. Tiga tingkat keparahan, dan konfirmasi apoteker tercatat sebagai catatan klinis.
Stok disimpan dalam butir; kasir membacanya sebagai «115 strip + 5 tab». Harga eceran dibulatkan ke atas ke Rp100 terdekat — dan pembulatan itu ditampilkan terbuka, bukan disembunyikan.
Semua input lewat tombol besar di dalam aplikasi: keypad uang, PIN petugas, dan nomor WhatsApp pasien. Keyboard sistem tidak pernah muncul menutupi setengah layar — alur kasir seragam, cepat, dan minim salah ketik.
Builder satu layar: komponen dicari dari master, dosis diatur dengan stepper, signa dipilih dari master, jasa racik dihitung. Pecahan tablet dibulatkan ke atas untuk stok dan harga — tanpa kejutan di struk.
Kasir terkunci di luar shift. Modal awal menjadi baris pertama buku kas; tunai dibukukan bruto → kembalian → net; QRIS dan BPJS tercatat non-laci. Tutup shift wajib hitung kas fisik — lalu laporan dibekukan.
Transaksi ditulis dulu ke perangkat, lalu antre sebagai resource FHIR — MedicationDispense, InventoryReport, Claim — dengan empat status yang bisa diperiksa petugas: menunggu, terkirim, gagal, konflik. ID dibuat di perangkat, jadi kirim ulang tidak pernah menggandakan data. Back office dan laporan lintas outlet memerlukan koneksi.
Hitung fisik berjalan sementara kasir tetap berjualan: angka harapan dihitung ulang live, jadi selisih yang muncul adalah selisih sungguhan. Baris dari kasir ditandai ⚡ di kartu stok — dan yang menghitung bukan yang menyetujui.
Paket dibedakan hanya oleh tiga hal: jumlah outlet, BPJS Fornas, dan Modul Gudang. Sinkron SATUSEHAT, stok dengan opname live, serta paket obat, promo, dan signa ada di semua paket.
Untuk kasir: ya. Transaksi ditulis dulu ke penyimpanan perangkat dan selesai tanpa menunggu jaringan; antrean sinkron — menunggu, terkirim, gagal, konflik — mengirimkannya begitu koneksi kembali, dan ID dibuat di perangkat sehingga kirim ulang tidak menggandakan data. Yang memerlukan koneksi adalah back office dan laporan lintas outlet — batas ini kami nyatakan apa adanya.
Tetap milik Anda. Ekspor data tetap dimungkinkan meski langganan berakhir atau menunggak — menahan data apotek sebagai sandera tidak dapat diterima. Kata sandi dan PIN disimpan sebagai hash searah yang tidak bisa dibalik oleh siapa pun, dan kami tidak pernah meminta kata sandi Anda.
Tidak dibatasi. Paket hanya dibedakan oleh tiga hal: jumlah outlet, BPJS Fornas, dan Modul Gudang. Sinkron SATUSEHAT, stok dengan opname live, serta paket obat, promo, dan signa ada di semua paket — termasuk Demo dan Trial.
Tidak perlu. ApotekHijau adalah PWA: dibuka dari peramban, bisa dipasang ke layar utama HP atau tablet kasir, bekerja offline di sisi kasir, dan selalu versi terbaru tanpa menunggu peninjauan toko aplikasi.
Demo 7 hari memakai data contoh dan terhapus saat berakhir — untuk merasakan alurnya tanpa risiko. Trial 14 hari memakai data asli apotek Anda; saat lanjut berlangganan, semuanya terbawa — naik paket tanpa migrasi.
Tidak. Gerbang penjualan menolaknya — dan penolakan selalu menawarkan jalan keluar: satu ketukan «Ganti ke Resep» memindahkan transaksi ke jalur yang benar, dengan nomor resep dan nama dokter wajib diisi sebelum pembayaran. OWA tetap bisa dilayani di OTC dan dicatat sebagai pelayanan apoteker.
Dua sisi platform bisa dicoba langsung dari peramban — POS kasir dengan alur lengkap, dan back office dengan katalog, stok, gudang, serta langganan. Data contoh, tersimpan di perangkat Anda.