LitPOS adalah aplikasi POS retail mobile-first berbasis Google Apps Script dan Google Sheets. Fokusnya ada di alur kasir yang ringkas, manajemen produk, stok, riwayat transaksi, dan laporan sederhana dalam satu tampilan compact.
- Kasir cepat dengan cart, checkout, dan multi-metode pembayaran
- Manajemen produk dan kategori
- Penyesuaian stok manual
- Riwayat transaksi dan detail struk
- Laporan penjualan sederhana
- Seed data CSV siap import untuk demo awal
- Frontend: HTML, CSS, vanilla JavaScript
- Backend: Google Apps Script
- Database: Google Sheets
index.htmluntuk UI aplikasicode.gsuntuk backend Apps Scriptpayment_gateway_midtrans.gsuntuk modul Midtrans (sandbox/production)sample-data/untuk data demo siap importpreview/untuk screenshot tampilan aplikasi
- Buat Spreadsheet baru.
- Masukkan ID Spreadsheet ke
SPREADSHEET_IDdicode.gs. - Deploy
index.htmldancode.gske Google Apps Script project. - Jalankan aplikasi sekali agar sheet schema otomatis dibuat.
- Import CSV dari folder
sample-data/jika ingin data awal demo.
Integrasi payment gateway Midtrans dipisah ke modul payment_gateway_midtrans.gs agar tetap modular namun kompatibel dengan Google Apps Script.
Di Apps Script: Project Settings > Script properties
MIDTRANS_SERVER_KEY: server key sandbox Midtrans (wajib)MIDTRANS_CLIENT_KEY: client key sandbox (opsional untuk UI depan)MIDTRANS_MERCHANT_ID: merchant id (opsional)MIDTRANS_MODE: isisandboxatauproduction(default:sandbox)MIDTRANS_IS_PRODUCTION:true/false(opsional, jikatrueakan override ke production)
Anda juga bisa mengelola properti Midtrans dari UI aplikasi:
- Buka menu Midtrans Gateway
- Simpan mode, merchant ID, client key
- Update server key via field password (nilai server key lama tidak pernah ditampilkan ke UI)
- Atau hapus server key dengan opsi Hapus Server Key Saat Simpan
- Pilih metode bayar Midtrans di checkout.
- POS memanggil
createMidtransPayment(payload):- create Snap transaction ke Midtrans sandbox (
/snap/v1/transactions) - simpan transaksi POS dengan status
Menunggu Pembayaran - reserve stok (tipe move:
SALE_PENDING)
- create Snap transaction ke Midtrans sandbox (
- UI akan membuka
redirect_urlMidtrans. - Di detail transaksi, klik Cek Status Midtrans untuk memanggil
syncMidtransTransactionStatus({ trxId }).
syncMidtransTransactionStatus memanggil Midtrans status endpoint (/v2/{order_id}/status) dan update status lokal:
settlement/capture->Selesaipending->Menunggu Pembayarandeny->Ditolakcancel->Dibatalkanexpire->Kadaluarsafailure->Gagal
Jika transaksi terminal gagal (deny/cancel/expire/failure), stok reservasi akan dikembalikan otomatis (move: PAYMENT_RELEASE).
Panduan import data demo ada di sample-data/README.md.
Mau belajar Google Apps Script bareng-bareng? Yuk gabung grup WhatsApp:














