
Her Odoo projesi sonunda aynı soruyla karşılaşır: Standart akış yakındır ama işletmenin tam olarak istediği gibi değildir. Bir ayarı mı değiştirmelisiniz, Odoo Studio'yu mu açmalısınız, yoksa bir geliştiriciden özel bir modül mü yazmasını istemelisiniz? Bu sorunun cevabının maliyet, kararlılık ve her şeyden önce sürüm yükseltmeleri açısından uzun vadeli sonuçları vardır.
1CBMS olarak her uygulamada basit bir kural izliyoruz: önce yapılandırma, sonra Studio, sonra özel modüller. Bu merdivenden aşağı inilen her basamak esneklik kazandırır; ancak aynı zamanda işletmenin sistemin ömrü boyunca sahiplenmesi ve bakımını yapması gereken yeni bir unsur ekler.
Kaynaklar hakkında bir not: Bu makale, Odoo'nun 19.0 sürümüne ait resmi dokümantasyonunu esas alır. Menüler ve seçenekler sürümler, edisyonlar ve barındırma türleri arasında farklılık gösterebilir; bu nedenle üretimde değişiklik yapmadan önce davranışı mutlaka bir test veritabanında doğrulayın.
Birinci katman: Her şeyden önce yapılandırma
Odoo, her uygulamada çok sayıda ayar, seçenek ve yapılandırılabilir kayıtla birlikte gelir. Özelleştirme gibi görünen birçok talep aslında henüz etkinleştirilmemiş standart özelliklerdir; örneğin ek iş akışı adımları, belge düzenleri veya bir özellik etkinleştirildiğinde görünen isteğe bağlı alanlar.
Studio veya kod için herhangi bir şartname yazmadan önce sürecin kilit kullanıcılarıyla birlikte şu kontrolleri yapın:
- İlgili her uygulamanın Ayarlar sayfasını inceleyin ve her seçeneğin neyi etkinleştirdiğini okuyun.
- Gereksinimin aşamalar, etiketler, ekipler, operasyon türleri veya e-posta şablonları gibi yapılandırılabilir kayıtlarla karşılanıp karşılanmadığını kontrol edin.
- Logolar, renkler, yazı tipleri ve alt bilgiler için rapor şablonlarını düzenlemek yerine şirket belge düzeni ayarlarını kullanın.
- İşletmenin sürecini standart akışa uyarlayıp uyarlayamayacağını sorun; çünkü standart akışlar Odoo tarafından test edilir ve yükseltilir.
Yapılandırma, sahiplenilmesi en ucuz katmandır. Standart ürünün bir parçasıdır, yükseltme süreciyle birlikte taşınır ve birinin bakımını yapması gereken ayrı bir kod tabanı oluşturmaz.
İkinci katman: Odoo Studio neler yapabilir?
Odoo'nun dokümantasyonu Studio'yu, Odoo'yu kodlama bilgisi olmadan özelleştirmek için kullanılan bir araç kutusu olarak tanımlar. Değiştirmek istediğiniz uygulama ve modeldeyken Studio'yu Aç/Kapat simgesiyle açılır ve Kapat düğmesiyle kapatılır.
Resmi dokümantasyona göre Studio şu alanları kapsar:
- Alanlar: metin, tamsayı, ondalık, parasal, tarih, onay kutusu, seçim, dosya ve görsel gibi basit alanlar ile Many2One, One2Many, Satırlar, Many2Many, Etiketler ve ilişkili alanlar gibi ilişkisel alanlar.
- Görünümler: form, aktivite, arama, kanban, liste, harita, takvim, kohort, Gantt, pivot ve grafik görünümleri.
- Modeller ve uygulamalar: Oluşturmayı hızlandırmak için chatter, süreç aşamaları, etiketler, arşivleme ve satırlar gibi önerilen özelliklerle sıfırdan oluşturulan yeni modeller.
- Otomasyon kuralları: Değer güncellemelerine, e-posta olaylarına, zamanlama koşullarına, kayıt oluşturma veya silmeye, arayüz değişikliklerine ve harici webhook'lara dayalı tetikleyiciler.
- Onay kuralları: Düğmelere bağlı, onaylayıcıları kullanıcılar, gruplar veya her ikisi olarak tanımlanan onay adımları. Studio ayrıca webhook'ları ve güvenlik kurallarını da kapsar.
- PDF raporları: Rapor şablonlarında sabit metinleri düzenleme, dinamik alanlar, tablolar, sütunlar ve görseller ekleme; bir rapor üst bilgisini veya alt bilgisini düzenlemenin tüm raporları etkilediğini unutmayın.
Bir görünümü sürükle-bırak yöntemiyle değiştirdiğinizde Studio, standart görünümün üzerine yazmak yerine uygun devralınmış görünümü ve XPath'i otomatik olarak oluşturur. Tüm Studio çalışmaları veritabanınızda studio_customization adlı bir modülde toplanır; bu modül ZIP dosyası olarak dışa aktarılabilir ve başka bir veritabanına içe aktarılabilir.
Studio bir Odoo Enterprise uygulamasıdır. Resmi sayfa ayrıca Standard fiyatlandırma planındaki bir veritabanına Studio kurulmasının Custom plana yükseltme gerektirdiğini belirtir; bu nedenle etkinleştirmeden önce ticari etkisini Odoo hesap yöneticinizle kontrol edin. Community veritabanları Studio içermez; orada yapılandırmanın ötesindeki her şey geliştirici modundaki teknik ayarlar veya modüller aracılığıyla yapılır.
İkinci katmanın devamı: Studio'nun sınırları
Studio güçlüdür; ancak dokümantasyonun kendisi her projenin dikkate alması gereken çeşitli sınırlara ve risklere işaret eder:
- Bir alanın teknik adı oluşturulduktan sonra Studio'da değiştirilemez; özel alanlar en azından x_ ön ekini korumalıdır, Studio alanları ise x_studio_ ön ekini kullanır.
- Aktivite görünümü ve raporlardaki koşullu bloklar yalnızca XML düzenlenerek değiştirilebilir; bu da geliştirici modu gerektirir.
- Standart veya devralınmış görünümleri doğrudan düzenlemek önerilmez; çünkü bu değişiklikler güncellemeler veya modül yükseltmeleri sırasında sıfırlanır ve kaybolur.
- Odoo, standart bir raporun çoğaltılıp kopyanın düzenlenmesini önemle önerir ve rapor XML'ini doğrudan değiştirmenin yükseltmeler sırasında sorunlara yol açabileceği konusunda uyarır.
- Otomasyon kurallarındaki Kodu Çalıştır eylemi Python çalıştırır; dokümantasyon, özel kodun bakımının Standard veya Custom planlara dahil olmadığını ve ek ücrete tabi olduğunu belirtir.
- Hatalı yapılandırılmış webhook'lar veritabanını bozabileceğinden, webhook'lar bir geliştirici veya teknik rol ile birlikte tasarlanmalıdır.
- Dışa aktarılan Studio özelleştirmeleri yalnızca aynı Odoo sürümünde olan ve aynı uygulamaların ve modüllerin kurulu olduğu bir veritabanına içe aktarılabilir.
Pratikte Studio; veri girişi, düzen, basit otomasyon ve onaylar için idealdir. Kimsenin belgelemediği XML düzenlemeleri veya Kodu Çalıştır eylemleri içinde gerçek programlamayı gizlemek için kullanıldığında ise riskli hâle gelir.
Üçüncü katman: Özel bir Python modülü ne zaman gereklidir?
Özel modül; modeller, görünümler, güvenlik, veri dosyaları ve Python mantığı aracılığıyla Odoo'yu genişleten, Odoo'nun kendi uygulamaları için kullandığı çatıyla oluşturulmuş ayrı bir kod tabanıdır. Gereksinim, yapılandırmanın ve Studio'nun temiz bir şekilde ifade edebileceğinin ötesine geçtiğinde doğru araçtır.
Özel bir modül önerdiğimiz tipik durumlar şunlardır:
- Otomatik testler ve sürüm kontrolü gerektiren karmaşık iş kuralları, hesaplamalar veya kısıtlamalar.
- Sağlam hata yönetimi, yeniden denemeler ve günlük kaydı gerektiren harici sistemlerle entegrasyonlar.
- Yalnızca görüntülenme biçiminin değil, belgelerin nasıl doğrulandığı veya değerlerin nasıl hesaplandığı gibi standart iş mantığının değiştirilmesi.
Burada barındırma önemlidir. Resmi dokümantasyon, Odoo Online'ın özel modüllerle veya Odoo Apps Store'daki modüllerle uyumlu olmadığını belirtir. Özel modüller Odoo.sh veya şirket içi (on-premise) bir kurulum gerektirir; dolayısıyla barındırma kararı ile özelleştirme stratejisi birlikte verilmelidir.
Her seçeneğin sürüm yükseltmeye etkisi
- Yapılandırma: Standart ürünün bir parçasıdır ve standart yükseltme süreciyle taşınır.
- Studio: Odoo'nun dokümantasyonunda açıklanan yükseltme hizmetleri, Studio kurulu olduğu ve aboneliği aktif kaldığı sürece Studio uygulamasıyla oluşturulan tüm özelleştirmelerin yükseltilmesini kapsar.
- Özel modüller: Özel modül içeren bir veritabanı, bu modüllerin hedef Odoo sürümü için bir sürümü hazır olana kadar yükseltilemez ve modülü uyumlu hâle getirmek, modülün bakımını yapan tarafın sorumluluğundadır.
Odoo'nun özelleştirilmiş bir veritabanını yükseltme rehberi; geliştirmeyi dondurmayı, hangi özel özelliklerin artık yerleşik olarak sunulduğunu kontrol etmeyi, her modülün hedef sürümün boş bir veritabanına sorunsuz kurulmasını sağlamayı, yeniden adlandırılan modeller, alanlar ve harici tanımlayıcılar için yükseltme betikleri yazmayı ve üretime dokunmadan önce yükseltmenin provasını yapmayı önerir.
Katman hangisi olursa olsun, yükseltilmiş veritabanını kapsamlı bir şekilde test edin. Dokümantasyon; entegrasyonlar, otomatik eylemler, sunucu eylemleri ve raporlar dahil olmak üzere iş akışlarının uçtan uca test edilmesini önerir ve test veritabanlarının nötrleştirildiğini, planlanmış eylemlerin ve giden e-postaların devre dışı bırakıldığını hatırlatır.
Yönetişim: Özelleştirmeleri kontrol altında tutmak
Özelleştirmeler nadiren ilk gün başarısız olur. Yıllar sonra, bir alanın neden var olduğunu veya bir otomasyon kuralını kimin yazdığını kimse hatırlamadığında başarısız olurlar. Hafif bir yönetişim modeli bunu önler.
- Her Studio alanını, görünüm değişikliğini, otomasyon kuralını, onay kuralını, raporu ve özel modülü sorumlusu ve iş gerekçesiyle birlikte listeleyen bir özelleştirme kaydı tutun.
- Tüm değişiklikleri önce bir test veya hazırlık (staging) veritabanında yapın, ardından kontrollü bir süreçle üretime taşıyın.
- Studio'yu ve geliştirici modunu eğitimli yöneticilerle sınırlayın; dokümantasyonun kendisi bazı geliştirici araçlarının ileri düzey olduğu ve risk taşıdığı konusunda uyarır.
- Her yükseltmeden önce kaydı gözden geçirin ve yeni sürümün yerleşik olarak karşıladığı özelleştirmeleri kullanımdan kaldırın.
- Özel modül kodunu testlerle birlikte sürüm kontrolünde tutun ve bunun için bir bakım düzenlemesi bulunduğundan emin olun.

