DEMO İNCELE
ÜCRETSİZ İNDİR

Prestashop Para Birimi Konusunda Farklı Bir Soru

Merhabalar,
Umarım herkes iyidir.
Şöyle bir sorunum var,
Öncelikle kur olayını hallettim, otomatik olarak günlük kuru alıyorum.
Sitenin tamamında fiyatlar TL olarak görünsün istiyorum, lakin ürün eklerken ürünün fiyatını Euro, Dolar veya TL bazında girebilmek istiyorum.
Yani şöyle, bir ürünü TL bazında alıyorsam ben ürün eklerken TL fiyatını gireceğim, sitede yine TL görünecek.
Dolar bazında alıyorsam, dolar fiyatını gireceğim, sitede TL görünecek.
Şuan ki sorun şu:
Ödemeler sayfasından default para birimini değiştirdiğimde,
Ben ürünü 1750 dolar olarak eklediysem, 1750 TL ye dönüyor birden.
Ben bunu istemiyorum.
Kısacası ürün ekleme sayfasında ürünü hangi para biriminde eklemek istediğimi seçebileceğim bir field.
Mümkün müdür?

Saygılar.
Sedat Doğan

31 thoughts on “Prestashop Para Birimi Konusunda Farklı Bir Soru

  1. behcet - 29 Mart 2017 at 02:55

    aynı sorunu bende çözmek için araştırıyorum. Henüz bir sonuca ulaşamadım.

    Cevap
  2. MehmetGuler - 29 Mart 2017 at 02:55

    Merhaba;
    multi currency 1.2 ve alt versiyonlarda yok. Dolayısı ile istediğiniz şeyi prestashop çekirdeği ile yapamazsınız. 1.3 de bu yetenek olacak diye bildirildi ama açıkçası daha göremedik.
    force currency diye bir modül var. Bunun gibi bir iki modül daha var ama çok kullanışlı değiller. Her ödeme modülünde düzgün çalışmıyorlar. Ödeme modüllerini bu modullere göre düzenlerseniz sorun yaşamıyorsunuz.
    kolay gelsin

    Cevap
  3. SedatKar - 29 Mart 2017 at 02:55
    {convertPriceWithCurrency price=$total}

    :)

    Cevap
  4. MehmetGuler - 29 Mart 2017 at 02:55

    Güzel ama Smarty den bahsedilmiyor burada. Çoklu para birimi kullanmaktan (her ürün için farklı birim kullanabilmek) bahsediliyor.
    Ki o kod kurlar arası dönüşüm yapmaz, sadece $smarty->ps_currency ye göre dönüştürülmüş halini gösterir.
    tabi eğer $cookie->id_currency kullanılabiliyorsa ve

    if ($this->id == Configuration::get(‘PS_CURRENCY_DEFAULT’))

    değilse.

    :)

    Cevap
  5. SedatKar - 29 Mart 2017 at 02:55

    işte havale indirimdede aynı sorun oluyor . sanırım bunu kredi kartı modülü için soruyor arkadaş. bankaya giden tutar da oynama yaparken bununla tl ye çeviriyoruz. ama validteorder function ında sepetteki tutarı aktarıyoruz.

    validateOrder($cart->id,  _PS_OS_PAYMENT_, $total, $estpay->displayName, NULL, $mailVars, $currency->id);

    işte bunu havale veya diğer modüllerde indirim söz konusu olduğunda , $total değişkeni 100 liralık ürün için 90 tl gönderirse eksik ödendi diye hata veriyor. bunun nedeni. classes/PaymentModule.php içinde tanımlı olan

    function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false)

    bu funcion düzenliyerek olayı hallettim ama bu seferde eksik ödendiğinde hata vermiyecek. kredi kartı ile ödeme de vade farkıyla oluşan farkı işte yukarda yazıdğım kodla çevirip bankaya post ediyoruz ama validate in içindeki $total ı yeniden hesaplatırıyoruz. aynı şeyi banka havalesi için yaparız ancak bu sefer 90 tl ödeyen müşteri 100 tl ödemiş görünecek.
    maybe this property feture:)
    http://www.prestasho…cker/view/3044/

    Cevap
  6. SedatKar - 29 Mart 2017 at 02:55

    Merhabalar,

    Ödemeler sayfasından default para birimini değiştirdiğimde,
    Ben ürünü 1750 dolar olarak eklediysem, 1750 TL ye dönüyor birden.
    Ben bunu istemiyorum.

    bu hatayı hangi ödeme modülünde alıyorsun???
    içindeki defoult ödeme modüllerinde böyle bir hata yok. varsada ben göremedim?????

    Cevap
  7. MehmetGuler - 29 Mart 2017 at 02:55

    bu funcion düzenliyerek olayı hallettim ama bu seferde eksik ödendiğinde hata vermiyecek. kredi kartı ile ödeme de vade farkıyla oluşan farkı işte yukarda yazıdğım kodla çevirip bankaya post ediyoruz ama validate in içindeki $total ı yeniden hesaplatırıyoruz. aynı şeyi banka havalesi için yaparız ancak bu sefer 90 tl ödeyen müşteri 100 tl ödemiş görünecek.
    maybe this property feture:)
    http://www.prestasho…cker/view/3044/

    Basar abinin havale indirim modülü 1.1 de çalışıyordu. 1.2 de aynen bahsettiğin sorun var. Tam ödeme modüllerinin

    execPayment($cart)

    fonksiyonunda en başa indirim girip, fonksiyonun sonuna (validate order dan sonra )indirim iptali girince çalışması gerekiyor, ama $cart ile ilgili değişiklik yapınca herşey birbirine giriyor.

    Cevap
  8. behcet - 29 Mart 2017 at 02:55

    teori olarak ürünün niteliğine önceden bir tane $ sekmesi eklesek ve bir hook çalıştırsak, eğer bu ürünün niteliğinde $ işareti varsa git daha önce aldığın dolar kuru ile çarp ve dönüştürerek yansıt.
    Sonrasında productlarda hep dönüştürülmüş Tl karşılığı gözükür ve sepete de tl olarak eklenir.
    mümkünmü böyle bir kod yazmak ?

    Cevap
  9. SedatKar - 29 Mart 2017 at 02:55

    teori olarak ürünün niteliğine önceden bir tane $ sekmesi eklesek ve bir hook çalıştırsak, eğer bu ürünün niteliğinde $ işareti varsa git daha önce aldığın dolar kuru ile çarp ve dönüştürerek yansıt.
    Sonrasında productlarda hep dönüştürülmüş Tl karşılığı gözükür ve sepete de tl olarak eklenir.
    mümkünmü böyle bir kod yazmak ?

    behçet senin programlama mantığın çok iyi. msn den konultuğumuzda farketmiştim zaten:) şu anda bir iş geldi admlar 20 bin 30 bin dolarlık ürün satıyorlar . artık bunu yapmak farz oldu:)))

    Cevap
  10. SedatKar - 29 Mart 2017 at 02:55

    bu arada bilgi olsun diye söylüyorum. eğer ödemeleri kredi kartı ile alacaksanız sadece TL olarak alabilirsiniz. dolar euro ile satış izni şu an türkiyede yok. ödeme alanında tl ye çevrilmiş almanı lazım.

    <Currency>949</Currency>

    949 tl için bu değer sabit gidiyor

    Cevap
  11. MehmetGuler - 29 Mart 2017 at 02:55

    product sınıfına $this->curr_id diye bi değişken ekledim, ps_products tablosuna da aynı şekilde bir stun ekledim. Product sınıfına da getpricewscurr diye bir ek fonsiyon ekledim.
    .tpl dosyalarını editlemeye gerek kalmadı.
    admin panelde ürün girerken sayfasına da bi sorgu ile kur seçeneklerini getirdim.
    Şu anda sorunsuz çalışıyor gibi görünüyor bütün ödeme yöntemlerini denedim ama bir problem yok gibi. Sadece çerezleri silip sepete atarsanız deafult kur gibi algılıyor. Sanırım currency ve cart sınıflarını da eitlemek gerekiyor ama astarı yüzünden pahalı olacak. Yani biraz daha yardırırsam 1.4 çıkaracam. :D
    Eğer sepet sorununu da çözersem yaptığım bütün değişikliği not aldım buradan paylaşırım. ;)

    Cevap
  12. ugur onur - 29 Mart 2017 at 02:55

    merakla bekliyoruz sevgili kardeşim…

    Cevap
  13. basar67 - 29 Mart 2017 at 02:55

    Ödemeler sayfasından default para birimini değiştirdiğimde,
    Ben ürünü 1750 dolar olarak eklediysem, 1750 TL ye dönüyor birden.
    Ben bunu istemiyorum.

    Safa yazının boytuna dikkat eder misin özellikle büyütülmüş ?

    Ödeme sırasında $cart->id_currency veya $params[‘id_currency’] değişkenleri var. Bunların authorised para birimlerinin içinde olması gerekiyor. Bunu 1.2 için yönetimpanel>>ödemeler sekmesindeki ilgili modülün içinden ayarlayabiliyorsunuz.

    Ayrıca link atarsanız bakabilirim.

    Cevap
  14. SedatKar - 29 Mart 2017 at 02:55

    yazının boyutunu niye büyütüğümü hatılamıyorumda, para birimi konusunda biraz çok geliştirme yapmak lazım. prestashop kurları güncelle dediğimiz zaman
    http://www.prestasho…/currencies.xml
    dosyasından çekiyor bu kurlar yanlış , yani türkiyeye uygun değil. çünkü türkiyede bile bankalar aradında kurlar farklı. classes/Currency.php dosyasından güncelleme yapıyor. sanırım en doğrusu merkez bankasına veya herhangi bir banka kuruna göre ayrı bir class yazıp, bu class a uygun bir modül geliştirmek gerekecek.
    saygılarımla

    Cevap
  15. ugur onur - 29 Mart 2017 at 02:55

    Sayın Safa,

    Bakın bu konu burada biraz anlatılmış.. Belki faydası olur biraz..

    http://www.zoque.net…si-kur-kodlari/

    iyi çalışmalar

    Cevap
  16. behcet - 29 Mart 2017 at 02:55

    product.php içerisine
    include_once(‘dovizler.php’); ekledim
    dovizler_zaman.php günde birkaç kez merkez bankasından kodları çekip bir txt dosyasına yazıyor
    dovizler.php dosyasını product.php ye include ettiğim için lazım olduğunda txt dosyasından okuyup, değerlendiriyor.
    $kurlar_eur diye euro değerini atadım.
    include_once(‘dovizler.php’); satırını product.php dosyasının en üstüne yazınca, $kurlar_eur değişkenini tanıyor ve echo ile doğru olarak yazdırabiliyorum.
    $kurlar_eur değişkenini product.php dosyasının 1275. satırından çağırmak istediğimde tanımsız değişken diyor, ancak en üst satırda echo ile doğru olarak yazdırabiliyorum, yani 1275 de echo ile yazdıramıyorum. bu değişkeni tanısa

    if ($doviz_var == "euro")include_once('/var/www/vhosts/sitem.com/httpdocs/doviz/dovizler.php');         $price *= $kurlar_eur;        echo $kurlar_eur;            // Attribute price

    kodlarını çalıştırabileceğim.
    çalışınca da admin ürün ekleme yerindeki Dağıtıcı Referansına euro yazınca euro ile çarpacak, dolar yazınca dolar ile çarpacak.

    yani bu $kurlar_eur değişkeni yukarıda tanınırken, aşağıda neden tanınmıyor.

    Cevap
  17. ugur onur - 29 Mart 2017 at 02:55

    Ben aylardır aynı sorunla uğraşiyorum. Bilgilendirmek için açıklayayım Behçet.

    Anladığım kadarıyla Prestashop un çekirdeği iki ayrı doviz cinsinde tamamen sapitiyor.

    Sayfalarda gostermek bir yana iş ödmeye gelince adamı çıldırtıyor. Bu konuda Mehmet ‘la bayagı uğraştık. Sonucta magazanın admin paneli kisminda dolar, ön yüzünde TL gostererek, gerek fiyatlar, gerekse ödemelerdeki sorunu halletik.

    Ama senin dedigin gibi bazi ürunleri dolar girmek, bazilarini TL girmek, birde bunlarin hepsini ön tarafta TL cinsinden gostermek istemek bir hayli ugrastiracak seni… Ama yinde de çıkmamış candan ümit kesilmez derler. 🙂

    yapabilcegimiz ir sey olursa yardimci olmaya calisiriz…

    Cevap
  18. behcet - 29 Mart 2017 at 02:55

    evet, admin panelde Dağıtıcı Referansı kısmına dolarla satılanlar için “dolar”, euro ile satılanlar için “euro” yazıp, tl ile satılanlara birşey yazmıyorum.
    sonra bunları class/product.php içinde sorguluyorum.

    //        if ($doviz_var == "euro")//        {//        include_once('/var/www/vhosts/sitem.com/httpdocs/doviz/dovizler.php');//        $kurlar_eur1 = @$kurlar_eur;//        $price = $price * $kurlar_eur1;//        echo $kurlar_eur1;//        }//        if ($doviz_var == "dolar")//        {//        include_once('/var/www/vhosts/hepsiantep.com/httpdocs/doviz/dovizler.php');//        $kurlar_eur1 = @$kurlar_usd;//        $price = $price * $kurlar_usd1;//        echo $kurlar_usd1;//        }

    böylelikle dolar olanları anlık değerle çarpıyor veya euro olanları…
    sorunumun çözümüne gelince değişken global olduğu için @ eklemem gerekiyordu ben atlamışım.
    şimdi yeni sorun var :) onuda çözersem paylaşacağım tüm kodları

    Cevap
  19. behcet - 29 Mart 2017 at 02:55
    //    if ($doviz_var == "euro")        //    {            //    include_once('/var/www/vhosts/sitem.com/httpdocs/doviz/dovizler.php');        //    $kurlar_eur1 = @$kurlar_eur;        //    echo $kurlar_eur1,"--";        //    $price *= @$kurlar_eur;        //    echo @$kurlar_eur,"-",$price;        //    }

    yukarıdaki kodun class/product.php 1270 gibi bir satırın orada çalışması lazım ama sanırım teknik bir hata yapıyor ve dovizler.php dosyasından @$kurlar_eur değişkenini çekemiyorum.

    Cevap
  20. SedatKar - 29 Mart 2017 at 02:55

    //    if ($doviz_var == "euro")        //    {            //    include_once('/var/www/vhosts/hepsiantep.com/httpdocs/doviz/dovizler.php');        //    $kurlar_eur1 = @$kurlar_eur;        //    echo $kurlar_eur1,"--";        //    $price *= @$kurlar_eur;        //    echo @$kurlar_eur,"-",$price;        //    }

    yukarıdaki kodun class/product.php 1270 gibi bir satırın orada çalışması lazım ama sanırım teknik bir hata yapıyor ve dovizler.php dosyasından @$kurlar_eur değişkenini çekemiyorum.

    abi yukardaki include bir sorun var sanırım, uzun uzun yolu yazacağına, include i kısa yoldan belirtirsen değeşkeni çakersin sanırım. yolu uzun yazdığın için o yolu tam bulamıyor sanırım.
    kolay gelsin

    Cevap
  21. Mobelti - 29 Mart 2017 at 02:55

    esselamu aleykum.

    aynı sorunu sanırım yeniden açdığım konuda soruverdim.

    http://www.prestasho…icin__farkl_kur

    selamun aleykum.

    admin panelinde ürün fiyatı tl harici diğer kurlar ile giriş yapıldıkdan sonra sayfada ürün fiyatının tl olarak gözükmesini nasıl sağlayabiliriz..?

    misal A Ürünü Satış Fiyatı : 5 $

    ama bu mağazada 7.5 Tl olarak gözükecek.

    hali hazırda varsayılan kur tl dir.lakin bazı ürünlerin fiyatlarını diğer kurlardan girmem gerekiyor.

    birde yurtdışından giren ziyaretçiler için fiyatların otomatik olarak euro ve ya dolar kuru olarak gözükmesini sağlayabilirmiyiz.?

    inşallah en kısa zamanda bir hal çaresi bulunabilir.

    Cevap
  22. ugur onur - 29 Mart 2017 at 02:55

    Hal çaresi ile ilgili cevap yazdım. Umarım işine yaramıştır…

    Cevap
  23. Mobelti - 29 Mart 2017 at 02:55

    selamun aleykum.

    admin panelinde ürün fiyatı tl harici diğer kurlar ile giriş yapıldıkdan sonra sayfada ürün fiyatının tl olarak gözükmesini nasıl sağlayabiliriz..?

    misal A Ürünü Satış Fiyatı : 5 $

    ama bu mağazada 7.5 Tl olarak gözükecek.

    hali hazırda varsayılan kur tl dir.lakin bazı ürünlerin fiyatlarını diğer kurlardan girmem gerekiyor.

    birde yurtdışından giren ziyaretçiler için fiyatların otomatik olarak euro ve ya dolar kuru olarak gözükmesini sağlayabilirmiyiz.?

    Cevap
  24. devreelemanlari@gmail.com - 29 Mart 2017 at 02:55

    Merhaba,

    İlgili linki açamadım. Bu işlem için forumda arama yapıp alttaki kodu buldum. themes->header.tpl 'ye şunu ekleyip varsayılan kuru dolar olarak seçtim, ancak çalıştıramadım.

    {if $cookie->id_currency neq X}
    {literal}
    <script>
    setCurrency(X);
    </script>
    {/literal}
    {/if}

    Farklı bir yoldan Ürünleri dolar girip TL ile satış yapabilir miyim?
    Destek Lütfen.

    Cevap
  25. MehmetGuler - 29 Mart 2017 at 02:55

    Merhaba
    http://www.prestasho…lu-para-birimi/ adresinde burada bahsettiğim modülü yayınlamıştım. Ama konu eskidiği için ancak şimdi gördüm.

    Cevap
  26. neoca - 29 Mart 2017 at 02:55

    arkadaşlar bende dolar para birimi eklemek istiyorum sepette tl yada dolar olması önemli değil tl olursa çok daha iyi olur ama eklediğim ürünlern fiyatları dolar olmasını istiyorum bi türlü dolar ürün eklemeyi bulamadım yardımcı olur musunuz 

    asıl amacım dolar ürün ekleyim ama sayfada tl görünsün ama 1.6 da çözüm bulamadım :(

    Cevap
  27. Şahin YILDIZ - 29 Mart 2017 at 02:55

    Ek-deki modülü kullanabilirsiniz, satış kurunuzu belirler


     

    Cevap
  28. neoca - 29 Mart 2017 at 02:55

    geçici çözüm buldum modülüde deneyeceğim ana kur dolar yaptım zaten ürünlerin fiyatı dolar ve tl kurda ekledim sepette kullanıcı istediği kuru seçsin :) şimdilik bu işimi görüyorum tekrardan teşekkür ederim.

    Cevap
  29. enfexia - 29 Mart 2017 at 02:55

    Ek-deki modülü kullanabilirsiniz, satış kurunuzu belirler


     

    Bu modül sanırım sadece satış kurunu belirliyor. 

    Asıl sorun, Euro ve Dolar olan fiyatları kendi kurlarında girebilmek. 

    Sonrasında bunları TL göstermek de önemli ancak, ürünleri kendi kurlarında girebileceğimiz bir modül var mı?

    Cevap
  30. SedatKar - 29 Mart 2017 at 02:55

    Bu modül sanırım sadece satış kurunu belirliyor. 

    Asıl sorun, Euro ve Dolar olan fiyatları kendi kurlarında girebilmek. 

    Sonrasında bunları TL göstermek de önemli ancak, ürünleri kendi kurlarında girebileceğimiz bir modül var mı?

    şuan ücretsiz bir çözüm yok bunun için

    http://addons.presta…backoffice.html

    bu modulu kullanabilirsiniz. ben kullanıyorum gayet kullanışlı bir modül.

    Cevap
  31. MehmetGuler - 29 Mart 2017 at 02:55

    Merhaba

    https://www.prestash…prestashop-16x/ adresinde benim kendi yazdığım modül var. Dünya genelinde en çok kullanılan bu. 

    Cevap

Cevap bırakın