Payment TR Kullanım Kılavuzu
Türkiye'deki tüm bankalar için ödeme entegrasyonu modülünün kapsamlı kullanım ve eğitim kılavuzu.
Modül Hakkında
Payment TR, Türkiye'deki 30+ banka ve ödeme kuruluşu için kapsamlı bir ödeme entegrasyon modülüdür. Odoo'nun standart ödeme akışını korurken, Türkiye'ye özel özellikler ekler.
Temel Özellikler
30+ Banka Desteği
Garanti, Akbank, Yapı Kredi, İş Bankası, Kuveyt Türk ve daha fazlası
3D Secure
Tüm bankalar için 3D Secure ödeme akışı
Taksit Yönetimi
Banka bazlı faizli/faizsiz taksit seçenekleri
Müşteri Özel Faiz
Belirli müşterilere veya gruplara özel taksit oranları
Ödeme Linki
Müşteriye e-posta/SMS ile gönderilebilir ödeme linki
Bağımsız Form
Sale order'a bağlı olmayan açık ödeme formu
İade Yönetimi
Tam veya kısmi iade işlemleri
Dashboard
Banka performansı, başarı oranları, taksit dağılımı
Kurulum
-
Modülü kopyala:
payment_trklasörünü Odoo'nunaddonsdizinine kopyalayın. -
Odoo'yu yeniden başlat:
--update=payment_trparametresi ile başlatın veya servisi restart edip Apps menüsünden upgrade yapın. - Apps menüsünden yükle: "Apps" menüsüne gidin, "payment_tr" araması yapın ve Install butonuna tıklayın.
İlk Yapılandırma
- Ödeme Sağlayıcı üzerinde API token ve endpoint'i ayarla
- Bankalar'ı aktif et
- Taksit Seçenekleri'ni tanımla
- Genel Ayarlar'ı kontrol et
- (Opsiyonel) Müşteri Özel Kuralları ekle
Ödeme Sağlayıcı
Modül kurulumdan sonra otomatik olarak Payment TR
isminde bir payment.provider kaydı oluşturur.
Erişim Yolu
Muhasebe → Yapılandırma → Ödeme Sağlayıcıları → Payment TR
Önemli Alanlar
| Alan | Açıklama |
|---|---|
state | "test" veya "enabled". Üretimde enabled olmalı. |
payment_tr_api_endpoint | PHP middleware URL'i (örn: https://payment.odo.tr) |
payment_tr_api_token | PHP middleware ile paylaşılan API anahtarı |
company_id | Bu sağlayıcının ait olduğu şirket |
Banka Tanımları
Her banka için POS bilgilerini ve özelliklerini tanımlayın.
Erişim Yolu
Payment TR → Bankalar ve Taksitler → Banka Tanımları
Banka Eklerken Dikkat Edilecekler
- code: Benzersiz olmalı (örn:
GARANTI,AKBANK) - merchant_id, terminal_id, store_key: Bankadan alınan POS bilgileri
- supports_3d: 3D Secure desteklenip desteklenmeyeceği
- supports_installment: Taksit desteği
- bin_ranges: Hangi BIN kodlarının bu bankayı çağıracağı (kart tanıma için)
- state: enabled olmalı (yoksa kart akışında görünmez)
Taksit Seçenekleri
Her banka için standart taksit seçenekleri tanımlayın. Müşteri özel kuralları bu standart taksitleri override eder.
Erişim Yolu
Payment TR → Bankalar ve Taksitler → Taksit Seçenekleri
Örnek Yapılandırma — Garanti
| Taksit | Faiz | Min Tutar | Max Tutar |
|---|---|---|---|
| 2 Taksit | %0 | 100 ₺ | — |
| 3 Taksit | %0 | 100 ₺ | — |
| 6 Taksit | %6.50 | 200 ₺ | — |
| 9 Taksit | %9.50 | 500 ₺ | — |
| 12 Taksit | %12.50 | 1000 ₺ | — |
0
olduğunda kullanıcının kredi kartından sadece sipariş tutarı çekilir,
vade farkı eklenmez.
Genel Ayarlar
Modülün genel davranışını kontrol eden ayarlar.
Erişim Yolu
Payment TR → Yapılandırma → Genel Ayarlar
Önemli Ayarlar
- default_bank_id: BIN tanınmadığında kullanılacak varsayılan banka
- show_installment_on_product: Ürün sayfasında taksit tablosu göster
- email_template_*: Ödeme linki/başarı/başarısız e-posta şablonları
👤 Müşteri Özel Taksit Kuralları
v18.0.1.6.0 ile eklenen özellik. Belirli müşterilere veya müşteri kategorilerine özel faiz oranları, komisyon, tutar limiti ve kampanya tarihi tanımlayabilirsiniz.
Ne Yapar?
Standart taksit oranları yerine bu müşteriye özel oranları uygular. Müşteri herhangi bir görsel fark görmez — sadece kendi oranıyla işlem yapar.
Tipik Kullanım Senaryoları
🏢 Kurumsal Müşteri İndirimi
"X Holding firmasına 12 taksit %5 (standart %12.50 yerine)."
⭐ VIP / Premium Grup
"Premium müşterilere tüm taksitler faizsiz."
📅 Sınırlı Süreli Kampanya
"1-31 Mayıs arası 6 taksit %0 kampanyası."
🏦 Banka Spesifik
"Bu müşteri sadece Garanti'de %5 oran, diğer bankalarda standart."
Kural Oluşturma — Müşteri Bazlı
Yöntem 1: Müşteri Formundan
- Satış → Müşteriler menüsünden müşteriyi açın (sadece ana hesap; alt kontaklar otomatik miras alır)
- Form'da "Ödeme TR Taksit Kuralları" sekmesine geçin
- Tabloda "Satır Ekle" ile yeni kural ekleyin
- Alanları doldurun ve kaydedin
Yöntem 2: Bağımsız Menüden
Payment TR → Bankalar ve Taksitler → Müşteri Özel Taksit Kuralları
Kural Alanları
| Alan | Açıklama | Örnek |
|---|---|---|
| partner_id | Hedef müşteri (ana hesap olmalı) | X Holding A.Ş. |
| category_id | Veya hedef kategori (tag). İkisi birden olamaz! | Premium |
| bank_id | Hangi banka için. Boş = tüm bankalar. | Garanti BBVA |
| installment_count | Hangi taksit sayısı için kural geçerli | 12 |
| interest_rate | Override edilecek faiz oranı (%) | 5.00 |
| commission_rate | Override edilecek komisyon (%) | 0.00 |
| min_amount / max_amount | Bu kuralın geçerli olacağı tutar aralığı (0 = sınırsız) | 1000 / 50000 |
| date_start / date_end | Kampanya tarihi (opsiyonel) | 2026-05-01 / 2026-05-31 |
| priority | Çakışma çözümü. Küçük = öncelikli. | 10 (default) |
| state | active / inactive | active |
Kural Oluşturma — Kategori Bazlı
Çok sayıda müşteriye aynı kuralı uygulamak istiyorsanız kategori (tag) kullanın.
Erişim Yolları (3 alternatif)
Payment TR → Bankalar ve Taksitler → Müşteri Etiketleri
(v18.0.1.9.0 ile eklenen shortcut menüsü)
Adımlar
-
Yeni bir etiket oluşturun: Üç yöntemden biriyle:
Payment TR → Bankalar ve Taksitler → Müşteri Etiketleri→ Yeni- Veya
Satış → Yapılandırma → Müşteri Etiketleri - Veya bir müşteri açıp "Tags" alanına yazıp Enter
- Etiket formunun altında "Ödeme TR Taksit Kuralları" bölümünde "Satır Ekle" ile kural tanımlayın
- Müşterileri etikete atayın: Hedef müşterilerin "Tags" alanına aynı etiketi ekleyin. Alt kontaklar otomatik olarak ana hesabın etiketini miras alır.
Hızlı Erişim
Tüm tag bazlı kuralları tek listede görmek için:
Payment TR → Bankalar ve Taksitler → Tag Bazlı Kurallar
Örnek
Tag: Premium Müşteri Kural 1: Tum bankalar, 12 taksit, %0 faiz Kural 2: Tum bankalar, 6 taksit, %0 faiz
Bu tag'i taşıyan tüm müşteriler 6 ve 12 taksitte faizsiz ödeyebilir.
Kampanya Tarihli Kurallar
Kampanya tarihi alanlarını doldurarak kuralın sadece belirli bir tarih aralığında geçerli olmasını sağlayabilirsiniz.
Erişim Yolu
Payment TR → Bankalar ve Taksitler → Kampanyalar
Bu menü,
date_start veya date_end dolu olan
tüm kuralları (tarihli kampanyalar) tek listede gösterir.
Kampanya Oluşturma Adımları
- Payment TR → Bankalar ve Taksitler → Kampanyalar menüsünü açın
- Yeni butonuna basın
- Hedef seçin (partner VEYA kategori — birinden biri zorunlu)
- Banka, taksit sayısı, faiz oranı girin
-
Kampanya Tarihi bölümünde
date_startvedate_enddoldurun - Kaydedin — kampanya otomatik aktif olur
Örnek 1: Belirli Müşteri için Kampanya
| partner_id | X Holding |
| category_id | (boş) |
| bank_id | (boş — tüm bankalar) |
| installment_count | 6 |
| interest_rate | 0.00 |
| date_start | 2026-05-01 |
| date_end | 2026-05-15 |
Örnek 2: Tüm Müşteriler için Kampanya
Genel bir kampanya için (örn. "Anneler Günü tüm müşterilere"):
- Önce bir "Genel Kampanya" tag'i oluşturun
- Tüm müşterilere bu etiketi atayın (toplu işlem ile)
- Bu tag için kampanya kuralı tanımlayın
partner_id hem category_id boş olamaz.
Genel kampanya için yukarıdaki "Tüm Müşteriler" tag'i yöntemini
kullanın.
Kampanyayı İzleme
Kampanyalar listesinde renk göstergeleri:
- ● Yeşil: Şu an aktif (bugün geçerli)
- ● Sarı: Active ama tarih dışında (geçmiş ya da gelecek)
- ● Gri: Pasif (state=inactive)
Toplu İçe Aktarma (CSV)
Çok sayıda kuralı tek tek girmek yerine CSV dosyasından toplu yükleyin.
Erişim Yolu
Payment TR → Bankalar ve Taksitler → Toplu Kural İçe Aktarma
CSV Format
partner_email,category_name,bank_code,installment_count,interest_rate,commission_rate,priority,date_start,date_end ahmet@firma.com,,GARANTI,12,5.0,0.0,10,, ,Premium,GARANTI,6,1.0,0.0,10,2026-05-01,2026-05-31 ,Premium,,12,0.0,0.0,10,,
Kurallar
- partner_email VEYA category_name dolu olmalı (ikisi birden olamaz)
- bank_code boş bırakılırsa "tüm bankalar" anlamına gelir
- date_start / date_end opsiyonel, format:
YYYY-MM-DD - Dosya UTF-8 encoded olmalı
- İlk satır header (kolon adları) olmalı
Çakışma Çözümü & Öncelik
Aynı taksit sayısı için birden fazla kural varsa hangisinin uygulanacağını belirleyen sıralama:
-
Banka spesifik > Generic
bank_iddolu olan kural,bank_id = boşolan kuraldan üstündür. -
Partner > Kategori
partner_idile tanımlı kural, aynı müşterinin kategorisi üzerinden gelen kuraldan üstündür. -
Priority (küçük sayı kazanır)
İlk iki kriter eşitsepriorityalanına bakılır. Default değer10'dur.
Örnek
X Holding firması "Premium" tag'ına sahip. Aşağıdaki kurallar var:
| Kural | Hedef | Banka | Faiz | Priority |
|---|---|---|---|---|
| A | Premium kategori | Tüm | %2 | 10 |
| B | X Holding | Tüm | %1 | 10 |
| ✓ C | X Holding | Garanti | %0 | 10 |
12 taksitle Garanti'den öderken Kural C kazanır — banka spesifik ve partner spesifik olduğu için.
E-Ticaret Akışı
Standart Odoo Website Shop kullanıyorsanız:
- Müşteri ürünleri sepete ekler,
/shop/payment'a gelir - Payment TR inline form otomatik açılır
- Müşteri kart numarası girer → BIN tespit edilir → banka belirlenir
- Banka'ya göre taksit listesi otomatik yüklenir
- Müşteri özel kuralı varsa taksit oranları otomatik override edilir
- "Şimdi Öde" → 3D Secure → Bankaya yönlendirme → Geri dönüş
- Başarılı ise
/shop/confirmation'a yönlendirme
Ödeme Linki ile Ödeme
Müşteriye e-posta veya SMS ile gönderilebilen ödeme linki.
Link Oluşturma
Payment TR → İşlemler → Yeni Ödeme Linki'ne tıklayın- Wizard'da müşteri, tutar, açıklama girin
- Müşterinin özel taksit kuralı varsa wizard'da otomatik uyarı belirir
- "Oluştur ve E-posta Gönder" ile linki müşteriye iletin
Link Görünümü
Link açıldığında müşteri ödeme yapabileceği sayfayı görür. Aynı inline form burada da kullanılır.
Bağımsız Ödeme Formu
Sale order olmadan açık (public) ödeme formu — bağış, aidat, ön ödeme gibi senaryolar için.
Form Oluşturma
Payment TR → İşlemler → Ödeme Formları'ndan yeni form ekleyin- Form adı, açıklama, tutar (sabit veya değişken) belirleyin
- Üretilen URL'i müşterilerinizle paylaşın
Dashboard
Payment TR → Gösterge Paneli menüsünden ulaşılır.
Gösterilen Veriler
- Bugün/bu hafta/bu ay işlem sayısı ve tutarı
- Başarı oranı
- Banka performans listesi (top 10)
- Son işlemler
Raporlar
Payment TR → Raporlar menüsünden 4 farklı rapor mevcut:
- İşlem Raporu — pivot/graph ile tarih, banka, durum kırılımı
- Banka Performans Raporu — banka bazlı başarı oranları
- Taksit Kullanım Raporu — taksit sayılarına göre dağılım
- İade Raporu — iade işlemleri detayları
Müşteri Kural İstatistiği
Müşteri Özel Taksit Kuralları menüsünde
Pivot ve Graph view'ları ile
kuralların banka × taksit × faiz oran kırılımı görülebilir.
Audit Log
Bir transaction'a müşteri özel kuralı uygulandığında, ilgili
payment.transaction kaydının chatter
bölümüne otomatik mesaj düşer:
Müşteriye Özel Taksit Kuralı Uygulandı Kural: X Holding - Garanti BBVA - 12 Taksit Taksit: 12 x 262.50 = 3150.00 Faiz oranı: 5.00% (standart yerine) Faiz tutarı: 150.00 ₺
Bu sayede her ödeme işleminde hangi kuralın uygulandığı izlenebilir, denetim raporlarında kullanılabilir.
Sıkça Sorulan Sorular
Müşteri özel kuralı tanımladım ama uygulanmıyor?
- Kuralın
statealanı active mi? - Kuralda
date_start / date_endvarsa bugün bu aralıkta mı? min_amount / max_amountsipariş tutarını kapsıyor mu?- Müşteri seçtiği bankayı kapsıyor mu? (
bank_id) - Alt kontak ödüyorsa ana hesabın kuralı uygulanır — ana hesapta mı tanımlı?
Standart taksite ek olarak kural eklediğimde her ikisi de gösteriliyor mu?
Müşteri özel oranı gördüğünü nasıl anlar?
payment.transaction.payment_tr_partner_installment_id
alanına bakarak hangi kural uygulandığını görebilirsiniz.
Kuralı oluşturdum ama wizard'da partner seçince uyarı görünmüyor?
partner_id ile oluşturduysanız, wizard'da o müşteriyi
seçtiğinizde uyarı çıkmalı. Eğer commercial_partner_id
farklıysa (örn. alt kontak) ana hesaba bakar.
Bir kural hem partner hem kategori için tanımlanabilir mi?
partner_xor_category).
Aynı sonucu istiyorsanız 2 ayrı kural oluşturun.
Faiz negatif (-%5 gibi indirim) yapabilir miyim?
Payment TR → İşlemler üzerinden iade akışı kullanın.
Performans sorunu var mı? Her BIN detection'da DB sorgusu mu?
@tools.ormcache ile sorgular önbelleğe alınır.
Amount 100 TL gruplara yuvarlanarak cache hit oranı artırılır.
Kural değiştiğinde cache otomatik invalidate olur.
Hata Çözümleri
Kart akışı çalışmıyor
- Bankanın
state = enabledolduğunu kontrol edin - BIN ranges'ın kart numarasıyla eşleştiğini kontrol edin
- Browser console'da
payment_trlog'larına bakın - Network tab'da
/payment/payment_tr/get_installmentsresponse'unu inceleyin
3D yönlendirmesi geri dönmüyor
-
PHP middleware'in
config.php'sindeodoo_callback_base_url'in doğru olduğunu doğrulayın - HTTPS kullanıyorsanız sertifika geçerli olmalı
-
Bankadan dönen POST'u inceleyin (PHP loglarında
logs/callback.log)
Taksit listesi boş geliyor
- Banka için
supports_installment = truemi? -
Bankaya ait
payment.tr.installmentkayıtlarıstate = activeve sipariş tutarı min/max aralığında mı?
Faiz uygulanmadı (faizli taksit seçili olmasına rağmen)
-
payment.transactionkaydını açıppayment_tr_installment_idvepayment_tr_partner_installment_id'i kontrol edin -
Sale order'da "Banka Taksit Vade Farkı" satırı yoksa
_payment_tr_apply_installment_interestlog'larına bakın
İletişim & Destek
odoerp
Geliştirici: FATİH
Web: www.odoerp.com
Sorun bildirimi, özelleştirme talebi veya yeni özellik önerisi için bizimle iletişime geçin.