Skip ke Konten
ERP Infinys
  • Beranda
  • Solusi
    shopping_cart

    ShopUp

    E-commerce UMKM yang Siap Jualan
    a person sitting at a desk with a calculator and a notebook

    IntegraERP

    Kelola Operasional dengan Mudah
    shopping_cart_2

    Bengkelin

    Soluse Lengkap untuk Bisnis Otomotif
    Coretax

    Layanan

    Layanan Kami
    shopping_cart2

    TixUp

    Ticketing untuk Event, Travel atau Konser
    black iphone 4 on gray textile

    IntegraCampaign

    Kirim Pesan Massal & Survey Tanpa Ribet
    efaktur

    CareServiceOps

    Digitalisasi Service Center
    shopping_cart3

    BizUp

    Company Profile yang Naik Kelas
    coconut palm trees in hotel lobby

    IntegraHotel

    Kelola Hotel Lebih Mudah dan Terintegrasi
    a screenshot of a computer

    WAPI

    WhatsApp API Gateway 
  • Portofolio
    • Produk kami
    • Odoo addons
    • Portofolio proyek
  • Artikel
    • Berita
    • Basis pengetahuan
    • Otomatisasi
    • Laporan
    • Videos
  • Tentang
  • 021-2968-2828
  • EN ID
  • Hubungi kami
