Platform Geliştiricileri İçin Nordlet ve Odoo Karşılaştırması
Her ürünün kendi dokümantasyonuna dayanarak, gömülü bir muhasebe API'si ile açık kaynaklı bir ERP paketi arasında karar veren geliştiriciler için bir karşılaştırma.
Odoo ve Nordlet, platform ekipleri tarafından sıklıkla aynı kısa listede değerlendirilir, ancak bunlar aynı kategorideki ürünler değildir. Odoo, içinde muhasebe barındıran, kendi sunucunuzda barındırabileceğiniz (self-host) ve üzerinde değişiklik yapabileceğiniz geniş bir iş uygulamaları paketidir. Nordlet ise başka bir ürünün içinden çağrılmak üzere tasarlanmış, muhasebe dışında başka bir iddiası olmayan bir muhasebe arka ucudur (backend).
Seçim genellikle iki soruya indirgenir: İşinizin ne kadarını tek bir sistemde tutmak istiyorsunuz ve bunu kim çalıştıracak? Aşağıda Odoo hakkında yer alan her şey, ilgili yerlerde bağlantıları verilen Odoo'nun kendi dokümantasyonundan ve fiyatlandırma sayfalarından alınmıştır.
Her bir ürünün ne olduğu
Odoo, muhasebe, envanter, üretim, satış, CRM, insan kaynakları, web siteleri ve daha fazlasını kapsayan; Odoo Online, Odoo.sh veya kendi sunucunuzda barındırma seçenekleriyle sunulan açık kaynaklı bir pakettir. Güçlü yönleri genişliği, genişletilebilirliği ve sistemi kendiniz çalıştırabilme seçeneğidir. Ülkeye özgü muhasebe davranışları yerelleştirme modüllerinden gelir ve etrafındaki topluluk oldukça büyüktür.
Nordlet, bulut tabanlı bir muhasebe API'sidir. Tek bir REST arayüzü üzerinden değiştirilemez (immutable) çift taraflı defter-i kebir (double-entry ledger), faturalama, satın alma kayıtları, banka hareketleri ve mutabakatı, envanter, duran varlıklar, bordro, raporlama ve AB vergi yönetimi sunar. Şu anda tek bir OpenAPI spesifikasyonundan üretilen 29 modül altında 400'den fazla uç nokta (endpoint) barındırmaktadır. Bir uygulaması vardır ve bu uygulama, harici çağrı yapanların kullandığı aynı uç noktalar üzerinde çalışır.
Çoğu değerlendirmeyi belirleyen API sorusu
Ürünlerin platform geliştiricileri için en keskin şekilde ayrıldığı nokta burasıdır.
Odoo'nun harici API'si model düzeyindedir. Kimlik doğrulaması yaptıktan sonra, yevmiye kayıtları ve faturalar için account.move, kişiler için res.partner ve hesap planı için account.account gibi veri modelleri üzerinde ORM yöntemlerini XML-RPC veya JSON-RPC üzerinden çağırırsınız. Bu oldukça güçlüdür: Sistemin modelleyebileceği her şeye ulaşabilirsiniz. Aynı zamanda, modelleri doğru kullanma sorumluluğu size aittir ve entegrasyonunuz kararlı bir alan adı sözleşmesine (domain contract) değil, Odoo'nun dahili veri modeline sıkı sıkıya bağlıdır (coupled).
Odoo'nun kendi materyallerindeki iki gerçek, bu hesaplamayı değiştirmektedir:
- Odoo'nun dokümantasyonu, harici API erişiminin One App Free veya Standard planlarında değil, yalnızca Custom fiyatlandırma katmanında (tier) mevcut olduğunu belirtmektedir. Dolayısıyla API erişimi yalnızca teknik değil, aynı zamanda bir fiyatlandırma kararını da beraberinde getirir. Güncel planlar ve fiyatlar Odoo fiyatlandırma sayfasında yer almaktadır.
- Odoo;
/xmlrpc,/xmlrpc/2ve/jsonrpcuç noktalarının -Odoo 22 ve Odoo Online 21.1 sürümlerinde- kaldırılmasının planlandığını ve bunların yerine daha yeni bir JSON-2 API geleceğini duyurmuştur. Mevcut RPC uç noktalarına göre yazılmış bir entegrasyonun gelecekte bir migrasyona ihtiyacı olacaktır.
Nordlet'in API'si alan adı düzeyindedir (domain-level). İşlemler JSON gövdesiyle birlikte POST /v1/{module}/{resource}/{action şeklinde yapılır; yani bir yevmiye modelini doğrudan manipüle etmek yerine sales/invoices/issue çağrısı yaparsınız ve muhasebe sonuçlarının sorumluluğu API'ye aittir. Anahtarlar sales:write gibi yetki kapsamları (scope) taşır. Yeniden denemeler (retries) bir Idempotency-Key başlığıyla korunur: aynı yük (payload) ile gönderilen aynı anahtar saklanan yanıtı yeniden oynatır (replay), değiştirilmiş bir yük ile gönderilen aynı anahtar ise sessizce kabul edilmek yerine idempotency_key_reuse hatasıyla reddedilir. Webhook olayları, değişiklik ile aynı veritabanı işleminde (transaction) işlemsel bir giden kutusuna (transactional outbox) yazılır; bu sayede geri alınan (rolled-back) bir belge asla bir olay tetiklemez ve teslimatlar doğrulayabileceğiniz bir HMAC imzasıyla imzalanır.
Özellik karşılaştırması
"Herkese açık olarak onaylanmadı" olarak işaretlenen hücreler, bir geliştiricinin taahhütte bulunmadan önce ihtiyaç duyacağı düzeyde bu yetkiyi doğrulayamadığımız anlamına gelir. Bunlar, özelliğin bulunmadığı iddiaları değildir.
| Yetenek | Nordlet | Odoo |
|---|---|---|
| Ürün biçimi | Muhasebe API'si, barındırılan (hosted) | Tam iş paketi; barındırılan veya kendi sunucunuzda |
| Birincil arayüz | Tipli TypeScript SDK ile REST API | Web uygulaması; model düzeyinde harici API |
| API protokolü | HTTPS üzerinden JSON, eylem başına RPC tarzı POST | XML-RPC ve JSON-RPC, yerini alan JSON-2 API ile |
| API kullanılabilirliği | Her plan, tüm modüller | Odoo dokümantasyonuna göre Custom planı |
| Çift taraflı defter (Double-entry ledger) | Evet, commit anında veritabanı tetikleyicisiyle zorlanan bakiye | Evet, muhasebe modülü içinde |
| Dönem kilitleme (Period locking) | Evet; kilitli bir döneme ait tarihler içeren kayıtlar 409 ile reddedilir |
Muhasebe modülünde desteklenen kilit tarihleri |
| İstek tekillik anahtarları (Idempotency keys) | Evet, yeniden oynatma ve çakışma dahil belgelenmiş semantik | Harici API için herkese açık olarak onaylanmadı |
| Webhook'lar | Evet, imzalı, yeniden denenen, işlemsel giden kutusundan | Otomatik eylemler ve webhook'lar mevcut; teslimat garantileri herkese açık olarak onaylanmadı |
| Denetim kaydı (Audit record) | Aktör, eylem, varlık ve fark (diff) ile her mutasyon; sorgulanabilir | Chatter ve log notları; kapsam modele göre değişir |
| AB KDV'si | AB-27 için ülkeye özel oranlar, VIES doğrulaması, düzeltmelerle birlikte OSS/IOSS hesaplaması | Ülkeye özel yerelleştirme modülleri; derinlik ülkeye göre değişir |
| E-Fatura | Peppol BIS 3.0 için EN 16931 UBL; IT, PL, RO için ulusal formatlar | Yerelleştirme modülleri çeşitli ulusal formatları kapsar |
| Envanter, üretim | FIFO stok, ürün reçeteleri, montaj ve demontaj, rotalar, iş merkezleri, operasyon bazlı kayıt içeren üretim emirleri, kalite kontrolleri, bakım | Kapsamlı, temel bir güç |
| CRM, web sitesi, pazarlama | Yalnızca iş ortağı talepleri, grupları ve durumları; web sitesi oluşturucu veya pazarlama araçları yok | Evet, temel bir güç |
| Kendi sunucusunda barındırma (Self-hosting) | Hayır; Custom katmanında BYOC desteği listelenmiştir | Evet |
| Kaynak kodu erişilebilirliği | Mülkiyete ait (Proprietary) | Ücretli sürümleri olan açık kaynak çekirdek |
| Çoklu şirket (Multi-company) | Tek hesap altında sınırsız şirket, rol tabanlı erişim | Çoklu şirket desteklenir |
Fiyatlandırma modelleri
Farklı şeylerden ücret aldıkları için bire bir karşılaştırılamazlar.
Odoo kullanıcı başına aylık ücret alır; tek bir uygulamayla sınırlı ücretsiz bir katmana ve Custom katmanında harici API erişimine sahiptir. Bir platform için sıkıntılı olan kısım, muhasebenizi personelinizin değil yazılımınızın ürettiği durumlarda "kullanıcıların" yükün zayıf bir göstergesi olmasıdır. Kendi sunucusunda barındırma (self-hosting), abonelik maliyetini ortadan kaldırır ancak altyapı ve bakım maliyeti ekler.
Nordlet isteğe (request) göre ücretlendirilir. Yayınlanan planlar aylık 3.000 istek için 10 €, 30.000 istek için 50 € ve 200.000 istek için 300 € şeklindedir; ek istekler istek başına faturalandırılır ve talep üzerine özel bir katman (custom tier) sunulur. Her plan her modülü ve tam API'yi içerir; kullanıcılar, şirketler ve sandbox şirketleri sınırsızdır. Bir istek, API veya uygulama üzerinden gerçekleştirilen herhangi bir eylemdir.
Pratik sonuç: Dört personeli ve aylık 50.000 muhasebe işlemi olan bir pazar yeri, kullanım bazlı modelde 50.000 işlem için ödeme yaparken, kullanıcı başı modelde dört kullanıcı için ödeme yapar ve hacim iki katına çıktığında kullanıcı başı rakam değişmez; bu durum her iki yönde de dezavantajlar yaratabilir. Kendi sayılarınızı modelleyin.
Odoo'nun daha iyi bir seçim olduğu durumlar
- Muhasebe, envanter, üretim, CRM ve bir web sitesini tek bir veritabanıyla tek bir sistemde istiyorsunuz.
- Veri ikameti (data residency), maliyet veya politika nedenleriyle kendi sunucunuzda barındırmanız gerekiyor.
- Kaynak kod üzerinde değişiklik yapmak istiyorsunuz ve bu değişiklikleri yükseltmeler (upgrades) boyunca sürdürecek şirket içi kapasiteniz var.
- Muhasebeniz, sattığınız ürünün bir özelliğinden ziyade dahili işletme idaresidir.
- Odoo yerelleştirme modülünün güçlü olduğu ve aktif olarak sürdürüldüğü bir ülkedesiniz.
Odoo'nun kapsamı gerçektir ve hiçbir muhasebe API'si bunun yerini tutamaz.
Nordlet'in uygun olduğu durumlar
- Muhasebe olaylarını personeliniz değil, yazılımınız oluşturur.
- Varlık başına abonelik ödemeden tek bir hesap altında birçok şirket için defterlere ihtiyacınız var.
- Platformunuzun güvenebileceği zorunlu değişmezlere (invariants) ihtiyacınız var: dengeli yevmiye kayıtları, boşluksuz numaralandırma, kilitli dönemler, değiştirilemez geçmiş, istek tekilliğine (idempotency) sahip yazmalar.
- Dahili bir veri modeline değil, kararlı bir alan adı sözleşmesine (domain contract) karşı entegrasyon yapmak istiyorsunuz.
- AB KDV yükümlülükleriniz birkaç ülkeyi kapsıyor ve bu mantığı kendiniz sürdürmek istemiyorsunuz.
Açıkça belirtilen sınırlamalar: Nordlet erken erişim aşamasındadır ve tasarım ortaklarını almaktadır; kendi sunucusunda barındırılmaktan ziyade bulutta barındırılır; iş ortağı kayıtları satış boru hattı (sales pipeline) yerine talep, grup ve durumlar taşır; web sitesi oluşturucu veya pazarlama işlevselliği yoktur; bordro yalnızca Litvanya içindir ve yerel beyanname paketleri şu anda üç ülke için gönderilmektedir (Litvanya [FR0600], Almanya [UStVA] ve Polonya [JPK_V7M]); OSS ve IOSS hesaplanır ancak sizin adınıza gönderilmez.
Taahhütte bulunmadan önce doğrulamamız gerekenler
- Gerçekten ihtiyacınız olan Odoo planını onaylayın. Harici API erişimi Custom katmanını gerektiriyorsa, giriş katmanını değil, kullanıcı sayınız için bu katmanı fiyatlandırın.
- Mevcut uç noktaların duyurulan kaldırılış tarihinden sonra saklamayı planladığınız herhangi bir Odoo entegrasyonu için RPC geçiş zaman çizelgesini sorun.
- İkisinde de yeniden denemeleri (retries) test edin. Aynı isteği iki kez gönderin ve ortaya çıkan girişleri sayın.
- Kilidi test edin. Bir dönemi kapatın, ardından o döneme kayıt girmeyi deneyin.
- Kendi ülkelerinizi kontrol edin. Odoo için hangi yerelleştirme modülünün olduğu ve ne kadar aktif sürdürüldüğü; Nordlet için ise o ülkeler için bugün hangi KDV çıktıların mevcut olduğu.
- Kendi sunucunuzda barındırıyorsanız barındırma ve yükseltme çabası dahil, ölçüm yapıyorsanız istek hacmi büyüklüğü dahil olmak üzere üç yıllık toplam maliyeti modelleyin.
FAQ
Odoo ücretsiz mi?
Odoo, tek bir uygulamayla sınırlı ücretsiz bir katman yayınlar ve topluluk sürümü açık kaynaklıdır. Bir platform entegrasyonu için ilgili maliyetler genellikle lisansın kendisinden ziyade barındırma, yükseltmeler, yerelleştirme bakımı ve harici API erişimi için gereken ücretli katmandır.
Odoo, bir pazar yeri için gömülü bir muhasebe arka ucu (backend) olarak kullanılabilir mi?
Entegre edilebilir ve bazı ekipler tam olarak bunu yapmaktadır. Dikkate alınması gereken hususlar; harici API'nin veri modeli düzeyinde çalışması, API erişiminin belirli bir fiyatlandırma katmanına bağlı olması, mevcut RPC uç noktalarının değiştirilmesinin planlanması ve muhasebe modellerinin doğru kullanımından sizin sorumlu olmanızdır. Bunları herhangi bir varsayımda bulunmadan kendi gereksinimlerinize göre doğrulayın.
Nordlet, Odoo'nun yaptığı her şeyi yapıyor mu?
Hayır. Nordlet muhasebe ve ilgili operasyonlardır; faturalama, defter, banka, envanter, varlıklar, üretim, bordro, raporlama, AB vergisi. Üretim; Odoo'nun sunduğu talep ve kapasite planlaması olmaksızın ürün reçetelerini, rotaları, iş merkezlerini, operasyon bazlı kayıt içeren üretim emirlerini, kalite kontrollerini ve ekipman bakımını kapsar. İş ortağı kayıtları satış boru hattı yerine talep, grup ve durumlar taşır; web sitesi oluşturucu ve pazarlama aracı yoktur.
AB KDV'si için hangisi daha iyidir?
Ülkeye bağlıdır. Nordlet, ülkeye özel AB KDV oranları, VIES doğrulaması, önceki dönem düzeltmeleriyle birlikte OSS ve IOSS beyannamesi hesaplaması, i.SAF defterleri ve EN 16931 UBL sunar; en derin ülke paketi Litvanya'dır. Odoo'nun kapsamı, derinliği ve bakımı ülkeye göre değişen yerelleştirme modüllerinden gelir, bu nedenle belirli bir ülke için dürüst cevap o ülkenin modülünü kontrol etmektir.
Nordlet'i kendi sunucumda barındırabilir miyim?
Standart planlarda değil. Custom katmanı, kendi bulutunu getir (bring-your-own-cloud) desteğini listeler; kendi sunucusunda barındırma bir gereksinimse yapılması gereken görüşme budur.