← Semua artikel

Artikel

Biaya Kustomisasi Odoo di Indonesia: Per Jam vs Per Proyek

Rentang biaya jujur untuk kustomisasi Odoo di Indonesia 2026, plus kapan model per jam lebih menang dari fixed price — dan kapan kebalikannya.

4 menit baca
  • bottom

Tiga vendor memberi penawaran untuk kustomisasi Odoo yang sama. Satu bilang Rp 18 juta fixed. Satu Rp 35 juta fixed. Satu lagi bilang “sekitar Rp 250 ribu per jam, kira-kira 80–120 jam”. Wajar kalau Anda mengira yang termurah adalah harga karpet. Kenyataannya, quote fixed termurah dan quote per jam sering berakhir di angka yang sama — dan quote tengah kadang justru paling hemat.

Berikut peta harga sebenarnya di pasar Indonesia 2026, dan cara membaca quote tanpa terjebak.

Tarif per jam berdasarkan tier

Ada tiga rentang yang cukup stabil di pasar Jakarta / Bandung / Surabaya:

Freelance individu: Rp 150–300 ribu per jam. Biasanya satu orang, sering sambilan. Paling cepat mulai, paling murah, tapi tidak ada kelanjutan kalau orangnya pindah atau dapat tawaran lebih bagus.

Studio kecil (3–15 orang): Rp 300–600 ribu per jam. Satu senior yang scoping plus satu mid yang mengerjakan mayoritas build. Mayoritas pekerjaan kustomisasi Odoo nyata di Indonesia memang lewat tier ini.

Konsultan mapan: Rp 700 ribu – 1,5 juta per jam. Sudah termasuk project management proper, code review, dokumentasi. Worth-it kalau scope-nya kompleks atau ada audit, overkill untuk tweak kecil.

Untuk perbandingan, tarif offshore internasional (Vietnam, Filipina) biasanya mulai Rp 800 ribu per jam ke atas; firma yang HQ-nya di Singapura mematok Rp 2–4 juta per jam untuk developer Indonesia yang sama dengan badge berbeda.

Harga proyek untuk scope umum

Beberapa pola cukup sering muncul sampai harganya relatif stabil. Angka berikut full-cycle, sudah termasuk discovery, build, testing, dan training dasar:

  • Custom report atau template PDF sederhana: Rp 4–12 juta. Sekitar 1–3 hari kerja.
  • Tambah field plus perubahan form di module yang ada: Rp 6–18 juta.
  • Module baru dengan satu atau dua workflow (approval routing, aturan inventory kustom): Rp 25–80 juta.
  • Picking multi-warehouse dengan integrasi barcode: Rp 60–150 juta.
  • Extension POS kustom dengan integrasi hardware (timbangan, label printer): Rp 35–90 juta.
  • Sinkronisasi dua arah Tokopedia / Shopee (order, stok, status): Rp 80–200 juta tergantung edge case.
  • Export CSV e-Faktur dengan validasi NPWP dan laporan bukti potong: Rp 25–60 juta.
  • Routing manufaktur dengan gate quality control dan traceability: Rp 100–300 juta.

Ini rentang nyata, bukan ekspektasi. Kalau ada vendor banting harga setengah dari batas bawah, tanya persis apa yang tidak di-include. Kalau quote-nya dua kali batas atas, tanya nilai tambah apa yang Anda bayar — kadang alasannya real (sektor finansial yang teraudit, lokalisasi multi-bahasa), kadang cuma markup.

Kapan per jam menang dari fixed

Per jam menang ketika scope memang belum jelas. Vendor yang memberi quote fixed dengan percaya diri di atas requirement yang kabur, kalau bukan mark up tebal (Anda overpay), pasti akan balik minta change order (Anda overpay dengan cara lain). Versi jujurnya adalah “saya belum tahu — biaya discovery hitung per jam dulu, setelah spec jelas, baru kita quote build-nya fixed”.

Per jam juga menang untuk maintenance setelah go-live. Pasca go-live, Anda akan butuh beberapa jam per bulan untuk perbaiki bug, enhancement kecil, jawab pertanyaan user. Memaksa ini masuk format fixed-ticket malah bikin friksi. Retainer 20–40 jam per bulan dengan tarif yang sudah disepakati lebih bersih.

Risiko model per jam adalah plafon. Kami pernah lihat retailer Jakarta menghabiskan Rp 400 juta dalam enam bulan untuk pekerjaan yang seharusnya proyek fixed Rp 120 juta, karena tidak ada yang menarik garis “harusnya selesai di minggu 12”. Atasi ini dengan klausa not-to-exceed: “hitung per jam, batas X jam, di atas itu kita rescope bersama”.

Kapan fixed menang dari per jam

Fixed menang ketika requirement-nya jelas, tertulis, dan sudah di-sign off. Migrasi dari sistem lama ke Odoo dengan dataset yang sudah didefinisikan, bangun integrasi dengan API eksternal yang sudah ada dokumentasi dan stabil, replikasi laporan yang sudah ada di sistem lain — semuanya territory fixed-price.

Jebakannya adalah menganggap sesuatu “jelas” padahal belum. Kalau spec Anda bilang “sync dengan Tokopedia” tanpa menjelaskan apa yang terjadi pada order yang batal atau SKU yang habis stok saat sinkron, itu bukan spesifikasi. Itu harapan. Fixed-price di atas harapan akan menghasilkan output yang tidak Anda suka, atau pipeline change order.

Pola praktis: bayar dua sampai empat minggu pekerjaan discovery per jam, hasilkan functional spec yang ketat, baru tanda tangan kontrak fixed untuk build. Biaya discovery memang nyata (biasanya Rp 15–40 juta), tapi dramatis menurunkan risiko build-nya keluar jalur.

Seperti apa quote yang jujur

Angka sendiri tidak lebih penting dari struktur quote-nya. Vendor serius memecah estimasi menjadi discovery, design, development, testing, deployment, dan training, dengan estimasi jam masing-masing. Mereka menyebut asumsi yang menentukan harganya, dan apa yang terjadi kalau asumsi itu pecah. Mereka menyebut nama developer yang akan kerja dan seniority-nya. Mereka tunjukkan sample deliverable dari proyek sebelumnya.

Quote lemah hanya satu baris, “Kustomisasi Odoo”, dengan satu angka. Kalau Anda tidak bisa lihat asumsinya, Anda tidak bisa menilai apakah harganya wajar, apalagi memprediksi biaya change request.

Checklist singkat sebelum tanda tangan

Sebelum tanda tangan apapun, minta vendor jelaskan: satu proyek lampau dengan ukuran serupa, siapa yang melanjutkan kalau developer aslinya keluar, bagaimana change request dihargai, seperti apa periode garansi pasca go-live, dan apakah kode jadi milik Anda setelah dibayar lunas. Jawaban lima pertanyaan itu lebih informatif daripada angka di quote-nya.

Kalau Anda mau sanity check atas quote yang baru diterima — atau bantuan menyusun spec sebelum cari vendor — kami siapkan satu jam gratis. Bawa dokumennya kalau sudah ada; kami baca bersama dan tunjukkan apa yang kurang.