OpenCart Ödeme Metodu Geliştirme

Bu yazıda, OpenCart için basit bir ödeme metodunun nasıl geliştirileceğinden kısaca bahsedeceğim. OpenCart sürümü olarak 2.x kullandım ancak mimari pek değişmediği için 1.x sürümünde de -belki küçük farklılıklarla- uygulayabilirsiniz.

OpenCart’a eklenti geliştirmek için MVC (Model – View – Controller) tasarım desenine az da olsa aşina olmanız gerekir. Aşağıdaki şemada OpenCart’ın MVC dizin yapısını göstermeye çalıştım.

Büyük hali için görsele tıklayın

Buna göre her bir uç nokta için birer dosya oluşturacağız. Yani bir ödeme metodu için (istisnai durumlar dışında) toplamda 8 adet dosya oluşturmamız gerekir. Ödeme metodumuzun “Senetli Ödeme” olduğunu varsayarsak; Controller, Language için birer “senet.php” dosyası ve her bir View için birer “senet.tpl” dosyası yazacağız.

Bu kadar ön bilgiden sonra dosyalarımızı yazmaya başlayalım.

admin/controller/payment/senet.php

Bu dosyamız, ödeme metodumuzun yönetim panelindeki Controller dosyası. Bu ve bundan sonraki kodların açıklamaları için, satır içi yorumlara bakın.

admin/model/payment/senet.php

Yukarıda “istisnasi durumlar dışında” diye bahsettiğim bölümlerden birisi Model dosyası. Eğer ödeme metodumuz, basit ayarların dışında veritabanından veri yazıp okumaya gerek duymuyorsa, Model dosyası oluşturmanıza gerek yoktur. Bizim ödeme metodumuzda da böyle bir durum söz konusu olmadığı için Model dosyasını es geçiyoruz.

admin/template/payment/senet.tpl

View dosyamız, yönetim panelindeki ayarların bulunduğu önyüz dosyasıdır. Aşağıda beş adet alandan oluşan bir form var. Bu alanlardan “status” dışındakileri ödeme metodumuza koymak zorunda değiliz ancak sistemin işleyişini görebilmek açısından yine de ekliyoruz.

admin/language/turkish/payment/senet.php

OpenCart çoklu dil destekleyen bir mimaride geliştirildiği için, her metin değeri ayrı bir değişken olarak saklanır. Language dosyamızda da ödeme metodumuzun önyüzünde ya da arka planında kullanılan metinler yer alıyor.

Senetli Ödeme metodumuzun yönetim paneli bölümünü tamamladık. Eğer tüm adımları doğru şekilde yaptırsanız, yönetim panelinizin Eklentiler -> Ödeme Metodları kısmında “Senetli Ödeme” metodu görünecektir.

opencart-modul-1

Ödeme metodumuzu “Kur” dedikten, sonra düzenleme moduna geçtiğimizde View dosyasındaki form alanları görüntülenecek ve Kaydet’ bastığımızda ayarlar Controller tarafından kaydedilecektir.

opencart-modul-2

Henüz işimiz bitmedi. Yönetim panelinde ödeme metodumuz aktif olmasına rağmen, kullanıcı tarafını henüz kodlamadık. Aynı mantık içerisinde, ama bu sefer Catalog dizini altında dosyalarımızı oluşturmaya başlayalım.

catalog/controller/payment/senet.php

Controller dosyası.

catalog/model/payment/senet.php

Kullanıcı tarafındaki Model dosyamız mutlaka “getMethod” fonksiyonunu içermelidir. Bu fonksiyondan dönen $method_data dizisi, ödeme yöntemimize ait bilgileri içerir. Bu kısmı fazla karıştırmamak adına, asgari sipariş tutarı ve bölge kontrolü yapmadım.

catalog/view/theme/{default}/template/payment/senet.tpl

Ödeme yönetimimizin, siparişin son aşamasındak kullanıcıya gösterilen ön yüzü. Eğer “Default” temayı kullanmıyorsanız dosyayı kendi temanızın klasörü içinde oluşturmalısınız.

catalog/language/turkish/payment/senet.php

Önyüzdeki metin değerlerini barındıran dil dosyası.

Hepsi bu kadar. Artık ödeme metodumuz ön yüzde de görünür hale geldi.

opencart-modul-3

“Senetli Ödeme” seçeneğini seçerek devam ettiğimizde, siparişin son aşamasında ilgili View dosyamız görüntüleniyor.

opencart-modul-4

Facebook Twitter Digg Delicious

21 Haziran 2015 tarihinde yayınlandı.