Subscription & Cart Modülü - Fiyatlandırma Sistemi Analizi
Subscription planlarında YANLIŞ KDV HESAPLAMA yapılıyor!
Sorun: Bridge servis fiyatı "KDV dahil" sanıyor ve ayrıştırıyor (600 ÷ 1.20 = 500 TL). Sonra Cart tekrar KDV ekliyor (500 × 1.20 = 600 TL). Ama kullanıcıya "600 TL + KDV" gösteriliyor!
Sorun Ne?
Müşteri premium üyelik satın almak istiyor. Plan sayfasında "600 TL + KDV" yazıyor.
Müşteri hesap yapıyor: "600 + %20 KDV = 720 TL ödeyeceğim" diye düşünüyor.
Ama sepete eklediğinde checkout sayfasında şöyle görüyor:
Müşteri Kafası Karışıyor: "Plan sayfasında 600 TL + KDV diyordu, neden toplam 600 TL oldu? KDV nerede?"
Gerçekte Ne Oluyor?
Sistem arkada şöyle çalışıyor:
Sonuç: Müşteri 720 TL bekliyor, 600 TL görüyor. Bu kafayı karıştırıyor ve güven kaybına yol açıyor. Ayrıca fiyat gösterimi yanıltıcı! Eğer fiyat zaten KDV dahil ise "600 TL (KDV dahil)" yazmalı.
Nasıl Olmalı?
İki seçenek var:
Database'e 600 TL girilir (KDV hariç).
Plan sayfasında "600 TL + KDV" gösterilir.
Checkout'ta: Ara Toplam 600 TL, KDV 120 TL, Toplam 720 TL.
Database'e 600 TL girilir (KDV dahil).
Plan sayfasında "600 TL (KDV dahil)" veya "500 TL + KDV" gösterilir.
Checkout'ta: Ara Toplam 500 TL, KDV 100 TL, Toplam 600 TL.
Admin panelde cycle price girilir:
Plan sayfasında gösterilen:
Müşteri 720 TL ödeyeceğini düşünüyor!
Cart'a eklerken:
Bridge fiyatı "KDV dahil" sanıp ayrıştırıyor!
Sepet hesaplaması:
Cart 500 TL'ye tekrar %20 KDV ekliyor!
Müşteriye gösterilen:
Müşteri 720 TL bekliyordu, 600 TL gördü!
Shop modülü DOĞRU çalışıyor. Aynı pattern'i Subscription'a da uygulamalıyız:
base_price: 1000 TL (KDV HARİÇ)
price_with_tax: 1000 × 1.20 = 1200 TL
CartService ShopProduct için price_with_tax accessor'ını kullanıyor (Satır 247).
Ama sonra Cart tekrar KDV eklemiyor! Çünkü ShopProduct için KDV zaten dahil fiyat Cart'a gönderiliyor.
Database'de cycle price'lar KDV hariç girilir. Bridge ayrıştırma yapmaz.
Database'de cycle price'lar KDV dahil girilir. Bridge ayrıştırma yapar. Frontend gösterimini düzelt.
+ KDV ({{ number_format($taxAmount, 2) }} TL) = {{ number_format($price, 2) }} TL toplam
{{-- VEYA SEÇENEK B: KDV dahil göster --}}(KDV dahil)
Seçenek 1 (KDV Hariç) ÖNERİLİR çünkü:
base_price KDV hariç)Ancak eğer sistem zaten KDV dahil fiyat kabul edecek şekilde tasarlanmışsa (admin panel form, dökümanlar vb.), o zaman Seçenek 2'yi uygula ve sadece frontend gösterimini düzelt!
Admin Panel: Subscription plan oluştururken "cycle price" için açıklama ekle (KDV dahil mi, hariç mi belirt)
Settings Modülü: price_display_mode field'i var mı kontrol et (KDV dahil/hariç tercihi için)
Mevcut Planlar: Database'deki mevcut subscription planlarının fiyatlarını kontrol et ve gerekirse güncelle
Test: Her iki seçenek için de checkout sürecini test et (sepete ekle → checkout → toplam kontrol)
Döküman: Admin dökümanlarını güncelle (plan fiyatı nasıl girilmeli?)
Claude AI Code Analizi - 11 Ocak 2025
Subscription & Cart Modül Entegrasyonu - KDV Hesaplama Sistemi