Cara Setting Ongkir Otomatis di Website Toko Online (Tanpa Plugin WordPress)
Ongkir real-time di website sendiri tanpa WordPress. Termasuk hasil pengujian langsung ke API kurir yang membantah tabel divisor volumetrik yang beredar di mana-mana.

Pembeli sudah isi keranjang, sudah isi alamat, lalu berhenti di baris ongkir yang bertuliskan "hubungi admin". Sebagian dari mereka tidak pernah menghubungi admin.
Ongkir otomatis memperbaiki itu. Tarifnya muncul sendiri begitu alamat diisi, pembeli langsung tahu total yang harus dibayar, dan kamu berhenti membalas pertanyaan yang sama dua puluh kali sehari.
Hampir semua panduan yang ada di internet menjelaskannya lewat plugin WooCommerce. Tulisan ini tidak. Yang dibahas di sini prinsip kerjanya, jadi berlaku di platform mana pun yang kamu pakai.
Kenapa Ongkir Manual Diam-diam Memakan Order
Biaya tak terduga yang muncul di akhir proses adalah penyebab keranjang ditinggalkan yang paling sering disebut di riset checkout mana pun. Ongkir manual lebih buruk dari itu, karena bukan cuma tidak terduga, tapi juga tidak ada.
Pembeli harus berhenti, pindah aplikasi, mengetik pertanyaan, lalu menunggu. Setiap langkah itu titik keluar.
Ada biaya kedua yang jarang dihitung: waktumu. Dua puluh pertanyaan ongkir sehari, masing-masing tiga menit termasuk cek tarif, sudah satu jam. Setiap hari.
Cara Kerja Tarif Real-Time
Alurnya selalu sama, apa pun platformnya. Pembeli memilih alamat tujuan, website mengirim empat hal ke penyedia tarif, penyedia menjawab dengan daftar layanan beserta harganya, website menampilkannya sebagai pilihan.
Empat hal itu: alamat asal, alamat tujuan, berat, dan dimensi paket.
Yang menghubungkan website ke kurir biasanya bukan kurir langsung, melainkan agregator. Kamu bicara ke satu API, mereka yang bicara ke belasan kurir. Alasannya sederhana: mendaftar dan mengintegrasikan satu per satu ke JNE, J&T, SiCepat, dan lainnya butuh perjanjian terpisah dengan masing-masing.
Konsekuensinya, roster kurir yang tersedia tidak sama antar agregator. Ini sering bikin bingung waktu pindah penyedia.
Sebagai gambaran, dari halaman bantuan resmi KiriminAja dan Mengantar, keduanya melayani JNE, J&T, SiCepat, Anteraja, Ninja, Lion, dan SAP. Tapi TIKI, Paxel, dan RPX tidak dilayani keduanya. Kalau kurir andalanmu ada di daftar terakhir itu, ongkirnya tetap harus manual.
Tiga Data yang Harus Beres Dulu
Ongkir otomatis tidak akan pernah akurat kalau tiga data ini belum benar. Urutannya sengaja dari yang paling sering dilewatkan.
1. Alamat asal, sampai level kelurahan
Banyak toko hanya mengisi kota. Itu cukup untuk tarif kasar, tidak cukup untuk tarif yang benar, karena sebagian kurir menghitung dari kecamatan.
Isi sampai kelurahan. Ini juga yang paling sering jadi sumber selisih ongkir yang bikin merchant bingung, dan alasannya ada di bagian terakhir tulisan ini.
2. Berat setiap produk
Berat kotor, bukan berat bersih. Artinya termasuk kemasan, bubble wrap, dan dus luar. Kurir menimbang yang mereka terima, bukan isinya.
Kalau kamu menjual varian dengan berat berbeda, isi per varian. Botol 250 ml dan 1 liter tidak boleh berbagi satu angka berat.
3. Dimensi dus
Ini yang paling sering dikosongkan, dan yang paling mahal akibatnya. Bagian berikutnya khusus membahasnya.
Berat Volumetrik: Alasan Ongkirmu Bocor
Kurir tidak selalu menagih berdasarkan berat. Kalau paketnya besar tapi ringan, mereka menagih berdasarkan ruang yang dimakan paket itu di dalam truk.
Rumusnya panjang kali lebar kali tinggi dalam sentimeter, dibagi 6000, hasilnya kilogram. Yang ditagih adalah yang lebih besar antara berat asli dan berat volumetrik. Syarat dan Ketentuan resmi JNE menyebut rumus dan aturan "mana yang lebih besar" ini secara eksplisit. Dicek 3 September 2026.
Contohnya bantal. Beratnya 400 gram, tapi dusnya 60 x 40 x 25 sentimeter. Volumetriknya 10 kilogram. Kamu menagih pembeli untuk 400 gram, kurir menagih kamu untuk 10 kilogram, dan selisihnya keluar dari margin kamu.
Selisih itu tidak terlihat di dashboard penjualan. Terlihatnya di rekening.
Angka yang saya ukur sendiri
Ini bagian yang tidak akan kamu temukan di panduan lain, jadi izinkan saya agak teknis sebentar.
Waktu membangun integrasi kurir untuk Alusio, saya menjalankan probe langsung ke endpoint tarif sebuah agregator pada 20 Agustus 2026, untuk satu rute uji, memakai layanan J&T Cargo reguler. Yang saya ubah cuma satu variabel: angka berat yang saya kirim.
| Berat yang dikirim | Dimensi ikut dikirim? | Tarif yang keluar |
|---|---|---|
| 400 gram | Ya | Rp 49.400 |
| 10.667 gram | Ya | Rp 49.400 |
| 30.000 gram | Ya | Rp 114.000 |
Perhatikan dua baris pertama. Berat yang saya kirim naik 26 kali lipat, harganya tidak bergerak sama sekali.
Artinya server agregatornya menghitung sendiri berat volumetrik dari dimensi, lalu menagih yang lebih besar antara hitungannya dan berat yang saya kirim. Selama dimensi ikut terkirim, angka berat saya diabaikan sampai ia melampaui volumetrik. Di baris ketiga ia melampaui, dan harganya naik.
Sekarang percobaan yang sama tanpa mengirim dimensi, kali ini di layanan TIKI reguler:
| Berat yang dikirim | Dimensi ikut dikirim? | Tarif yang keluar |
|---|---|---|
| 400 gram | Tidak | Rp 21.000 |
| 10.667 gram | Tidak | Rp 231.000 |
Tanpa dimensi, harga sepenuhnya mengikuti angka berat yang kamu kirim. Kalau angka itu salah, tarif yang ditampilkan ke pembeli juga salah, dan selisihnya baru ketahuan waktu tagihan datang.
Angka rupiah di dua tabel itu tarif lingkungan uji untuk satu rute tertentu. Jangan dipakai sebagai patokan harga. Yang penting polanya, bukan nominalnya.
Tabel divisor yang beredar itu tidak selalu cocok
Hampir semua artikel Indonesia menulis bahwa JNE, J&T, SiCepat, dan TIKI memakai pembagi 6000. Untuk layanan reguler, itu memang yang tertulis di ketentuan resmi.
Tapi waktu saya membaca daftar layanan yang dikembalikan API agregator untuk akun uji, angkanya tidak seragam. Dari layanan JNE yang terdaftar di sana, sebagian besar tidak mencantumkan nilai divisor sama sekali, beberapa layanan trucking memakai 5000, dan beberapa layanan lain terisi nol. J&T tidak mengisi kolom itu. Hanya layanan kargo tertentu yang angkanya cocok dengan tabel yang beredar.
Saya sempat percaya pada tabel itu. Divisor per kurir saya tanam di kode, per layanan, rapi. Lalu saya batalkan seluruhnya beberapa jam kemudian, karena terbukti tidak berpengaruh apa-apa: menaikkan berat kiriman tidak pernah menurunkan harga, hanya bisa menaikkan tagihan di atas hitungan agregatornya sendiri.
Saya tidak tahu kenapa kolom divisor di akun uji itu banyak yang kosong. Bisa jadi karena akun uji, bisa jadi memang tidak dipakai untuk layanan reguler. Yang bisa saya pastikan cuma perilakunya, dan perilakunya konsisten.
Kesimpulan praktisnya satu kalimat. Jangan menghitung sendiri volumetrik per kurir. Pastikan saja dimensi dus benar-benar terkirim, lalu biarkan sistem tarifnya yang menghitung.
Tampilkan Semua Kurir, atau Kunci Satu?
Ada dua mazhab dan keduanya punya alasan.
Menampilkan semua terasa lebih ramah. Pembeli bisa memilih yang termurah atau tercepat sesuai kebutuhannya, dan kamu tidak perlu menebak.
Masalahnya, delapan pilihan kurir dengan selisih dua ribu rupiah bukan kebebasan, itu beban berpikir di detik paling rawan. Dan setiap kurir tambahan berarti satu alur pickup tambahan yang harus kamu urus.
Rekomendasi saya, dan ini pendapat bukan aturan: tampilkan tiga sampai empat kurir, tidak lebih. Satu yang termurah, satu yang tercepat, satu yang paling kamu percaya untuk daerah tujuan yang sulit.
Kunci ke satu kurir hanya kalau volumemu sudah cukup besar untuk menegosiasikan tarif korporat. Di bawah itu, kamu cuma mengurangi pilihan tanpa mendapat apa-apa.
Gratis Ongkir Tanpa Menghabiskan Margin
Gratis ongkir itu subsidi, dan subsidi harus punya batas.
Bentuk yang paling aman adalah gratis ongkir bersyarat minimum belanja. Ia menaikkan nilai keranjang, bukan sekadar menghapus biaya. Ambang yang masuk akal biasanya sekitar satu setengah kali nilai keranjang rata-ratamu saat ini.
Kalau nilai keranjang rata-rata Rp120.000, pasang ambang di Rp180.000. Jangan menebak angkanya. Buka laporan penjualan, hitung dulu.
Bentuk kedua yang sering dilupakan: subsidi sebagian. Kamu menanggung Rp10.000 dari ongkir, sisanya pembeli. Pembeli merasa dibantu, kamu tidak menanggung kejutan kiriman ke Papua.
Yang saya sarankan hindari: gratis ongkir tanpa syarat ke seluruh Indonesia. Satu pesanan Rp45.000 ke luar Jawa bisa memakan seluruh untung dari sepuluh pesanan sebelumnya.
Kalau Ongkir Salah atau Tidak Muncul Sama Sekali
Dua kegagalan berikut ini pernah terjadi di sistem kami, dan keduanya sudah diperbaiki. Saya tulis apa adanya karena polanya berlaku umum, bukan cuma di tempat kami.
Kasus satu: ongkir muncul, tapi angkanya jauh meleset
Ada merchant yang melapor tarif di websitenya beda jauh dari yang ia lihat di dashboard kurirnya sendiri. JNE ke Jakarta terbaca Rp34.000, padahal seharusnya sekitar Rp11.000.
Penyebabnya konyol. Kode kami membaca nama kolom huruf kecil, sementara API menjawab dengan huruf besar. Jadi setiap upaya mencocokkan alamat gagal diam-diam, dan sistem selalu mengambil hasil pertama dari daftar pencarian.
Kecamatan bernama "Banjarsari" ada di Sumatera Selatan, Lampung, Banten, Jawa Barat, dan Surakarta. Merchant itu di Surakarta. Sistem memilih Banyuasin, Sumatera Selatan.
Tidak ada pesan error. Tidak ada yang merah. Ongkirnya cuma salah.
Kami memeriksa ulang 19 alamat pickup setelah perbaikan. Tujuh belas di antaranya berubah ke lokasi yang lebih tepat.
Yang bisa kamu lakukan: ambil tiga rute yang kamu hafal tarifnya, lalu bandingkan angka di websitemu dengan angka di aplikasi resmi kurirnya. Kalau meleset lebih dari sepuluh persen, curigai alamat asalmu, bukan kurirnya.
Kasus dua: ongkir tidak muncul untuk sebagian alamat
Gejalanya spesifik dan membingungkan. Pembeli di kecamatan yang sama, kelurahan berbeda, sebagian dapat pilihan kurir dan sebagian tidak.
Penyebabnya kami hanya meneruskan nama kelurahan untuk alamat asal, tidak untuk alamat tujuan. Untuk kecamatan bernama umum, pencarian tanpa kelurahan tidak menemukan kandidat yang cocok, jadi hasilnya kosong dan checkout menampilkan "tidak ada pilihan kurir untuk tujuan ini".
Yang bisa kamu lakukan: kalau ada keluhan seperti ini, minta alamat lengkapnya sampai kelurahan, lalu uji rute itu persis. Jangan menguji dengan alamat kantormu sendiri, karena alamat yang sering dipakai hampir selalu berhasil.
Checklist Sebelum Dinyalakan
Jalankan berurutan. Ini urutan yang sama yang saya pakai setiap kali menyalakan ongkir otomatis untuk toko baru.
- Alamat asal terisi sampai kelurahan, bukan cuma kota.
- Semua produk punya berat kotor, termasuk kemasan.
- Produk dengan varian berat berbeda diisi per varian.
- Dimensi dus terisi, terutama untuk barang besar dan ringan.
- Uji tiga rute yang tarifnya kamu hafal, bandingkan dengan aplikasi resmi kurir.
- Uji satu rute ke luar Jawa, dan satu ke kabupaten kecil.
- Uji keranjang berisi dua produk berbeda, pastikan beratnya dijumlahkan.
- Cek tampilan pilihan kurir di layar HP, bukan cuma di laptop.
Nomor lima yang paling sering dilewati, dan nomor lima juga yang paling sering menemukan masalah.
Mulai dari Mana
Kalau ongkirmu masih manual hari ini, jangan mulai dari memilih agregator. Mulai dari mengisi berat dan dimensi produk, karena pekerjaan itu tetap harus dilakukan apa pun penyedia yang nanti kamu pilih.
Buka daftar produkmu. Timbang sepuluh yang paling laku, lengkap dengan kemasannya, lalu ukur dusnya.
Setengah jam. Setelah itu bagian teknisnya tinggal menyalakan.
Kalau kamu sedang menghitung ongkos keseluruhan membangun toko online, rinciannya ada di breakdown biaya bikin website toko online. Dan kalau belum sampai tahap ini, mulai dari panduan lengkap membuat website toko online.

