Abonelik Yönetimi
Abonelik yönetimi, her kiracının seçtiği modüllerin ve ödeme durumunun takip edildiği merkezi alandır. Accsivo, katmanlı plan yerine modül bazlı (Adobe-style) abonelik modeli kullanır: her kiracı yalnızca ihtiyaç duyduğu modülleri seçer; sabit paket yoktur.
Bu yönetim ekranları genellikle Developer ve SystemManager rolündeki kullanıcılara açıktır.
1. Modül Ayarları
/ModuleSettings/Index ekranı, sistemde kayıtlı her modülün aylık/yıllık fiyatını ve satışa açık (IsEnabled) durumunu gösterir.
Yalnızca fiyat ve etkinleştirme durumu düzenlenebilir; modüller kod tabanlı olduğundan oluşturma/silme işlemi yoktur.
Liste Sütunları
| Sütun | Anlamı |
|---|---|
| Modül Kodu | Sistemde kayıtlı modülün benzersiz kodu (ör: Hr, Finance). |
| Modül Adı | Modülün görünen adı (runtime'da AccsivoModuleRegistry'den alınır). |
| Aylık Fiyat | Aylık abonelik ücreti (TRY). |
| Yıllık Fiyat | Yıllık abonelik ücreti (TRY). |
| Satışa Açık | IsEnabled = true ise modül kayıt ekranında seçilebilir. |
| Durum | Kaydın genel aktifliği. |
Düzenleme Formu
| Alan | Kullanım Amacı ve Kurallar |
|---|---|
| Aylık Fiyat | 0 veya üzeri ondalık değer. 0 = ücretsiz. |
| Yıllık Fiyat | 0 veya üzeri ondalık değer. Genellikle aylık × 12'den indirimli olur. |
| Satışa Açık | Kapalıysa modül kayıt ekranında listelenmez ve seçilemez. |
Fiyat değişikliği anında geçerlidir. Mevcut abonelikleri etkilemez; yeni ödemelerde yeni fiyat uygulanır.
2. Abonelikler
/TenantSubscriptions/Index ekranı, kiracılara ait aktif ve geçmiş abonelikleri listeler.
Filtreleme
- Tarih Aralığı: Aboneliğin başlangıç tarihine göre filtreleme.
- Durum: Deneme, Aktif, Ödeme Bekliyor, Süresi Doldu, İptal Edildi.
- Faturalama Döngüsü: Aylık, Yıllık veya Deneme.
Liste Sütunları
| Sütun | Anlamı |
|---|---|
| Kiracı | Aboneliğin ait olduğu kuruluş adı. |
| Durum | Aboneliğin mevcut durumu. |
| Faturalama Döngüsü | Aylık veya Yıllık faturalama türü. |
| Başlangıç Tarihi | Aboneliğin başladığı tarih. |
| Bitiş Tarihi | Aboneliğin sona ereceği tarih. |
| Otomatik Yenileme | Otomatik yenilemenin açık olup olmadığı. |
Abonelik Durumları
| Durum | Açıklama |
|---|---|
| Deneme (Trial) | Kayıt sonrası başlayan 30 günlük ücretsiz deneme. |
| Aktif (Active) | Ödeme alınmış ve geçerli abonelik. |
| Ödeme Bekliyor (PendingPayment) | Ödeme vadesi geçmiş ancak henüz süre dolmamış. |
| Süresi Doldu (Expired) | Süresi dolmuş ve yenilenmeyen abonelik. |
| İptal Edildi (Cancelled) | Kullanıcı veya yönetici tarafından iptal edilmiş. |
Yeni Abonelik Formu
| Alan | Kullanım Amacı ve Kurallar |
|---|---|
| Kiracı | Aboneliğin verileceği kuruluş. |
| Modüller | Aktivasyon verilecek modüllerin çoklu seçimi. |
| Faturalama Döngüsü | Aylık veya Yıllık. |
| Başlangıç Tarihi | Aboneliğin başlayacağı tarih. |
| Bitiş Tarihi | Aboneliğin biteceği tarih. |
| Durum | Başlangıç durumu (genellikle Trial veya Active). |
3. Kiracı Modülleri
/TenantModules/Index ekranı, bir kiracıya atanmış modül erişimlerini listeler ve yönetir.
Filtreleme
- Modül Kodu: Belirli bir modüle göre filtreleme.
- Durum: Aktif veya pasif modül kayıtları.
Liste Sütunları
| Sütun | Anlamı |
|---|---|
| Modül Kodu | Erişim verilen modülün kodu (ör: Hr, Finance). |
| Aktifleştirme Tarihi | Modülün kiracıya açıldığı tarih. |
| Deaktifleştirme Tarihi | Modül erişiminin kapatıldığı tarih. Boş ise hâlâ aktif. |
| Durum | Modül erişiminin aktif olup olmadığı. |
Kayıt ve Abonelik İlişkisi
Yeni kuruluş kaydı (Register) sırasında seçilen modüller kiracının ilk aboneliğini otomatik oluşturur:
- Kullanıcı kayıt formunda modülleri ve faturalama döngüsünü seçer (
GET /public/modulesile fiyatlar listelenir). - Kayıt tamamlandığında
StartSubscriptionAsynctetiklenir. - Deneme (Trial) durumunda bir
TenantSubscriptionkaydı oluşturulur (30 gün). - Seçilen her modül için ayrı bir
TenantModulekaydı oluşturulur (IsActive = true). - Deneme süresi sonunda ödeme yapılırsa abonelik
Activedurumuna geçer; modüller korunur.
Ödeme Akışı
- Kiracı
/MySubscriptionekranından ödeme başlatır. POST /payments/initiatecheckoutisteği gönderilir;ModuleSettingtablosundan toplam fiyat hesaplanır.- iyzico Checkout Form HTML döner; kullanıcı kart bilgilerini iyzico üzerinde girer (3D Secure).
- iyzico callback
POST /payments/callbackile doğrulama yapılır. - Başarılı ödemede
TenantSubscription.EndDateuzatılır,TenantModulekayıtları aktifleştirilir.
Sık Karşılaşılan Sorunlar
| Sorun | Olası Neden | Çözüm |
|---|---|---|
| "Ödeme için modül seçilmedi" hatası | ModuleCodes listesi boş |
Kayıt veya ödeme formunda en az bir modül seçin |
| Modüle erişilemiyor | Kiracının TenantModule kaydı yok veya pasif |
Admin panelinden modül ekleyin veya aktifleştirin |
| "Aktif abonelik bulunamadı" hatası | Abonelik süresi dolmuş veya iptal edilmiş | Yeni abonelik oluşturun veya mevcut aboneliği yenileyin |
| Kayıt ekranında modül listelenmiyor | ModuleSetting.IsEnabled = false |
Modül Ayarları ekranından modülü satışa açın |
| iyzico callback başarısız | Token eşleşmiyor veya daha önce işlendi | Logları kontrol edin; idempotency cache süresi 24 saattir |