Web siteniz yalnızca TL ile çalışıyorsa mevcut yazılımınızı değiştirmeden USD, EUR, GBP ve ihtiyaç duyduğunuz diğer para birimlerini ekleyebiliriz. Kur değerleri TCMB veya seçilen başka bir güvenilir kaynaktan otomatik alınabilir; alış/satış türü, kur marjı, yuvarlama, güncelleme aralığı ve ödeme davranışı mevcut iş modelinize göre tanımlanabilir.
Yazılımı Eka Sunucu veya Eka Yazılım'dan satın almış olmanız gerekmez. Kaynak koduna erişilebilen PHP, Laravel, WooCommerce, OpenCart, PrestaShop ve özel geliştirilmiş sistemler; ayrıca uygun API/modül desteği bulunan diğer platformlar incelenebilir.
TCMB, kur marjı, cron ve çoklu para birimi senkronizasyonu
Bir sistem yalnızca TL fiyatını anlık kura göre USD/EUR olarak gösterebilir fakat ödeme aşamasında yine TL tahsil edebilir. Gerçek çoklu para biriminde ise sipariş para birimi, ödeme sağlayıcısının desteklediği currency kodu, sipariş anındaki kur ve iade/fatura mantığı birlikte tasarlanmalıdır.
Hazır bir eklentiye mahkum kalmadan mevcut yazılımın fiyat ve sipariş mimarisine göre entegrasyon geliştirebiliriz.
Aynı çoklu para birimi özelliği her işletmede aynı şekilde uygulanmaz. Önce hangi finansal davranışın istendiğini belirleriz.
Ana fiyat TL kalır; ziyaretçi yaklaşık USD/EUR karşılığını görür.
Sipariş seçilen currency ile açılır ve ödeme sağlayıcısı aynı currency ile tahsilat yapar.
Ürün maliyeti USD tutulur; TL karşılığı otomatik kurla oluşturulur.
Türkiye Cumhuriyet Merkez Bankası gösterge niteliğindeki döviz kurlarını yayımlar. Uygulama tarafında günlük XML kaynağı veya uygun veri servisi okunarak USD, EUR, GBP gibi currency düğümlerindeki alış/satış değerleri alınabilir.
Entegrasyonda sadece 'USD kaç TL' sorusu yoktur. İşletmenin ForexBuying mi ForexSelling mi kullanacağı, Unit değeri, eksik tatil günü verisi, son başarılı kur ve veri kaynağı erişilemezse uygulanacak fallback davranışı tanımlanmalıdır.
TCMB kurları gösterge niteliğindedir. Ticari fiyatlandırmada işletme kendi kur marjını, banka/ödeme maliyetini veya manuel fiyat politikasını ayrıca uygulayabilir.
TCMB XML yapısında döviz alış ve döviz satış alanları ile banknot alış/satış alanları farklı amaç taşır. Site fiyatlandırmasında hangi alanın kullanılacağı işletmenin muhasebe ve satış politikasına göre belirlenmelidir.
Örneğin yabancı para cinsinden bir maliyeti TL satış fiyatına çevirmek isteyen işletme döviz satış kurunu tercih edebilir. Fakat bu evrensel bir zorunluluk değildir; finans ekibinin belirlediği politika esas alınmalıdır.
Kur motorunda kullanılan alan yönetim panelinden seçilebilir hale getirilirse ileride kod değişmeden politika değiştirilebilir.
Bazı sitelerde ürünün hukuki ve finansal ana fiyatı TL kalır; ziyaretçiye yalnız yaklaşık USD/EUR karşılığı gösterilir. Bu model checkout ve fatura süreçlerini değiştirmeden kullanıcı deneyimini zenginleştirir.
Örneğin ürün 10.000 TL ise sistem güncel kura göre yaklaşık 212 USD gösterebilir; ödeme sayfasına geçildiğinde sipariş 10.000 TL olarak devam eder.
Yaklaşık karşılık gösteriliyorsa bunun tahsilat para birimi olmadığı kullanıcıya açık biçimde belirtilmelidir.
Gerçek çoklu para biriminde ürünün ekranda çevrilmesi yeterli değildir. Sipariş tablosunda currency code, sipariş anındaki kur, kaynak fiyat, dönüştürülmüş fiyat ve ödeme tutarı saklanmalıdır.
Ödeme sağlayıcısının USD/EUR tahsilatı destekleyip desteklemediği ayrıca doğrulanır. Ödeme API'sine yanlış para birimi gönderilmesi başarısız ödeme veya mutabakat problemi oluşturabilir.
İade, kısmi iade, kupon, kargo ve vergi hesaplarında da siparişin oluşturulduğu andaki finansal değer korunmalıdır.
Müşteri sepete ürün ekledikten sonra kur değişebilir. Sipariş tamamlandıktan sonra geçmiş sipariş tutarının güncel kurla yeniden hesaplanması finansal kayıtları bozar.
Bu yüzden siparişe kullanılan kur, currency ve kaynak fiyat snapshot olarak kaydedilir. Güncel kur ürün liste fiyatlarını değiştirebilir ancak geçmiş sipariş değişmez.
Özellikle havale, ödeme bekleyen sipariş ve manuel onay senaryolarında kur geçerlilik süresi ayrıca belirlenebilir.
TCMB değerini doğrudan kullanmak zorunlu değildir. İşletme USD için yüzde 2,5, EUR için yüzde 2,0 veya belirli ürün grubunda sabit fark tanımlayabilir.
Formül örneği: kullanılan kur = kaynak kur × (1 + marj/100). Bundan sonra ürün fiyatı çevrilir ve yuvarlama kuralı uygulanır.
Marj değişikliklerinin loglanması fiyat geçmişini ve olası müşteri itirazlarını yönetmeyi kolaylaştırır.
Kur çarpımı sonunda 1.181,347 TL veya 24,734 USD gibi satış açısından istenmeyen değerler oluşabilir. Sistem 0,90, 0,99, 5'in katı, 10'un katı veya iki ondalık gibi kurallarla normalize edilebilir.
Yuvarlamanın kur üzerinde mi ürün fiyatı üzerinde mi uygulanacağı sonuçları değiştirir. Bu nedenle formül sırası net tanımlanmalıdır.
Vergi ve ödeme sağlayıcısı hesaplarında kuruş farkı oluşturmamak için backend ile frontend aynı hesaplama servisinden sonuç üretmelidir.
Kur verisini her sayfa açılışında TCMB'den çekmek gereksiz gecikme ve dış servis bağımlılığı oluşturur. Daha doğru yaklaşım cron/scheduler ile periyodik güncelleme yapıp sonucu yerel veritabanı veya cache içinde saklamaktır.
Günlük fiyatlandırma kullanan işletmede günde bir kez yeterli olabilir; daha dinamik sistemde saatlik veya farklı periyot seçilebilir. Kaynağın yayın sıklığı ve işletme ihtiyacı birlikte değerlendirilmelidir.
Her cron çalışmasında başarılı/başarısız durum, alınan kur ve timestamp loglanır; başarısız istekte son geçerli kur korunabilir.
Dış servise bağımlı her entegrasyonda timeout veya bakım ihtimali vardır. Kur servisi cevap vermediğinde ürün fiyatlarını sıfıra çekmek veya checkout'u bozmak doğru değildir.
Son başarılı kur veritabanında timestamp ile saklanabilir. Belirlenen maksimum yaş aşılırsa yönetici uyarısı üretilebilir ve otomatik ödeme akışı isteğe göre sınırlandırılabilir.
Ayrıca manuel kur override özelliği acil durumlarda işletmenin kontrolünü korur.
Evet. Tedarikçi XML'inde ürün fiyatı USD veya EUR gelebilir. XML ürün aktarımı sırasında ürün currency bilgisi okunup kur motorundan alınan değerle TL satış fiyatına dönüştürülebilir.
Dönüşüm sırası kur × maliyet → marj → KDV → satış marjı → yuvarlama şeklinde işletmeye özel olabilir. Her aşama ayrı tanımlanmalıdır.
Bu özellik tedarikçi XML entegrasyonu ile kur entegrasyonunun birlikte çalıştığı en güçlü kullanım senaryolarından biridir.
Para birimi kodu, sembolü, kaynak türü, kullanılan TCMB alanı, otomatik güncelleme durumu, güncelleme periyodu, yüzde marjı, sabit fark, yuvarlama tipi ve son başarılı güncelleme zamanı görülebilir.
Yönetici otomatik kuru kapatıp manuel kur girebilir; tekrar otomatiğe döndüğünde sistem son kaynak verisini kullanır.
Kur geçmişi tablosu ile hangi tarihte hangi değerin kullanıldığı izlenebilir.
Her ödeme sağlayıcısının desteklediği para birimleri ve merchant hesabına tanımlı yetkiler farklı olabilir. Sitede EUR göstermek ödeme API'sinin EUR kabul edeceği anlamına gelmez.
Checkout'ta seçilen currency desteklenmiyorsa sistem TL tahsilata dönebilir veya kullanıcıya desteklenen para birimlerini gösterebilir. Bu davranış proje başında belirlenmelidir.
Ödeme callback/webhook geldiğinde amount ve currency birlikte doğrulanmalıdır; yalnız tutarı kontrol etmek yeterli değildir.
Aynı ürün farklı para birimi veya ülkeye özel farklı fiyatla sunuluyorsa URL ve structured data stratejisi dikkatli kurulmalıdır. Google ürün dokümantasyonunda farklı para birimleri için para birimi başına ayrı URL yaklaşımı önerilir.
Sadece ziyaretçi seçimine göre JavaScript ile fiyat değiştirilen sistemlerde crawler'ın gördüğü fiyat ile kullanıcıya gösterilen fiyat tutarlı olmalıdır.
Dil, ülke ve para birimi aynı şey değildir. İngilizce ziyaretçinin mutlaka USD kullanacağı veya Almanca ziyaretçinin yalnız EUR kullanacağı varsayılmamalıdır.
Site adresinizi, kullandığınız yazılımı, mevcut ana para birimini ve eklemek istediğiniz para birimlerini iletin. İlk aşamada ürün fiyat mimarisi ve checkout davranışı hakkında genel uygulanabilirlik değerlendirmesi yapılabilir.
Kaynak kod incelemesi gerekiyorsa hangi dosya/veritabanı erişiminin neden gerektiği ayrıca belirtilir. İlk aşamada şifre göndermeniz gerekmez.
Analiz sonucunda sadece gösterim, gerçek dövizli tahsilat, TCMB otomasyonu veya XML+kur entegrasyonu için uygun yol ayrıştırılır.
Aşağıdaki değerler örnektir. Canlı sitede kur kaynağı, alan adı ve para birimleri uygulamaya göre değiştirilmelidir.
<Currency CrossOrder="0" Kod="USD" CurrencyCode="USD">
<Unit>1</Unit>
<Isim>ABD DOLARI</Isim>
<CurrencyName>US DOLLAR</CurrencyName>
<ForexBuying>47.4881</ForexBuying>
<ForexSelling>47.5736</ForexSelling>
</Currency>kaynak_kur = 47.5736
marj = 2.5
uygulanan_kur = kaynak_kur * (1 + marj / 100)
sonuc = 48.76294USD
Kaynak: TCMB
Alan: ForexSelling
Otomatik Güncelleme: Açık
Güncelleme: 60 dakika
Marj: %2.5
Yuvarlama: 0.90
Fallback: Son başarılı kurSite adresinizi, eklemek istediğiniz para birimlerini ve ödeme sisteminizi iletin. İlk aşamada şifre istemeden hangi yöntemin uygulanabileceğini ve gerçek çoklu para birimi için hangi noktaların değişmesi gerektiğini netleştirelim.
Kur kaynağı ve arama motoru davranışı için TCMB ve Google Search Central gibi birincil kaynakları esas alıyoruz.
Kur sistemi XML ürün aktarımı, ödeme entegrasyonu ve çoklu dil yapısıyla birlikte çalışabilir.
Uygulamada en çok karıştırılan kur, ödeme ve fiyatlandırma sorularını topladık.
Evet. Mevcut yazılım uygun ise TCMB verisi periyodik görevle okunup veritabanına kaydedilebilir.
Genellikle hayır. Cron/scheduler ile belirli aralıkta güncellemek ve yerelde saklamak daha sağlıklıdır.
İşletmenin fiyatlandırma politikasına göre değişir. Yönetim panelinden kaynak alan seçilebilir hale getirilebilir.
Sadece gösterim için gerekmez. Gerçek USD tahsilatı için ödeme sağlayıcısının USD'yi desteklemesi gerekir.
Evet. Bu sadece gösterim kuru modelidir.
Evet. Ürünün ana para birimi USD tutulup güncel kurla TL karşılığı üretilebilir.
Evet. Para birimi, kategori veya ürün grubu bazında yüzde/sabit fark uygulanabilir.
Evet. 0,90, 0,99, iki ondalık, 5/10 katı gibi kurallar uygulanabilir.
Doğru tasarımda hayır. Son başarılı kur ve manuel fallback kullanılabilir.
Değişmemelidir. Sipariş anındaki kur snapshot olarak kaydedilir.
Evet. XML aktarımı ile kur motoru birlikte çalıştırılabilir.
Evet. Her ürün/tedarikçi currency bilgisine göre dönüşüm yapılabilir.
Uygun yapılandırmayla evet; mevcut eklentiler veya özel geliştirme seçenekleri incelenir.
Kaynak kod/modül yapısı uygunsa evet.
Kaynak koduna erişilebiliyorsa mevcut fiyat ve sipariş yapısına göre özel entegrasyon geliştirilebilir.
Evet. Güncelleme zamanı, kaynak değer, uygulanan marj ve sonuç kayıt altına alınabilir.
Evet. Otomatik kur geçici kapatılıp manuel değer kullanılabilir.
Evet. Cron/scheduler işletmenin ihtiyacına göre ayarlanabilir.
Evet. Kur kaynağında bulunan veya manuel/API ile sağlanan diğer para birimleri eklenebilir.
Evet. Tutarla birlikte currency kodu da doğrulanmalıdır.
Bu muhasebe ve mevzuat politikasına göre belirlenir; teknik sistem seçilen sipariş currency ve TL karşılığını saklayabilir.
Çoğu durumda gerekmez. Mevcut hosting cron ve dış HTTP/XML erişimini desteklemelidir.
Evet. Proje gereksinimine göre banka veya ticari kur API'si kullanılabilir.
Evet. Kaynak koduna veya uygun entegrasyon API'sine erişim varsa yazılımın bizden alınmış olması gerekmez.
Site adresi, kullanılan yazılım, mevcut para birimi, eklemek istediğiniz dövizler ve ödeme sağlayıcısı yeterlidir.
Site adresinizi, eklemek istediğiniz para birimlerini ve ödeme sisteminizi iletin. İlk aşamada şifre istemeden hangi yöntemin uygulanabileceğini ve gerçek çoklu para birimi için hangi noktaların değişmesi gerektiğini netleştirelim.