Cara Membuat Aturan Ongkir Custom/Manual (IndoOngkir Suite)
Struktur lengkap tabel Rules IndoOngkirCustom: menambah baris, mengisi title, lokasi, tarif per kg, min/max berat, ETD, dan menyimpan.
Anggap setiap baris di tabel Rules IndoOngkirCustom sebagai satu opsi pengiriman manual di checkout. Pelanggan akan melihat Nama Ongkir sebagai label metodenya; sementara di belakang layar, plugin akan mencocokkan alamat + berat keranjang dengan filter yang Anda set.
Tutorial ini membahas struktur field di satu baris rule, cara menambah/menghapus aturan, dan bagaimana penyimpanan bekerja (termasuk saat multi-origin aktif).
Prasyarat
- Status IndoOngkirCustom sudah aktif
- Sudah membaca Cara Mengatur IndoOngkirCustom
- Metode IndoOngkirCustom sudah ditambahkan ke Shipping Zone
Cara membuka pengaturan
- Buka WooCommerce → Pengaturan → IndoOngkir → IndoOngkirCustom.
- Scroll ke tabel Rules.
- Jika multi-origin aktif, pilih Origin di dropdown atas tabel terlebih dahulu.

Struktur kolom aturan
| Kolom UI | Key data | Keterangan |
|---|---|---|
| Nama Ongkir | title |
Wajib. Tanpa judul, baris diabaikan saat menghitung ongkir |
| Provinsi | province, province_specific, province_include[], province_exclude[] |
Mode all / specific / include / exclude |
| Kota/Kabupaten | city, city_specific, city_include[], city_exclude[] |
Sama seperti provinsi; pengecekan kota detail aktif jika provinsi = One province |
| Kecamatan | district, district_specific, district_include[], district_exclude[] |
Sama seperti kota; pengecekan kecamatan aktif jika kota = One city |
| Tarif (per kg) | weight_tarif |
Wajib angka. Biaya = tarif × berat kg keranjang |
| Min Weight (kg) | weight_minimum |
Opsional. Abaikan aturan jika berat di bawah nilai ini |
| Max Weight (kg) | weight_maximum |
Opsional. Abaikan aturan jika berat di atas nilai ini |
| ETD | etd |
Teks bebas, ditampilkan sebagai informasi estimasi |
Langkah-langkah
1. Tambah aturan baru
- Klik Add New Rule di bawah tabel.
- Isi Nama Ongkir yang akan dibaca pelanggan.
- Set filter lokasi (atau biarkan All untuk seluruh Indonesia).
- Isi Tarif (per kg).
- Opsional: Min/Max Weight dan ETD.
- Klik Simpan perubahan.

2. Kelola beberapa aturan sekaligus
- Tambahkan baris kedua untuk skenario lain (misalnya Kurir Express dengan tarif lebih tinggi).
- Urutan baris tidak menentukan prioritas; semua aturan yang cocok akan ditampilkan bersamaan sebagai opsi terpisah.
- Hapus baris dengan tombol remove (ikon dashicons) di kolom terakhir.
- Simpan setelah selesai mengedit.

3. Simpan per origin (multi-origin)
- Jika IndoMultiOrigin aktif, pilih Origin #1, #2, dst. di dropdown.
- Isi rules khusus untuk kota asal tersebut (tarif kurir lokal bisa berbeda per gudang).
- Simpan. Pengaturan origin lain tidak tertimpa.
Cara memastikan berhasil
- Setelah simpan, reload halaman admin: nilai aturan tetap ada
- Checkout dengan alamat yang memenuhi filter menampilkan Nama Ongkir yang sesuai
- Beberapa aturan yang cocok muncul sebagai beberapa opsi pengiriman
Catatan dan troubleshooting
Baris aturan hilang setelah simpan
- Pastikan Nama Ongkir dan Tarif terisi (field required di HTML)
- Cek tidak ada plugin keamanan yang memblokir array POST
indo_ongkir_custom_rules
Aturan muncul untuk semua pelanggan padahal sudah difilter
- Filter kota/kecamatan hanya ketat jika provinsi = One province dan kota = One city
- Untuk filter nasional tanpa hierarki ketat, gunakan mode include / exclude di level provinsi
ETD tidak tampil
- ETD disimpan di data rate internal; tampilan di checkout bergantung tema dan integrasi WooCommerce Shipping