Tunas Akara
Kembali ke Blog

Mendigitalkan Alur Pesanan Jastip: Sistem Minimum yang Dibutuhkan

oleh RayhanDiperbarui 7 menit baca
jastipsocial-commerceorder-managementpayments
Mendigitalkan Alur Pesanan Jastip: Sistem Minimum yang Dibutuhkan

Mendigitalkan Alur Pesanan Jastip: Sistem Minimum yang Dibutuhkan

Bisnis jastip yang masih pakai WhatsApp dan spreadsheet biasanya cuma butuh empat bagian sistem untuk beres, bukan platform besar: status pesanan, status pembayaran, beberapa guard check anti-dobel, dan rekap margin sederhana. Semuanya bisa selesai dalam satu akhir pekan kerja fokus.

Kebanyakan pelaku social-commerce kecil yang saya amati mulai dari WhatsApp dan spreadsheet. Untuk sementara itu pilihan yang tepat, bukan jalan pintas yang akan disesali. Di bawah volume pesanan tertentu, satu thread chat dan satu sheet memang sistem termurah yang berfungsi.

Penjual jastip (jasa titip) contoh yang jelas soal kapan itu berhenti berlaku. Seseorang menerima pre-order di grup chat, pergi ke bazaar atau kota lain, membeli semua barang di lokasi. Lalu ia harus menagih pembayaran dan mengirim puluhan paket ke orang yang sudah memesan sejak beberapa hari sebelumnya.

Semua yang dibahas di sini berlaku lebih luas dari jastip. Ini berlaku untuk bisnis kecil mana pun yang menjual sekumpulan barang ke daftar orang yang bayar sebelum barang dikirim.

Titik saat chat dan spreadsheet berhenti berfungsi

Pola kegagalannya selalu sama. Screenshot bukti bayar tertimbun di antara pesan pesanan. Tidak ada yang bisa menggulir ke atas dan memastikan siapa yang sudah bayar tanpa membaca ulang seluruh thread.

Spreadsheet mencatat satu baris per order, tapi satu putaran bazaar jarang mengantarkan 100% dari yang dijanjikan — sebagian item habis sebelum giliran pembeli. Spreadsheet datar tidak punya cara rapi untuk bilang "separuh order ini berhasil, separuh tidak" tanpa seseorang menghitung ulang manual.

Alamat pengiriman diketik ke sheet yang sama, yang tidak bisa diakses customer. Setiap koreksi harus lewat penjual lagi. Dan karena semuanya tidak terstruktur, penjual yang ikut dua bazaar dalam sebulan tidak punya cara melihat sekilas order mana saja di kedua event yang masih belum lunas.

Semua ini tidak butuh sistem besar untuk dibenahi. Butuhnya empat bagian spesifik, diurutkan dari yang paling penting.

Status pesanan sebagai tulang punggung

Bagian pertama: merepresentasikan siklus hidup pesanan secara eksplisit, bukan membiarkannya tersirat di dalam thread chat. Statusnya cuma empat: baru, diproses, dikirim, selesai — dengan pembatalan bisa dijangkau dari status mana pun sebelum selesai.

Loading diagram…

Di bawah status level-order itu, status per item perlu dilacak terpisah: dipesan, tersedia, atau gagal didapat. Sebuah order jastip sebenarnya kumpulan pembelian independen yang digabung jadi satu invoice. Memperlakukan seluruh order sebagai satu unit tunggal menyembunyikan fakta bahwa tiga dari lima item berhasil didapat dan dua tidak.

Begitu status per item ada, penjual bisa menjawab "sebenarnya customer ini masih harus bayar berapa" lewat query. Bukan hitung ulang manual.

Ikat status pembayaran ke pesanan, jangan lacak terpisah

Bagian kedua, dan yang paling sering dilewatkan orang: jangan simpan status pembayaran sebagai field tersendiri yang diperbarui manual oleh seseorang. Begitu "sudah bayar: ya/tidak" tersimpan di tempat berbeda dari daftar item dan harganya, keduanya cepat atau lambat tidak sinkron — satu item ditandai tersedia setelah order sudah ditandai lunas, atau ada refund sebagian dan tidak ada yang memperbarui flag-nya.

Bayangkan buku tabungan bank. Saldonya tidak dicatat manual tiap kali, melainkan dihitung ulang dari daftar mutasi setiap dibuka. Status pembayaran pesanan sebaiknya dihitung dengan cara yang sama.

