Jump to content

[Solved] 2 Currencies pada waktu yang sama


Recommended Posts

Hi teman2 presta-ers,
saya ada pertanyaan lagi nih. Saya mau menampilkan 2 curencies pada product page dan shooping cart.
Jadi default price untuk pricenya menggunakan Singapore Dollar (yg nilai currency-nya sudah di atur di admin) lalu juga dimunculkan nilai approx. (misal) USD yang bisa berubah2 sesuai dengan pilihan customer dengan memilih option currency yg disediakan default dari presta

contoh:
price: 100 SGD (approx. 60 USD)
-atau-
price: 100 SGD (approx. 600000 IDR)

ada yang bisa bantu?

Thanks

Link to comment
Share on other sites

Prestashop versi berapa ?

Sistem currency prestashop akan menghitung pesanan/order berdasarkan nilai kurs yang diatur di Back office.
Konfigurasi Default currency yang ditetapkan di Back Office hanya akan menetapkan tampilan currency sesuai konfigurasi default tsb saat Netter mengunjungi prestashop Anda dan belum merubah currency di browsernya (tersimpan di cookie). Serupa dengan Konfigurasi Default Language.
Jadi ... Perubahan yang dilakukan dengan klik menu icon currency adalah nilai sesungguhnya yang akan dihitung dalam cart dan bukan sekedar tampilan alias bukan menghitung dengan default currency.

Link to comment
Share on other sites

Hmmm belum ada yang reply yah. Saya bingung nih.

ada yg bisa bantu?



default currency : SGD, Currency Lain misal USD, IDR (terus tampilin nilai nya).

Kalo pilih USD, tampilin nilai yang SGD ma IDR.

Mungkin bukan approx tapi emang dari rate yg ada di currency ybs ? dengan kata lain dalam satu produk nampilin harga dlm mata uang utama dan sekaligus mata uang lainnya ? logikanya si memungkinkan aja. Kuncinya dapetin daftar currency yg ada berikut ratenya.
Link to comment
Share on other sites



default currency : SGD, Currency Lain misal USD, IDR (terus tampilin nilai nya).

Kalo pilih USD, tampilin nilai yang SGD ma IDR.

Mungkin bukan approx tapi emang dari rate yg ada di currency ybs ? dengan kata lain dalam satu produk nampilin harga dlm mata uang utama dan sekaligus mata uang lainnya ? logikanya si memungkinkan aja. Kuncinya dapetin daftar currency yg ada berikut ratenya.


Iyah itu yg saya maksud... menampilkan 2 currency, default (yg gakan berubah2 misal SGD) dan secondary yang bisa diubah melalui opsi untuk merubah currency by defaultnya prestashop... logikanya sih masuk akal, tapi saya yg ga tau gmn caranya mempertahankan currency defaultnya itu. Karena codenya itu cuma price_wt dan price saja tanpa ada code untuk menetukan currency.. gmn yah?
Link to comment
Share on other sites

Karena menu currency prestashop akan merubah nilai total belanja sesuai nilai kurs, maka sebaiknya jangan memodifikasi fitur ini melainkan membuat module sendiri.

Module yang dibuat berfungsi untuk mengambil nilai kurs yang diinginkan dari website tertentu, misalnya dari website BCA.
Buat sebuah PHP variabel misalnya $kurs untuk mengambil nilai kurs tsb, kemudian Assign ke smarty pada hook header agar dapat aktif di semua halaman.
Selanjutnya pada halaman yang diinginkan, Anda hanya perlu mengkalikan nilai variabel ini dengan harga produk yang sesungguhnya sehingga di peroleh approximate price

Link to comment
Share on other sites

Karena menu currency prestashop akan merubah nilai total belanja sesuai nilai kurs, maka sebaiknya jangan memodifikasi fitur ini melainkan membuat module sendiri.

Module yang dibuat berfungsi untuk mengambil nilai kurs yang diinginkan dari website tertentu, misalnya dari website BCA.
Buat sebuah PHP variabel misalnya $kurs untuk mengambil nilai kurs tsb, kemudian Assign ke smarty pada hook header agar dapat aktif di semua halaman.
Selanjutnya pada halaman yang diinginkan, Anda hanya perlu mengkalikan nilai variabel ini dengan harga produk yang sesungguhnya sehingga di peroleh approximate price



bagaimana dengan site ini: http://www.cdjapan.co.jp/detailview.html?KEY=AVCA-29489
display price seperti itu yg diharapkan.. apa memerlukan module baru? Selain itu, byk jg yg menanyakan hal sama secara online di forum2, namun blm ada jawaban..

