Nebim V3 – OpenCart Entegrasyon Programı
ERP ve E-Ticaret Arasında Çok Kiracılı Entegrasyon Platformu
Nebim V3 – OpenCart Entegrasyon Programı, Nebim V3 ERP ile OpenCart e-ticaret altyapısı arasında veri senkronizasyonunu merkezi olarak yönetmek amacıyla geliştirdiğim çok kiracılı bir entegrasyon platformudur.
Projenin temel amacı; ERP ve e-ticaret sistemleri arasında gerçekleşen ürün, stok ve sipariş gibi operasyonların manuel müdahaleye ihtiyaç duymadan, kontrollü ve izlenebilir şekilde çalışmasını sağlamaktır.
Uygulama C#, .NET 8 ve ASP.NET Core MVC teknolojileri ile geliştirildi. Veri katmanında Microsoft SQL Server ve Entity Framework Core kullanılırken, entegrasyon işlemleri web uygulamasından bağımsız çalışan bir background worker yapısı üzerinden yürütülüyor.
Sistem tek bir firma için hazırlanmış sabit bir entegrasyon yerine, birden fazla şirketin kendi entegrasyon ayarları ve verileri ile aynı platform üzerinde çalışabileceği multi-tenant mimari üzerine kuruldu.
Diğer geliştirdiğim uygulamaları Projeler sayfasından inceleyebilirsiniz.
İçindekiler
- Nebim V3 – OpenCart Entegrasyon Projesi
- Projenin Amacı
- Yazılım Mimarisi
- Multi-Tenant Yapı
- Entegrasyon Katmanı
- Ürün Senkronizasyonu
- Sipariş Senkronizasyonu
- Stok Senkronizasyonu
- Arka Plan Servisleri
- Yönetim ve Operasyon Takibi
- Veri Yönetimi
- Güvenlik Yaklaşımı
- Docker ve Dağıtım
- Kullanılan Teknolojiler
- Teknik Yaklaşım
- Sonuç
Nebim V3 – OpenCart Entegrasyon Projesi
Nebim V3 – OpenCart Entegrasyon Programı, ERP ve e-ticaret sistemlerinin birbirinden bağımsız çalışan veri yapılarını tek bir entegrasyon platformu üzerinden bir araya getiriyor.
E-ticaret sistemleri ile ERP sistemleri arasında en önemli ihtiyaçlardan biri, iki sistemde bulunan verilerin sürekli olarak güncel tutulmasıdır.
Bu projede temel olarak:
- ürün işlemleri,
- sipariş işlemleri,
- stok güncellemeleri,
- entegrasyon ayarları,
- operasyon geçmişi,
- zamanlanmış işlemler,
- şirket bazlı yapılandırmalar
merkezi bir uygulama üzerinden yönetilebiliyor.
Projenin Amacı
ERP ile e-ticaret platformları arasında manuel veri aktarımı uzun vadede ciddi operasyonel sorunlar oluşturabilir.
Örneğin:
- ERP’de değişen stok miktarının e-ticaret sitesine aktarılması,
- e-ticaret üzerinden gelen siparişlerin ERP’ye gönderilmesi,
- ürün bilgilerinin sistemler arasında eşleştirilmesi,
- başarısız işlemlerin tekrar kontrol edilmesi
gibi işlemlerin manuel yürütülmesi hem hata riskini artırır hem de operasyon ekibine sürekli yük oluşturur.
Nebim V3 – OpenCart Entegrasyon Programında bu süreçlerin mümkün olduğunca otomatik, izlenebilir ve merkezi şekilde yönetilmesi hedeflendi.
Böylece iki farklı sistem arasındaki veri akışları kullanıcıların manuel işlem yapmasına bağlı olmaktan çıkarılarak servis tabanlı bir yapıya dönüştürüldü.
Yazılım Mimarisi
Proje sorumlulukların birbirinden ayrıldığı katmanlı bir mimari ile geliştirildi.
Uygulama yapısı şu ana bileşenlere ayrılıyor:
- Domain
- Application
- Persistence
- Integration
- Infrastructure
- Web
- Worker
- Tests
Domain
Sistemin temel entity, enum ve domain modellerini içeriyor.
Application
Uygulama servisleri, entegrasyon operasyonları ve zamanlanmış işlerin koordinasyonundan sorumlu.
Persistence
Entity Framework Core, SQL Server, Identity, migration ve veri erişim işlemlerinin bulunduğu katman.
Integration
Nebim V3 ve OpenCart arasında veri alışverişini sağlayan entegrasyon adaptörleri ve senkronizasyon servisleri burada bulunuyor.
Infrastructure
Data Protection ve diğer altyapı servisleri bu katmanda yönetiliyor.
Web
ASP.NET Core MVC tabanlı yönetim ve operasyon arayüzünü içeriyor.
Worker
Arka planda çalışan entegrasyon görevlerini web uygulamasından bağımsız şekilde yürütüyor.
Bu ayrım sayesinde kullanıcı arayüzü ile arka plandaki entegrasyon işlemleri doğrudan birbirine bağlı olmadan çalışabiliyor.
Multi-Tenant Yapı
Projenin önemli özelliklerinden biri çok kiracılı – multi-tenant mimari ile geliştirilmiş olmasıdır.
Her şirket kendi:
- entegrasyon ayarlarına,
- kullanıcılarına,
- servis yapılandırmalarına,
- operasyonlarına,
- entegrasyon geçmişine
sahip olabiliyor.
Bu sayede tek uygulama üzerinden birden fazla firmanın Nebim V3 – OpenCart entegrasyonu yönetilebiliyor.
Şirket verileri birbirinden ayrıştırılmış şekilde tutuluyor ve kullanıcıların yalnızca yetkili oldukları şirkete ait verilere erişmesi hedefleniyor.
Entegrasyon Katmanı
Sistemin merkezinde Nebim V3 ve OpenCart arasında çalışan özel bir entegrasyon katmanı bulunuyor.
Bu katman;
- Nebim V3 ile iletişim,
- ERP veri erişimi,
- müşteri ve adres işlemleri,
- bölge/şehir eşleme,
- OpenCart veri işlemleri,
- ürün seçenekleri,
- sipariş aktarımı,
- stok aktarımı
gibi farklı sorumlulukları ayrı servisler üzerinden yönetiyor.
Bu yapı entegrasyonun tek büyük servis içerisinde toplanması yerine daha yönetilebilir parçalara ayrılmasını sağlıyor.
Ürün Senkronizasyonu
Platform üzerinden ürünlerin ERP ve e-ticaret tarafındaki işlemleri merkezi olarak yönetilebiliyor.
Ürün aktarım süreçleri;
- ürünlerin listelenmesi,
- entegrasyon durumunun kontrol edilmesi,
- aktarım işlemlerinin çalıştırılması,
- güncelleme işlemlerinin takip edilmesi
gibi operasyonları kapsıyor.
Ürün seçenekleri ve varyantlarla ilgili işlemler için de ayrı entegrasyon servisleri bulunuyor.
Sipariş Senkronizasyonu
E-ticaret tarafında oluşan siparişlerin ERP sistemine aktarılması entegrasyonun kritik bölümlerinden biridir.
Projede sipariş senkronizasyonu ayrı bir servis motoru üzerinden çalışıyor.
Amaç:
- siparişlerin kontrollü şekilde alınması,
- ERP tarafına aktarılması,
- aktarım sonuçlarının takip edilmesi,
- olası hataların operasyon geçmişinde görüntülenebilmesi
gibi süreçleri merkezi hale getirmek.
Stok Senkronizasyonu
ERP tarafındaki stok bilgisinin e-ticaret platformunda güncel kalması, özellikle çok sayıda ürün bulunan yapılarda önemli bir entegrasyon ihtiyacıdır.
Nebim V3 – OpenCart Entegrasyon Programı, stok bilgilerinin arka planda çalışan servisler aracılığıyla senkronize edilmesini destekliyor.
Stok işlemlerinin kullanıcı tarafından sürekli manuel olarak başlatılması yerine belirlenen entegrasyon akışları içerisinde otomatik olarak çalıştırılabilmesi amaçlandı.
Arka Plan Servisleri
Projenin önemli teknik bileşenlerinden biri background worker mimarisidir.
Entegrasyon süreçleri yalnızca kullanıcı paneli üzerinden çalıştırılan işlemlere bağlı değildir.
Worker servisi arka planda:
- entegrasyon görevlerini kontrol eder,
- zamanı gelen işlemleri çalıştırır,
- şirket bazlı ayarları dikkate alır,
- sipariş ve stok senkronizasyonlarını yürütür.
Web paneli ile Worker aynı entegrasyon motorlarını kullandığı için manuel ve otomatik işlemlerde ortak iş kuralları korunabiliyor.
Veri Yönetimi
Platformun merkezi verileri Microsoft SQL Server üzerinde tutuluyor.
Veri erişim katmanında Entity Framework Core kullanılıyor.
Projenin veri yapısı;
- entegrasyon kayıtları,
- şirket bilgileri,
- kullanıcılar,
- kuyruk işlemleri,
- eşleme bilgileri,
- servis durumları,
- operasyon kayıtları
gibi farklı veri gruplarını destekleyecek şekilde tasarlandı.
Veritabanı şeması migration yaklaşımıyla yönetiliyor ve performans gerektiren bazı operasyonlarda SQL tarafında özel yapılar da kullanılıyor.
Güvenlik Yaklaşımı
ERP ve e-ticaret sistemleri arasında çalışan entegrasyon uygulamalarında bağlantı bilgilerinin ve şirket verilerinin güvenli şekilde yönetilmesi kritik öneme sahiptir.
Projede:
- kimlik doğrulama,
- rol bazlı yetkilendirme,
- tenant bazlı veri ayrımı,
- gizli yapılandırmaların uygulama kodundan ayrılması,
- Data Protection,
- kontrollü servis erişimleri
gibi güvenlik yaklaşımları kullanılıyor.
Portföy sayfasında güvenlik nedeniyle bağlantı bilgileri, yönetim yolları, endpoint yapıları veya operasyonel güvenlik yapılandırmaları paylaşılmamaktadır.
Docker ve Dağıtım
Projenin web uygulaması ve Worker bileşeni container ortamında çalıştırılabilecek şekilde tasarlandı.
Docker ve Docker Compose desteği sayesinde web ve background servis bileşenlerinin birlikte yönetilebilmesi amaçlandı.
Ayrıca uygulama mimarisi gerektiğinde SQL Server ve Redis gibi altyapı servisleriyle birlikte ölçeklenebilir şekilde çalışabilecek biçimde yapılandırıldı.
Kullanılan Teknolojiler
Backend
- C#
- .NET 8
- ASP.NET Core
- ASP.NET Core MVC
- Entity Framework Core
- ASP.NET Core Identity
Database
- Microsoft SQL Server
- T-SQL
- Stored Procedures
ERP & E-Commerce
- Nebim V3
- OpenCart
- ERP Integrations
- Data Synchronization
Architecture
- Multi-Tenant Architecture
- Layered Architecture
- Integration Architecture
- Background Worker
- Job Based Processing
DevOps
- Docker
- Docker Compose
- Redis
Frontend
- Razor
- Bootstrap 5
- HTML
- CSS / SCSS
- JavaScript
Teknik Yaklaşım
Bu projede öne çıkan en önemli teknik konulardan biri, ERP entegrasyon süreçlerini web arayüzünden ayırarak bağımsız bir Worker yapısına taşımak oldu.
Bu sayede uzun süren veya zamanlanmış entegrasyon işlemleri web isteğinin yaşam döngüsüne bağlı kalmadan çalışabiliyor.
İkinci önemli konu multi-tenant mimari oldu. Sistem tek bir firma için değil, farklı şirketlerin aynı platform üzerinde kendi verileri ve entegrasyon yapılandırmalarıyla çalışabileceği şekilde tasarlandı.
Üçüncü önemli konu ise entegrasyon işlemlerinin izlenebilir olmasıydı.
Ürün, sipariş ve stok işlemlerinin yalnızca çalıştırılması değil, geçmişlerinin ve servis durumlarının da takip edilebilmesi operasyonel açıdan projenin önemli parçalarından biri oldu.
Sonuç
Nebim V3 – OpenCart Entegrasyon Programı, ERP ile e-ticaret arasında veri aktarımı yapan basit bir servis olmanın ötesinde, çok kiracılı bir entegrasyon platformu olarak geliştirildi.
Proje;
- Nebim V3 ERP entegrasyonu,
- OpenCart entegrasyonu,
- ürün senkronizasyonu,
- sipariş senkronizasyonu,
- stok senkronizasyonu,
- multi-tenant yapı,
- background worker servisleri,
- zamanlanmış görevler,
- rol bazlı kullanıcı yönetimi,
- operasyon ve servis takibi,
- SQL Server tabanlı veri yönetimi,
- Docker altyapısı
gibi özellikleri tek sistem içerisinde bir araya getiriyor.
Nebim V3 – OpenCart Entegrasyon Programında temel hedef, iki sistem arasında yalnızca veri taşımak değil; entegrasyon süreçlerinin merkezi, izlenebilir ve farklı şirketler için tekrar kullanılabilir bir platform üzerinden yönetilmesini sağlamaktı.