Jumlahkan yang ditagih dari item yang tidak gagal, jumlahkan yang benar-benar sudah dibayar, kurangi refund, lalu turunkan saldo dari situ. Saldo positif berarti customer bayar lebih dan berhak refund. Saldo negatif berarti masih ada kekurangan. Nol berarti lunas.

Ini fungsi kecil, bukan subsistem. Itulah bedanya status yang mencerminkan kenyataan dengan status yang cuma mencerminkan input terakhir seseorang.

Tangani kasus berantakan tanpa menambal satu per satu

Bagian ketiga: buat update aman terhadap percobaan berulang, karena customer maupun penjual sama-sama sering melakukan sesuatu dua kali.

Customer yang khawatir transfernya belum masuk sering mengunggah bukti bayar kedua "buat jaga-jaga". Sistem harus menyimpan keduanya, bukan membiarkan unggahan kedua diam-diam menimpa yang pertama, supaya bukti bayar asli tidak pernah hilang. Customer yang membatalkan setelah bayar butuh refund yang dilacak sebagai angka yang ikut memengaruhi saldonya, bukan catatan yang harus diingat seseorang.

Dan begitu uang sudah berpindah tangan untuk satu item, harga dan jumlah item itu sebaiknya terkunci. Resubmit form yang basi atau editan tak sengaja tidak boleh bisa membuka kembali sesuatu yang sudah selesai.

Tidak ada yang eksotis di sini. Ini cuma beberapa guard check yang ditaruh di satu-dua endpoint tempat uang atau status pengiriman benar-benar berubah. Jumlah kodenya lebih sedikit dari yang terdengar, begitu model order dan pembayaran di atas sudah ada.

Tampilan margin sederhana jadi murah begitu order sudah jadi data

Begitu order sudah berbentuk baris data terstruktur, bukan teks chat, rekap sederhana antara biaya beli item versus harga yang dibayar customer nyaris gratis ditambahkan. Cukup penjumlahan per batch atau per event, bukan laporan penuh.

Ini pantas dibangun setelah model order-nya ada, bukan sebelumnya. Mencoba merekonstruksi margin dari log chat setelah kejadian justru rekonsiliasi manual yang seharusnya dihilangkan sistem ini. Cukup satu angka per batch. Penjual yang sesekali ikut bazaar tidak butuh laporan laba-rugi lengkap. Mereka cuma perlu tahu apakah perjalanan bulan lalu sepadan.

Yang belum perlu dibangun

Begitu sudah mulai membangun, godaannya cuma satu: terus membangun. Di skala ini, lewati dulu integrasi payment gateway: transfer bank manual dengan foto bukti bayar sudah wajar untuk jenis jual-beli ini, dan payment gateway menambah kompleksitas rekonsiliasi yang baru sepadan pada volume order jauh lebih besar.

Lewati pelacakan kurir otomatis; nomor resi dan link yang diinput manual sudah cukup. Lewati akun dan login customer; satu link unik yang sulit ditebak per order menghilangkan kebutuhan autentikasi, dan lebih mudah dipakai pembeli yang tidak terlalu paham teknis. Lewati notifikasi otomatis; cukup penjual mengecek dashboard sekali sehari dan menghubungi customer langsung — pada volume segini, bedanya nyaris tidak terasa.

Semua ini akan sepadan dengan biaya engineering-nya di skala tertentu. Hanya saja bukan skala yang biasanya dijalankan penjual jastip atau bisnis kecil sejenis.

Intinya

Sistem yang dibutuhkan bisnis social-commerce kecil lebih kecil dari kelihatannya: status order dan item yang eksplisit, status pembayaran yang dihitung dari status itu bukan disimpan terpisah, dan beberapa guard check yang membuat pembayaran ganda serta pembatalan aman, bukan mengejutkan.

Itu setara satu akhir pekan kerja fokus, bukan sebuah platform. Pola yang sama muncul setiap kali bisnis menerima uang sebelum mengirim barang. Saya juga membahas pola state-and-locking ini dalam konteks mencegah overbooking hotel, mekanismenya sama meski domainnya berbeda.

Artikel Terkait

Mau bangun hal serupa?

Jasa Pengembangan Backend IoT & Integrasi Multi-Protokol

Backend yang menyerap telemetri perangkat lintas MQTT, WebSocket, Modbus, dan BLE, lalu menyatukannya jadi dashboard real-time yang andal.

Lihat cara saya bisa bantu