ERP Infinys
      • Beranda
      • Solusi
      • Portofolio
        • Produk kami
        • Odoo addons
        • Portofolio proyek
      • Artikel
        • Berita
        • Basis pengetahuan
        • Otomatisasi
        • Laporan
        • Videos
      • Tentang
    • 021-2968-2828
    • EN ID
    • Hubungi kami

    Mengelola Klaim Garansi Tanpa Excel: Studi Kasus Custom Module Warranty Tracking di Odoo 19

    Studi kasus custom development Odoo untuk distributor dengan produk bergaransi" (paling netral/deskriptif)
  • Semua Blog
  • Basis pengetahuan
  • Mengelola Klaim Garansi Tanpa Excel: Studi Kasus Custom Module Warranty Tracking di Odoo 19
  • 29 Juli 2026 oleh
    Admin

    Bagi bisnis yang menjual produk bergaransi — mulai dari distributor peralatan instrumentasi, elektronik, hingga alat berat — pertanyaan pelanggan yang paling sering muncul justru sederhana: "Garansi barang saya masih berlaku atau tidak?"

    Masalahnya, banyak bisnis di Indonesia masih menjawab pertanyaan ini dengan cara yang sama: buka file Excel, cari nomor invoice, hitung manual dari tanggal pengiriman. Prosesnya lambat, rawan salah hitung, dan tidak bisa diakses tim customer service secara real-time.

    Di IntegraERP, kami membangun solusi ini langsung di dalam sistem Odoo yang sudah dipakai tim sales dan gudang sehari-hari — tanpa aplikasi tambahan, tanpa proses manual.

    Masalah yang Sering Ditemui Bisnis SME

    Dari pengalaman implementasi di beberapa klien distributor dan retail, ada tiga masalah berulang terkait garansi:

    1. Tanggal mulai garansi tidak konsisten. Sebagian bisnis menghitung dari tanggal invoice, sebagian dari tanggal pengiriman barang — dan keduanya sering tidak sama karena proses logistik.
    2. Produk dengan serial number butuh tracking per unit, bukan per pesanan. Satu sales order bisa berisi 10 unit barang dengan 10 tanggal garansi berbeda jika ada pengiriman parsial.
    3. Tim sales dan customer service tidak punya akses cepat untuk mengecek status garansi tanpa membuka laporan terpisah atau bertanya ke tim akunting.

    Solusi: Warranty Tracking Terintegrasi di Odoo

    Kami membangun tiga komponen yang saling terhubung untuk menjawab masalah ini:

    1. Laporan Warranty Otomatis (Warranty Report)

    Sebuah report khusus yang menarik data langsung dari Sales Order, Invoice, Delivery, dan Serial/Lot Number yang tercatat di sistem — tanpa perlu input ulang data apa pun oleh user.

    Logika perhitungan garansinya dibuat mengikuti kondisi nyata di lapangan:

    • Jika produk memiliki serial number, tanggal expired garansi mengikuti tanggal yang tercatat di serial number tersebut (lebih presisi per unit barang).
    • Jika tidak ada serial number, sistem menghitung otomatis dari tanggal invoice + periode garansi produk (dalam bulan).
    • Status garansi otomatis terklasifikasi menjadi empat kategori: Active, Expired, No Expiry, dan No Invoice (untuk kasus barang sudah dikirim tapi invoice belum terbit).

    Report ini bisa difilter berdasarkan pelanggan, nomor sales order, atau serial number — dan di-group berdasarkan status atau customer untuk kebutuhan monitoring tim customer service.

    2. Smart Button Langsung di Sales Order

    Alih-alih tim sales harus pindah ke menu report terpisah, kami menambahkan smart button "Warranty" langsung di halaman Sales Order — pola UI yang sama dengan smart button bawaan Odoo seperti "Invoiced" atau "Delivered".

    Tombol ini:

    • Otomatis tersembunyi jika sales order tersebut tidak memiliki produk bergaransi, menjaga tampilan tetap bersih untuk order yang tidak relevan.
    • Menampilkan jumlah record garansi terkait order tersebut secara langsung di angka besar pada tombol.
    • Saat diklik, langsung membuka daftar detail garansi untuk order tersebut — lengkap dengan status, serial number, dan tanggal expired.

    3. Data yang Selalu Real-Time

    Karena seluruh logika ini dibangun sebagai SQL view yang menarik data langsung dari tabel transaksi (sales order, delivery, invoice, stock lot), laporan ini tidak butuh proses sinkronisasi atau input manual tambahan. Begitu invoice diposting atau barang dikirim, status garansi otomatis ter-update.

    Manfaat untuk Bisnis

    Fitur sederhana ini memberikan dampak langsung pada operasional:

    • Customer service bisa langsung menjawab pertanyaan pelanggan soal status garansi tanpa menunggu tim lain.
    • Tim sales punya visibilitas langsung dari halaman order yang sedang mereka kerjakan.
    • Manajemen punya data agregat kapan saja untuk melihat berapa banyak unit yang masih dalam masa garansi aktif — berguna untuk proyeksi biaya after-sales service.

    Studi Kasus: Distributor Instrumentasi dengan Multi-Warehouse

    Fitur ini pertama kali kami kembangkan untuk klien di industri distribusi instrumentasi dan fiber optic, dengan kebutuhan spesifik: produk dijual dalam satuan meter/roll/drum, sebagian dengan serial number per unit, dan proses invoice yang tidak selalu bersamaan dengan pengiriman barang. Custom module ini menjadi bagian dari implementasi Odoo 19 yang lebih luas, mencakup juga penomoran invoice ganda (PPN/Non-PPN) dan kontrol akses berbasis field untuk data sensitif seperti harga pokok.

    Untuk yang Penasaran dengan Sisi Teknisnya (Functional & Developer)

    Bagi rekan-rekan yang familiar dengan Odoo, berikut gambaran arsitektur di balik fitur ini:

    Laporan dibangun sebagai SQL View (_auto = False), bukan model tabel biasa. Artinya tidak ada data yang disimpan ulang atau di-duplikasi — laporan ini murni hasil JOIN real-time dari tabel sale_order, sale_order_line, stock_move, stock_move_line, stock_picking, stock_lot, dan account_move. Konsekuensinya: performa query tetap ringan karena Postgres yang menangani agregasi, dan data selalu konsisten dengan transaksi asli — tidak ada risiko laporan "telat sync".

    Beberapa detail implementasi yang mungkin relevan untuk tim developer lain yang ingin membangun fitur serupa:

    • Perhitungan tanggal expired garansi menggunakan CASE WHEN untuk membedakan produk dengan serial/lot tracking (ambil dari stock_lot.warranty_expiry_date) vs. produk tanpa tracking (hitung dari invoice_date + interval bulan), dengan fallback status 'No Invoice' untuk barang yang sudah dikirim tapi belum di-invoice.
    • Smart button di form Sales Order memakai pola standar Odoo: compute field Boolean untuk kontrol invisible, dan compute field Integer dengan widget="statinfo" untuk menampilkan angka — sama persis dengan pola smart button bawaan seperti "Invoiced" atau "Delivered", supaya konsisten secara UX.
    • Filter dan group-by di search view mengikuti sedikit perubahan syntax pada Odoo 19 dibanding versi sebelumnya — beberapa struktur <group> untuk grouping filter perlu disesuaikan dari cara penulisan di Odoo 17/18.

    Pendekatan ini sengaja dipilih supaya module tetap ringan untuk di-maintain dan tidak menambah beban database dengan cron job atau computed stored field yang perlu dijadwalkan ulang.

    Satu detail penting: status Active/Expired ini tidak dihitung sekali lalu disimpan, melainkan dievaluasi ulang setiap kali laporan dibuka, dengan membandingkan tanggal expired terhadap NOW() (waktu saat query dijalankan):

    sql

    CASE
        WHEN lot.warranty_expiry_date < NOW() THEN 'Expired'
        ELSE 'Active'
    END

    Artinya, sebuah produk yang hari ini masih berstatus Active akan otomatis berubah menjadi Expired begitu tanggal garansinya lewat — tanpa perlu cron job, tanpa perlu proses batch harian, dan tanpa risiko status "basi" karena lupa di-refresh. Setiap kali user membuka report ini, statusnya selalu mencerminkan kondisi hari itu juga.

    Cocok untuk Perusahaan Seperti Apa?

    Fitur warranty tracking seperti ini paling relevan untuk bisnis dengan karakteristik berikut:

    • Menjual produk fisik bergaransi, baik garansi dari prinsipal/pabrikan maupun garansi toko sendiri — misalnya elektronik, alat instrumentasi, peralatan industri, IT hardware, atau alat berat.
    • Melacak barang per unit dengan serial number/lot, bukan hanya per jenis produk — umum di distributor, reseller resmi, atau perusahaan yang menangani barang dengan nilai satuan tinggi.
    • Punya proses invoice dan pengiriman yang tidak selalu bersamaan — misalnya karena termin pembayaran, retensi, atau pengiriman parsial — sehingga perhitungan garansi manual jadi rawan salah.
    • Memiliki tim after-sales/service yang perlu menjawab klaim garansi pelanggan dengan cepat, tanpa bolak-balik ke tim akunting atau gudang untuk verifikasi.
    • Sudah menggunakan atau berencana migrasi ke Odoo, dan ingin fitur seperti ini menyatu langsung ke alur kerja sales-delivery-invoice yang sudah berjalan, bukan sistem terpisah yang perlu di-maintain sendiri.

    Sebaliknya, untuk bisnis jasa murni tanpa produk fisik bergaransi, atau bisnis dengan volume transaksi sangat kecil yang masih nyaman dikelola manual, kompleksitas fitur ini mungkin belum diperlukan dalam waktu dekat.


    Screenshot :

    1. Produk master dengan tambahan informasi Warranty

    warranty_odoo1


    2. SO dengan Smart Ribbon Warranty

    warranty_odoo3


    3. Daftar semua produk yang bergaransi dan ada masa waktunya

    Kesimpulan

    Garansi produk bukan sekadar catatan administratif — ini adalah bagian dari pengalaman pelanggan yang bisa jadi nilai jual tersendiri jika dikelola dengan baik. Dengan custom module warranty tracking yang terintegrasi langsung ke alur kerja Odoo yang sudah ada, bisnis tidak perlu sistem tambahan atau proses manual untuk memberikan jawaban cepat dan akurat kepada pelanggan.

    Tertarik menerapkan solusi serupa untuk bisnis Anda? Tim IntegraERP siap membantu analisis kebutuhan dan implementasi custom module yang sesuai dengan proses bisnis Anda.

    di dalam Basis pengetahuan
    # Inventory Odoo Sales
    Admin 29 Juli 2026
    Share post ini
    Label
    Inventory Odoo Sales
    Blog-blog kami
    • Berita
    • Basis pengetahuan
    • Otomatisasi
    • Laporan
    • Videos
    Masuk untuk meninggalkan komentar
    Migrasi dari Xero ke Odoo: Perbandingan, Proses, dan Tantangan yang Perlu Diketahui
    Panduan Praktis dari Perencanaan COA hingga Go-Live
    Beranda Layanan Portofolio Artikel Tentang Hubungi kami
    Ikuti kami
    Klik di sini untuk menyiapkan jaringan sosial Anda
    Klik di sini untuk menyiapkan jaringan sosial Anda
    Klik di sini untuk menyiapkan jaringan sosial Anda
    Copyright © Infinyscloud
    en | id
    Dipersembahkan oleh Odoo - Buat sebuah website gratis