İçindekiler

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, sabit paket yerine modül bazlı (Adobe-style) abonelik modeli kullanır: her kiracı yalnızca ihtiyaç duyduğu modülleri seçer.

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ı varsayılan olarak 30 gün süren; yönetici tarafından manuel bitiş tarihi belirlenebilen ü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ş. Yalnızca aktif aboneliği olmayan kiracılar listelenir.
Modüller Aktivasyon verilecek modüllerin çoklu seçimi. Satışa açık (IsEnabled) modüller listelenir.
Faturalama Döngüsü Aylık, Yıllık veya Deneme. Deneme seçildiğinde durum otomatik olarak Deneme olur ve otomatik yenileme kapatılır. Mevcut ücretli abonelikler düzenleme formunda Deneme döngüsüne çevrilemez.
Abonelik Durumu Deneme döngüsünde otomatik olarak Deneme olur. Aylık veya Yıllık ücretli döngülerde Deneme durumu seçilemez.
Başlangıç Tarihi Aboneliğin başlayacağı tarih.
Deneme Bitiş Tarihi Deneme süresinin gerçek bitiş tarihi. Oluşturma formunda başlangıç tarihinden 30 gün sonrası varsayılan olarak yazılır; alan boşsa Deneme seçildiğinde aynı tarih yeniden doldurulur. Manuel girilen geçerli tarih için sabit bir azami süre uygulanmaz; girilen tarih aboneliğin bitiş tarihi olarak kullanılır.
Otomatik Yenileme Ücretli aboneliklerde abonelik süresi dolduğunda otomatik yenilemeyi belirler. Deneme döngüsünde daima kapalıdır ve formda gösterilmez.

Yönetici tarafından girilen deneme bitiş tarihi yalnızca ekranda gösterilen bir bilgi değildir. Modül erişimi, yaklaşan bitiş bildirimleri ve aboneliğin sona ermesi aynı tarihe göre çalışır. Örneğin bitiş tarihi 10 yıl sonrası seçildiyse deneme aboneliği bu tarihe kadar kullanılabilir.


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:

  1. Kullanıcı kayıt formunda modülleri ve faturalama döngüsünü seçer (GET /public/modules ile fiyatlar listelenir).
  2. Kayıt tamamlandığında StartSubscriptionAsync tetiklenir.
  3. Deneme (Trial) durumunda bir TenantSubscription kaydı varsayılan 30 günlük süreyle oluşturulur; yönetici daha sonra manuel bitiş tarihi belirlerse bu tarih esas alınır.
  4. Seçilen her modül için ayrı bir TenantModule kaydı oluşturulur (IsActive = true).
  5. CMS modülü tek başına satın alınabilir; CMS dışında herhangi bir modül seçildiğinde CMS modülü hediye olarak eklenir ve ayrı ücretlendirilmez.
  6. Deneme süresi sonunda ödeme yapılırsa abonelik Active durumuna geçer; modüller korunur.

Production geçişlerinde yeni modül erişimleri ve varsayılan abonelik referans verileri uygulama açılışında otomatik tamamlanır. Kullanıcıların abonelik ekranında ayrıca kurulum veya manuel aktivasyon işlemi yapması gerekmez.


Ödeme Akışı

  1. Kiracı /MySubscription ekranından ödeme başlatır.
  2. POST /payments/initiatecheckout isteği gönderilir; ModuleSetting tablosundan toplam fiyat hesaplanır.
  3. iyzico Checkout Form HTML döner; kullanıcı kart bilgilerini iyzico üzerinde girer (3D Secure).
  4. iyzico callback POST /payments/callback ile doğrulama yapılır.
  5. Başarılı ödemede TenantSubscription.EndDate uzatılır, TenantModule kayı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