SAP Commerce Architecture, modern e-ticaret sistemlerinin kurumsal ölçekte nasıl tasarlanması gerektiğini anlamak için en kritik mimari modellerden biridir. Özellikle büyük ölçekli B2C ve B2B projelerde, SAP Commerce Cloud (eski adıyla SAP Hybris) güçlü bir layered architecture + extension-based modular monolith yaklaşımı sunar.
Bu makalede SAP Commerce mimarisini sadece teorik olarak değil, gerçek kurumsal proje deneyimlerine dayalı olarak ele alacağız.
1. SAP Commerce Architecture Nedir?
SAP Commerce Architecture, SAP Commerce platformunun nasıl yapılandırıldığını, bileşenlerin nasıl iletişim kurduğunu ve sistemin nasıl ölçeklendiğini tanımlayan mimari modeldir. Eğer sap commerce’in ne olduğu hakkında fikir sahibi değilseniz öncelikle Sap Commerce Cloud Nedir yazımızı okumanızı tavsiye ederiz.
Architecture neden önemlidir?
E-ticaret sistemleri:
- Yüksek trafik alır
- Sürekli değişen kampanya ve ürün yapısına sahiptir
- Çok kanallı (web, mobile, marketplace) çalışır
- ERP, CRM, OMS gibi sistemlerle entegredir
Bu nedenle SAP Commerce Architecture:
- Performansı
- Ölçeklenebilirliği
- Genişletilebilirliği
- Bakım kolaylığını
doğrudan belirler.
SAP Commerce neden modüler tasarlanmıştır?
SAP Commerce, “monolithic ama modular” bir yapıya sahiptir.
Bu şu anlama gelir:
- Tek runtime (Tomcat üzerinde çalışan tek uygulama)
- Ama içeride extension-based modüler yapı
Monolithic mi Microservice mi?
SAP Commerce:
- Saf microservice değildir
- Distributed microservice architecture değildir
- Modular monolith’tir
- Microservice’lere entegre olabilir
Composable Commerce ile ilişkisi
SAP Commerce Cloud, Composable Commerce yaklaşımına uyumludur:
- OCC API ile headless kullanım
- CMS ve frontend ayrıştırma
- Microservice entegrasyonları
- Event-driven mimari destekleri
2. SAP Commerce High Level Architecture
SAP Commerce Architecture genellikle aşağıdaki gibi modellenir:
[ Frontend (Angular / React / Mobile Apps) ]
↓
[ OCC Layer (REST API) ]
↓
[ Facade Layer ]
↓
[ Service Layer ]
↓
[ DAO Layer ]
↓
[ Persistence Layer (Hibernate) ]
↓
[ Database (SQL DB) ]
Architecture Diagram Açıklaması
OCC Layer
- REST API katmanıdır
- Headless commerce sağlar
- JSON response üretir
Facade Layer
- DTO mapping
- Business orchestration
- API aggregation
Service Layer
- Business logic burada bulunur
- Transaction boundary yönetimi
DAO Layer
- FlexibleSearch veya Criteria API kullanır
- Database erişimi
Persistence Layer
- Hibernate ORM
- Model mapping
3. SAP Commerce Katmanları
3.1 Presentation Layer
- Storefront (Accelerator veya Spartacus)
- UI logic
- SEO optimizasyonu
3.2 OCC Layer (Omni Commerce Connect)
- REST API katmanı
- Spartacus frontend ile kullanılır
- JSON-based response
Örnek Controller:
@Controller
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductFacade productFacade;
@GetMapping("/{code}")
@ResponseBody
public ProductData getProduct(@PathVariable String code) {
return productFacade.getProductByCode(code);
}
}
3.3 Facade Layer
- DTO dönüşümü
- Aggregation logic
public class ProductFacade {
@Autowired
private ProductService productService;
public ProductData getProductByCode(String code) {
ProductModel model = productService.getProduct(code);
return convert(model);
}
}
3.4 Service Layer
- Business logic
- Transaction yönetimi
public class ProductService {
@Autowired
private ProductDao productDao;
public ProductModel getProduct(String code) {
return productDao.findByCode(code);
}
}
3.5 DAO Layer
public class ProductDao {
public ProductModel findByCode(String code) {
FlexibleSearchQuery query = new FlexibleSearchQuery(
"SELECT {pk} FROM {Product} WHERE {code}=?code"
);
query.addQueryParameter("code", code);
return flexibleSearchService.searchUnique(query);
}
}
3.6 Persistence Layer
- Hibernate entity mapping
- Model layer
3.7 Database
- MSSQL
4. Extension Architecture
SAP Commerce’un en güçlü yönü Extension Architecture’dır.
Extension nedir?
Her modül bir extension’dır:
- product
- promotionengine
- customer
- order
Core Extension
SAP tarafından sağlanan temel modüller.
Custom Extension
Proje özel geliştirmeler.
extgen mycustomextension
AddOn
Storefront üzerine eklenen UI modülleri.
Dependency Yapısı
storefrontaddon → core → services → persistence
Build Sırası
- localextensions.xml belirler
- ant clean all
5. SAP Commerce Temel Bileşenleri
Backoffice
- Admin panel
SmartEdit
- CMS editing tool
OCC API
- Headless commerce
CMS
- Content management
Promotion Engine
- Kampanya yönetimi
CronJobs
- Scheduled tasks
FlexibleSearch
- SAP özel query dili
ImpEx
- Data import/export
Solr
- Search engine
Integration API
- External system integration
Event System
- Event-driven architecture
Rule Engine
- Business rules
6. Request Lifecycle
Bir ürün sayfası açıldığında süreç:
Browser
↓
Controller (OCC)
↓
Facade
↓
Service
↓
DAO
↓
Database
↓
Return Model
↓
DTO Mapping
↓
JSON Response
Detay
- Request Tomcat’e gelir
- Spring MVC controller devreye girer
- Facade business orchestration yapar
- Service transaction yönetir
- DAO DB sorgusu yapar
- Cache varsa DB’ye gitmez (Redis / Ehcache)
7. Büyük Ölçekli SAP Commerce Mimarisi
Cluster Architecture
- Multi-node setup
- Load balancer (NGINX / F5)
Session Management
- Sticky session veya Redis session
Solr Cluster
- Distributed search index
Cache Layer
- Ehcache
- Redis
Media Storage
- AWS S3 / Azure Blob
CDN
- Akamai / Cloudflare / Medianova
Monitoring
- Dynatrace
Cloud Deployment
- SAP tarafından sağlanan panel sayesinde, kesintili ve kesintisiz deploylar yapılabilir, SAP Paneli ile entegre uygulamalar yapılarak otomatize edilebilir.
8. SAP Commerce Architecture Best Practices
- Facade içine business logic yazma
- Service layer’ı transaction boundary yap
- DAO sadece data access yapmalı
- God service oluşumunu engelle
- Extension’ları küçük tut
- Circular dependency yaratma
- DTO model separation kullan
- FlexibleSearch optimize et
- Cache stratejisi belirle
- OCC response lightweight olmalı
- Event-driven tasarım kullan
- Async processing tercih et
- Solr indexing optimize et
- DB query sayısını azalt
- Lazy loading kullan
- Integration API layer ayır
- Custom cronjob overload etme
- Logging standardize et
- Monitoring entegre et
- CI/CD pipeline kur (Azure DevOps / Jenkins)
9. Sık Yapılan Mimari Hatalar
- Facade içinde business logic yazmak
- DAO’nun controller tarafından çağrılması
- Tek devasa extension oluşturmak
- Service layer’ı bypass etmek
- Cache kullanmamak
- Solr index optimize etmemek
- OCC layer’da ağır logic çalıştırmak
- Transaction boundary hataları
- Async yerine sync integration kullanmak
10. Sık Sorulan Sorular (FAQ)
SAP Commerce microservice mi?
Hayır, modular monolith’tir.
SAP Commerce layered architecture kullanıyor mu?
Evet.
Facade neden var?
DTO mapping ve orchestration için.
Extension neden gerekli?
Modülerlik ve bağımsız geliştirme için.
OCC ne işe yarıyor?
Headless API sağlar.
Backoffice neden ayrı?
Admin operasyonları için.
SAP Commerce scalable mı?
Evet, cluster mimarisi ile.
Solr neden kullanılır?
Search performance için.
Cache neden önemli?
Latency azaltmak için.
SAP Commerce cloud ready mi?
Evet, Azure ve AWS desteklidir.
CI/CD nasıl yapılır?
Jenkins veya Azure DevOps.
Event system ne işe yarar?
Asenkron işlem yönetimi.
FlexibleSearch nedir?
SAP özel query language.
ImpEx ne işe yarar?
Data import/export.
Spartacus nedir?
Headless frontend framework.
11. Sonuç
SAP Commerce Architecture, enterprise e-ticaret sistemlerinin kalbini oluşturur. Doğru tasarlanmış bir mimari:
- Performansı artırır
- Ölçeklenebilirliği sağlar
- Bakım maliyetini düşürür
- Sistem stabilitesini yükseltir
Yanlış mimari kararlar ise büyük ölçekli projelerde ciddi teknik borç oluşturur.
Bu nedenle SAP Commerce projelerinde mimari tasarım:
- Development’tan önce
- Business analizi ile birlikte
- Solution architect liderliğinde
yapılmalıdır.
SAP Commerce mimarisi, performans ve ölçeklenebilirlik açısından kritik tasarım kararları içerir. Bu kararların doğru alınması için SAP Commerce Cloud Danışmanlığı kapsamında Reopiya ekibiyle iletişime geçebilirsiniz.