Aturan Ongkir Custom Berdasarkan Lokasi (IndoOngkir Suite)
Filter aturan IndoOngkirCustom per provinsi, kota, dan kecamatan: all, specific, include, exclude, serta cara uji di checkout.
Ongkir kurir toko atau layanan lokal biasanya tidak “satu harga untuk semua wilayah”. IndoOngkirCustom mendukung filter lokasi bertingkat: provinsi, kota/kabupaten, dan kecamatan. Tiap level punya empat mode: semua wilayah, satu wilayah, daftar tertentu, atau semua kecuali daftar tertentu.
Kalau hierarki filter ini dipahami, rule Anda akan muncul hanya untuk area yang memang Anda layani (tanpa “bocor” ke wilayah lain).
Prasyarat
- IndoOngkirCustom aktif dengan minimal satu aturan
- Checkout memakai alamat Indonesia (field provinsi/kota/kecamatan terisi sesuai modul IndoOngkir)
- Sudah membaca Cara Membuat Aturan Ongkir Custom
Cara membuka pengaturan
- Buka WooCommerce → Pengaturan → IndoOngkir → IndoOngkirCustom.
- Edit baris aturan yang ingin difilter per lokasi.
Mode filter per level
Setiap level (provinsi, kota, kecamatan) memiliki opsi yang sama:
| Mode di UI | Nilai province / city / district |
Perilaku |
|---|---|---|
| All provinces / cities / districts | all |
Tidak memfilter level tersebut |
| One province / city / district | specific |
Hanya cocok jika alamat pelanggan sama dengan pilihan di dropdown specific |
| Specific provinces / cities / districts | include |
Cocok jika alamat ada dalam daftar multi-select |
| All … except for… | exclude |
Cocok untuk semua wilayah kecuali yang ada dalam daftar exclude |
Field pendukung
| Field | Dipakai saat mode |
|---|---|
province_specific |
Provinsi = One province |
province_include[] |
Provinsi = Specific provinces |
province_exclude[] |
Provinsi = All provinces, except for… |
city_specific, city_include[], city_exclude[] |
Sama untuk kota |
district_specific, district_include[], district_exclude[] |
Sama untuk kecamatan |
Urutan pengecekan (hierarki) di plugin
- Provinsi selalu dievaluasi terlebih dahulu.
- Kota dievaluasi detail hanya jika provinsi = One province dan provinsi cocok.
- Kecamatan dievaluasi detail hanya jika kota = One city dan kota cocok.
- Kecamatan pelanggan diambil dari
shipping_address_2(bagian setelah koma jika format Kelurahan, Kecamatan).
Contoh konfigurasi
| Skenario | Provinsi | Kota | Kecamatan |
|---|---|---|---|
| Seluruh Indonesia | All | All | All |
| Hanya DKI Jakarta | One province → DKI Jakarta | All | All |
| Jabodetabek (beberapa provinsi) | Specific provinces → DKI, Banten, Jawa Barat | All | All |
| Luar Jawa | All except → Jawa Tengah, Jawa Timur, … | All | All |
| Satu kecamatan di Surabaya | One province → Jawa Timur | One city → Surabaya | One district → … |
Langkah-langkah
1. Atur filter provinsi
- Edit aturan di IndoOngkirCustom.
- Pilih mode Provinsi sesuai cakupan layanan.
- Jika One province atau include/exclude, pilih provinsi di dropdown yang muncul.
- Simpan.

2. Perketat ke kota atau kecamatan (opsional)
- Set provinsi ke One province agar filter kota aktif penuh.
- Pilih mode Kota (One city, include, atau exclude).
- Untuk layanan hyper-lokal, lanjutkan ke Kecamatan dengan pola yang sama.
- Simpan.

3. Uji di checkout
- Isi alamat di wilayah target → opsi ongkir custom harus muncul.
- Ulangi dengan alamat di luar filter → opsi harus hilang.
- Bandingkan dengan aturan lain yang overlap untuk memastikan tidak ada duplikasi membingungkan.

Cara memastikan berhasil
- Alamat uji di DKI (jika aturan Jakarta) menampilkan opsi; alamat di luar DKI tidak
- Field
shipping_state,shipping_city, dan kecamatan dishipping_address_2terisi benar (mode select/autocomplete IndoOngkir) - Tidak ada aturan duplikat dengan nama sama untuk wilayah yang sama
Catatan dan troubleshooting
Filter kota tidak bekerja
- Pastikan provinsi diset One province terlebih dahulu. Mode All provinces tidak memicu pengecekan kota detail di kode plugin.
Kecamatan tidak cocok
- Kecamatan dibaca dari address line 2. Pastikan pelanggan memilih kelurahan/kecamatan lewat field IndoOngkir, bukan mengetik manual format berbeda
Aturan “include provinsi” tidak memfilter kota
- Ini perilaku normal: include di level provinsi hanya memeriksa kode provinsi, tidak menurunkan ke kota kecuali provinsi = specific.
Multi-origin
- Aturan lokasi berlaku per origin. Ulangi konfigurasi untuk setiap gudang jika tarif wilayah berbeda per asal kirim