untuk menampilkan price, codenya adalah {$productPrice} sedangkan untuk melakukan konversi dan memberi tanda mata uang menjadi: {convertPrice price=$productPrice}
Saya jadi terpikir, apa ada fungsi seperti (misal) {defaultCurrency price=$productPrice} ? Belum mengeri jauh sampai k module creation nih.

Thanks
Link to comment
Share on other sites

Sederhananya Approximate Price diperoleh dari {$productPrice * $kurs}
variabel $kurs ini berubah sesuai opsi kurs yang dipilih.
Opsi kurs bisa menggunakan select box atau link icon seperti default prestashop.

Contoh (menggunakan Form select box):
Sebelumnya Anda sudah membuat Table ps_mykurs dalam database, yang memiliki 4 field data :
id_kurs | nama | simbol | nilai

Anda buat module dengan nama approxprice, maka dalam file approxprice.php tulis script untuk membaca nilai kurs yang sudah disimpan dalam database table ps_mykurs tersebut (bisa juga ditempatkan dalam core file module yang sudah ada):


<?php

/* Awal Module */

   function hookHeader(){
       global $smarty;
       /* Buat variabel id_kurs berdasarkan nilai id_kurs yang diperoleh dari Form pilih_kurs di front office */
       $id_kurs = $_POST['id_kurs'];

       /* jika variabel id_kurs tidak ditentukan gunakan nilai default  untuk mengambil nilai kurs dan simbol*/
       if(!isset($id_kurs)) {
           $kurs = Db::getInstance()->getValue('SELECT nilai FROM '._DB_PREFIX_.'mykurs WHERE id_kurs = 1');
           $simbol = Db::getInstance()->getValue('SELECT simbol FROM '._DB_PREFIX_.'mykurs WHERE id_kurs = 1');
       }
       /* jika variabel id_kurs ditentukan ambil nilai kurs dan simbol yang sesuai */
       else {
           $kurs = Db::getInstance()->getValue('SELECT nilai FROM '._DB_PREFIX_.'mykurs WHERE id_kurs = \''.$id_kurs.'\' ');
           $simbol = Db::getInstance()->getValue('SELECT simbol FROM '._DB_PREFIX_.'mykurs WHERE id_kurs = \''.$id_kurs.'\' ');
       }

       /* Ambil semua data kurs yang tersimpan didalam database tabel mykurs*/
       $data_kurs = Db::getInstance()->ExecuteS('SELECT * FROM '._DB_PREFIX_.'mykurs ');

       /* assign kedalam smarty */
       $smarty->assign(array(
           'active_kurs' => $id_kurs,
           'data_kurs' => $data_kurs,
           'mykurs_url' => Tools::safeOutput($_SERVER['PHP_SELF']).'?'.$_SERVER['QUERY_STRING'],
           'kurs' => $kurs,
           'simbol' => $simbol
       ));
   }


/* Akhir Module */

?>




Selanjutnya pada file themes (*.tpl) tambahkan baris script sbb : (Misalnya ditempatkan dalam produt.tpl)

{l s='Approximate Price:'} {$simbol} {($productPrice * $kurs)|string_format:'%.1f'}
<form action="{$mykurs_url}" method="post" class="std" id="pilih_kurs"  name="pilih_kurs">

     {foreach from=$data_kurs item=kurs name=kurs}
{$kurs.nama} ({$kurs.simbol})
     {/foreach}

</form>



Note:
# Contoh diatas silahkan dikembangkan lebih lanjut agar dapat berfungsi sebagaimana mustinya sesuai harapan ...
# Jika ingin nilai kurs-nya real perhari, maka ambil dari website yang menyediakan data kurs, misalnya BCA. Gunakan php grab untuk mengambilnya dan bukan menggunakan script contoh diatas yang mengambil dari database



p=. Selamat mencoba dan berkreasi ...

Link to comment
Share on other sites

Nah kalau bekerja dengan file php, memang cukup ada bayangan. Tapi dimana saya menempatkan file approxprice.php? Apa di folder modules? Tidak perlukah membuat contruct() dsb seperti pada modules2 lainnya? Hmm saya blm begitu mengerti konsep dari sistem prestashop..


Lalu bagaimana caranya product.tpl dapat membaca approxprice.php tersebut?


table yg baru dibuat itu kan masih kosong, diisinya tentu harus otomatis dari BO kan.. mungkin saya akan coba pakai tale kurs yg sudah ada pada table currency.

maap banyak pertanyaan nih :P ohyah saya pakai presta 1.4

Thanks

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...