Upgrade ke Odoo 20: Checklist untuk Manajemen
Masalah upgrade yang mahal adalah yang tidak memunculkan error. Pelajaran dari migrasi nyata Odoo 19 ke 20, dan checklist bagi yang memberi persetujuan.
Ini adalah bagian 7, bagian terakhir dari seri Odoo 20 kami. Bagian-bagian sebelumnya membahas apa yang ditambahkan Odoo 20. Bagian ini membahas apa yang diperlukan untuk sampai ke sana dengan aman. Artikel ini ditulis untuk mereka yang menyetujui anggaran dan menandatangani go-live, bukan untuk mereka yang menulis kode.
Pelajaran utamanya muat dalam satu kalimat: masalah upgrade yang mahal bukanlah yang membuat sistem macet, melainkan yang tetap berjalan dan diam-diam melakukan hal yang salah.
Pelajaran dari migrasi nyata
Kami memindahkan modul-modul kustom milik sebuah grup restoran di Indonesia dari Odoo 19 ke Odoo 20: impor POS dari sistem pihak ketiga, transfer stok antarperusahaan, distribusi bill of materials central kitchen, persetujuan purchase order berjenjang, dan modul untuk lampiran serta toleransi penerimaan barang.
Perubahan yang memunculkan error saat pertama dipakai mudah ditemukan dan diperbaiki. Yang patut dikhawatirkan justru yang tidak memunculkan error sama sekali:
- Biaya yang tandanya akan terbalik. Odoo 20 mencatat nilai stok keluar dengan cara berbeda. Sebuah kustomisasi yang membawa biaya per unit dari satu perusahaan ke perusahaan lain akan membukukan setiap penerimaan dengan biaya negatif. Tidak ada yang macet. Angkanya saja yang salah.
- Kunci persetujuan yang berhenti mengunci. Setelah purchase order diajukan, beberapa kolom seharusnya terkunci, termasuk satuan barang. Odoo 20 mengganti nama kolom itu, sehingga kunci tetap mencari nama yang sudah tidak ada, dan kolom itu kembali bisa diubah tanpa ada yang diberi tahu.
- Tombol yang menghilang. Odoo 20 mengganti set ikonnya. Tombol kustom yang memakai ikon lama tetap berfungsi, tetapi tampil kosong.
- Aturan akses yang bisa mengunci semua orang. Odoo 20 menyatukan dua sistem hak aksesnya menjadi satu. Menerjemahkan aturan lama kata per kata akan memblokir semua pengguna dari sebagian sistem.
- Kustomisasi POS yang berhenti berjalan. Tutup sesi POS yang ditulis ulang (lihat bagian 2) tidak menyisakan tempat bagi kustomisasi lama untuk menempel. Kustomisasi itu tidak gagal. Ia hanya tidak pernah dipanggil.
Semua ini tertangkap selama proses porting, sebelum go-live, karena setiap modul kustom diperiksa terhadap versi baru, bukan menunggu sesuatu rusak. Mencari fitur yang dihapus saja tidak cukup. Biayanya tersembunyi pada hal-hal yang berubah makna tetapi namanya tetap.
Ada juga kabar baik: modul keenam dihentikan, bukan dipindahkan. Modul itu hanya ada untuk mengizinkan kode jurnal yang lebih panjang, dan Odoo 20 sudah menghapus batasan itu sendiri. Memindahkannya kata per kata justru akan mengembalikan batasan tersebut. Setiap upgrade sebaiknya menyertakan pertanyaan: kustomisasi mana yang tidak lagi diperlukan di versi baru?
Untuk memeriksa ulang hasil kerja kami, kami membandingkan hasilnya dengan database Odoo 19 yang sedang berjalan dalam mode hanya-baca (jurnal sesi, tanggal pembayaran, konfigurasi) melalui ODXProxy, gateway yang kami bangun di Keyklik. Dengan begitu kami bisa memverifikasi tanpa risiko mengubah data produksi.
Integrasi: empat hal yang bisa rusak tanpa peringatan
Jika ada sistem lain yang terhubung ke Odoo Anda, seperti toko online, platform pengiriman, aplikasi mobile, dashboard BI, atau skrip backup, periksa hal-hal berikut:
- Kunci integrasi kini terikat pada satu keperluan. Di Odoo 20, kunci akses hanya berlaku untuk jenis koneksi yang menjadi tujuan penerbitannya. Kunci serbaguna yang lama bisa berhenti berfungsi. Rencanakan penerbitan ulang kunci integrasi setelah upgrade, dan uji sebelum cut-over.
- File dan gambar dikirim dalam format berbeda. Sistem yang mengunduh PDF faktur, foto produk, atau lampiran dari Odoo perlu disesuaikan.
- Sebagian data berganti nama atau digabung. Contohnya kolom satuan, data scrap, jenis cuti, dan account group (lihat bagian 3 sampai 5). Integrasi yang membacanya akan gagal, atau lebih buruk lagi, diam-diam tidak mendapat apa-apa.
- Backup database lewat metode jarak jauh lama tidak lagi berfungsi. Jika ada skrip otomatis yang mem-backup atau mendaftar database dengan cara itu, skrip itu akan berhenti. Pastikan backup Anda masih berjalan setelah upgrade. Inilah yang tidak disadari siapa pun sampai backup benar-benar dibutuhkan.
Hitungan mundur dua versi
Metode koneksi klasik yang dipakai banyak integrasi masih berfungsi di Odoo 20, tetapi Odoo telah mengumumkan bahwa metode itu dijadwalkan dihapus di Odoo 22. Artinya tersisa sekitar dua versi besar untuk memindahkan integrasi ke antarmuka Odoo yang lebih baru. Belum mendesak hari ini, tetapi sebaiknya masuk anggaran TI untuk satu-dua tahun ke depan, bukan menjadi kejutan nanti.
Menjalankan dua versi berdampingan
Selama upgrade, sebagian besar organisasi menjalankan Odoo 19 dan Odoo 20 berdampingan untuk sementara: produksi di satu versi, pengujian di versi lain. Akan sangat membantu jika aplikasi Anda terhubung melalui satu gateway, bukan masing-masing menyimpan kunci dan detail koneksi Odoo sendiri. Memindahkan aplikasi dari instance lama ke yang baru, atau menerbitkan ulang kunci, cukup dilakukan di satu tempat. Itulah peran lapisan proxy seperti ODXProxy. Proxy tidak mengubah apa yang dikirim Odoo 20, jadi aplikasi tetap perlu penyesuaian di atas, tetapi peralihannya tetap terkendali.
Server di bawahnya
Odoo 20 memerlukan fondasi teknis yang lebih baru (Python 3.12 dan PostgreSQL 16 atau lebih baru).
- Jika Odoo yang meng-hosting sistem Anda, sebagian besar ini tanggung jawab mereka. Pastikan jadwalnya dengan mereka.
- Jika Anda meng-hosting sendiri atau di penyedia cloud, upgrade bisa mencakup upgrade sistem operasi dan database. Sediakan waktu, karena itu proyek tersendiri.
Odoo 20 juga memperkenalkan mesin pembuat dokumen PDF miliknya sendiri, di samping mesin lama. Cetak dan bandingkan dokumen-dokumen utama Anda (faktur, faktur pajak, surat jalan, slip gaji, purchase order) di sistem uji sebelum go-live. Perbedaan tata letak mudah terlewat dan canggung untuk dijelaskan ke pelanggan.
Checklist sebelum menyetujui go-live
Sebelum menyetujui go-live, minta tim atau mitra Anda mengonfirmasi setiap poin:
- Setiap modul kustom sudah diperiksa terhadap Odoo 20, bukan sekadar terpasang. Tanyakan mana yang dihentikan karena sudah ditangani sistem inti.
- Angka keuangan cocok. Neraca saldo, valuasi stok, dan piutang sudah direkonsiliasi antara sistem lama dan baru di salinan uji.
- Integrasi sudah diuji dari ujung ke ujung, dengan kunci yang baru diterbitkan.
- Backup berjalan, dan proses restore benar-benar sudah diuji.
- Dokumen utama tercetak dengan benar.
- Pengguna sudah berlatih rutinitas yang berubah: tutup sesi POS, scrap, pengajuan cuti, peringatan produksi.
- Ada rencana rollback dengan pengambil keputusan yang jelas dan tenggat waktunya.
Merencanakan perpindahan ke Odoo 20? Lihat layanan kami atau hubungi tim Keyklik.
Seri Odoo 20
- Apa yang Baru untuk Bisnis Anda
- Point of Sale untuk Restoran dan Ritel
- Inventori dan Manufaktur
- Akuntansi dan Pembelian
- SDM dan Absensi
- AI Agent dan MCP
- Merencanakan Upgrade (artikel ini)
Catatan (DYOR — Do Your Own Research): Artikel ini didasarkan pada perbandingan kode sumber Odoo 19 dan Odoo 20 yang kami lakukan sendiri serta pada proyek migrasi yang, saat artikel ini ditulis, belum go-live. Ini bukan dokumentasi upgrade resmi Odoo. Setiap sistem berbeda. Verifikasi ke dokumentasi upgrade dan catatan rilis resmi Odoo, uji di salinan database Anda sendiri, dan konsultasikan dengan mitra implementasi, akuntan, dan penasihat TI Anda sebelum meng-upgrade sistem produksi.