WooCommerce nedir?
WooCommerce, WordPress üzerine kurulan açık kaynaklı bir e-ticaret platformudur. Türkiye’de küçük butikten büyük markaya kadar binlerce işletme mağazasını WooCommerce ile yönetiyor. Esnek tema yapısı, geniş eklenti ekosistemi ve veriye tam sahiplik avantajı sağlar — ama ödeme tarafında Türk bankalarıyla çalışmak için BKM lisanslı bir sanal POS sağlayıcısı gerekir.
PayTR nedir?
PayTR, Türkiye’de BKM lisanslı, düşük komisyon oranlarıyla öne çıkan bir ödeme/sanal POS sağlayıcısıdır. Banka ile ayrı anlaşma gerektirmeden kredi kartı, banka kartı ve taksitli ödeme almanızı sağlar. En yaygın kullanılan yöntemi iFrame’dir: hazır ödeme sayfası sitenize gömülür, kart bilgileri PayTR’ın güvenli altyapısında işlenir, sizin sunucunuzda hiç tutulmaz.
Neden WooCommerce ve PayTR entegre edilmeli?
WooCommerce’in kendi başına Türk bankalarından kart tahsilatı yapma yeteneği yok; bunu bir sanal POS sağlamak zorunda. PayTR’ı WooCommerce’e doğru bağlamak şunları getirir:
- BKM uyumlu kart tahsilatı: Banka ile ayrı sözleşme yapmadan tüm kartlardan ödeme alırsınız.
- Düşük komisyon avantajı: PayTR’ın oranları tek satıcılı e-ticaret sitelerinde belirgin maliyet avantajı sağlar.
- Otomatik sipariş onayı: PayTR’dan başarılı ödeme bildirimi geldiğinde sipariş statüsü otomatik güncellenir, stok düşülür.
- iFrame ile PCI yükü PayTR’da: Kart verisi sizin sunucunuza hiç uğramaz; güvenlik sorumluluğu PayTR tarafında kalır.
- Taksit ve 3D Secure: Banka bazlı taksit ve yasal olarak zorunlu 3D Secure akışı checkout’a entegre edilir.
Manuel link gönderip ödeme toplamak hata ve takip yükü yaratır; doğru kurulmuş entegrasyonda ödeme ve sipariş tek akışta yürür.
WooCommerce PayTR entegrasyonu nasıl yapılır?
PayTR’ın resmi bir WooCommerce eklentisi var; biz işi eklentiyi kurmaktan ibaret görmüyoruz — asıl risk eklentinin altındaki bildirim akışında. Zeisoft olarak kurulumu uçtan uca yapıyoruz:
- PayTR resmi WooCommerce eklentisini kuruyor, merchant ID / merchant key / merchant salt bilgilerini girip iFrame ödeme yöntemini etkinleştiriyoruz.
- PayTR panelindeki bildirim URL’sini (callback) WordPress’in gerçekten yanıt verdiği adrese ayarlıyor, permalink yapısının ve SSL’in bu isteği kabul ettiğini doğruluyoruz.
- Ödeme sonucu statülerini WooCommerce’e eşliyoruz: başarılı ödeme → “işleniyor”, başarısız → “beklemede”, böylece stok yalnızca onaylı siparişte düşer.
- Banka bazlı taksit oranlarını ve minimum sepet tutarı kuralını yapılandırıyoruz.
- Test kartlarıyla tek çekim, taksit, 3D Secure, başarısız ödeme ve iade senaryolarını ayrı ayrı çalıştırıyoruz.
- Canlı geçişten sonra ilk günlerde ödeme bildirimlerini izliyor, bakım anlaşması ile WordPress/WooCommerce/PayTR güncellemelerini takip ediyoruz.
Sıkça karşılaşılan sorunlar
WooCommerce + PayTR kurulumlarında sahada en sık gördüğümüz dört sorun ve çözümü:
- Ödeme alınıyor ama sipariş düşmüyor. En yaygın sorun bu. PayTR başarılı bildirimi gönderiyor fakat WordPress isteği alamıyor — yanlış bildirim URL’si, “plain” permalink veya bir güvenlik/firewall eklentisinin POST isteğini bloklaması. Çözüm: bildirim URL’sini PayTR panelinden test edip ulaşılabilirliğini ve eklenti istisnasını doğrulamak.
- Müşteri ödeme sonrası boş/hatalı sayfaya düşüyor. iFrame dönüş (return) adresi yanlış ya da tema çakışması varsa müşteri “ödedim mi?” belirsizliğinde kalır. Çözüm: başarılı/başarısız dönüş URL’lerini WooCommerce teşekkür ve checkout sayfalarına doğru bağlamak.
- Çift stok düşümü veya onaysız sipariş. Sipariş statü eşleştirmesi yanlışsa ödeme onaylanmadan stok düşer ya da onaylı ödemede sipariş “beklemede” takılır. Çözüm: PayTR sonucunu doğru WooCommerce statüsüne map’lemek ve idempotent bildirim işlemek (aynı bildirim iki kez gelse bile tek sipariş).
- İade WooCommerce’de görünüyor ama paraya yansımıyor. Eklentinin iade desteği etkinleştirilmemiş veya API anahtarları eksikse panelden başlatılan iade PayTR’a gitmez. Çözüm: eklenti iade entegrasyonunu açıp test iadesiyle paraya yansıdığını doğrulamak.
Dördü de canlı geçiş öncesi doğru kurguyla önlenebilir; ödeme yapmış müşteride sonradan çözmek hem itibar hem mutabakat sorunu yaratır.