İç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, 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:

  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ı oluşturulur (30 gün).
  4. Seçilen her modül için ayrı bir TenantModule kaydı oluşturulur (IsActive = true).
  5. Deneme süresi sonunda ödeme yapılırsa abonelik Active durumuna geçer; modüller korunur.

Ö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