Çalıştaylarda uygulayabileceğiniz bir karar matrisi
Yeni bir gereksinim ortaya çıktığında bu soruları sırayla ele alır ve gereksinimi karşılayan ilk katmanda dururuz.
- Standart bir ayar, yapılandırılabilir bir kayıt veya süreç değişikliği ihtiyacı karşılayabilir mi? Yapılandırmayı kullanın.
- Yeni bir alan, görünüm düzeni değişikliği, basit bir otomasyon, onay adımı veya rapor metni değişikliği mi? Studio'yu kullanın.
- Python mantığı, otomatik testler, karmaşık entegrasyon veya veritabanları arasında yeniden kullanım gerektiriyor mu? Özel bir modül kullanın.
- Veritabanı Odoo Online'da mı? Yapılandırma ve Studio sınırları içinde kalın veya önce Odoo.sh'a ya da şirket içi kuruluma geçişi planlayın.
1CBMS nasıl yardımcı olabilir?
1CBMS, Mısır ve Irak'taki şirketlerin standarda yakın kalan Odoo 19 Enterprise çözümleri tasarlamasına yardımcı olur. Yapılandırmayı gerçek boşluklardan ayırmak için uygunluk-boşluk (fit-gap) çalıştayları düzenler, disiplinli Studio özelleştirmeleri oluşturur, gerçekten gerektiğinde özel modüller geliştirir ve bakımını yapar, sisteminizin sürdürülebilir kalması için özelleştirme kayıtları ve yükseltme test planları hazırlarız. Mevcut özelleştirmelerinizi gözden geçirmek veya yeni bir uygulama planlamak için www.1cbms.com üzerinden bizimle iletişime geçin.