Jump to content

[preview] Module "Saya Ga Mau Login Apalagi Mendaftar"


Ardian Yuli Setyanto

Recommended Posts

Assalamualaikum.
Maaf teman prestashoper Indonesia, jadi begini. Sebelumnya terdapat permasalahan pada proses checkout prestashop, yaitu betapa banyak proses checkout yang gagal karena user pembeli tidak mau mendaftar, login, atau parahnya dia tidak punya email. jadi saya coba buat perubahan pada proses di presta ini.
saya kasih nama yg sdikit panjang biar rada aneh :D
previewnya di file attachment.
thnks. mohon reviewnya.

4387_gWE0mIsSxB0yBaq5fbHm_t

  • Like 2
Link to comment
Share on other sites

Alhamdulillah tahap pengembangan sudah selesai. Beberapa pengujian kecil juga sudah dilakukan. Dengan fungsi tambahan ini, presta kita dapat secara otomatis memberikan data-data yang diperlukan sistem bagi user yang tidak mau melewati proses registrasi. Sehingga mereka dapat melewati proses checkout dengan lebih cepat. Hal ini diharapkan dapat meningkatkan jumlah konversi pembelian pada web kita. Hal-hal yang dilakukan modul ini saat pelanggan menekan tombol tidak mau mendaftar adalah sebagai berikut:
1. Secara otomatis membuat account baru dengan data berupa
Nama Customer
Email
Alias Alamat
2. Data email diambil dari nama depan yang dituliskan pelanggan pada field nama depan tujuan pengiriman. Hal ini tentunya mempermudah kita dalam mengecek pembelian yang dilakukan pelanggan tersebut walaupun dia tidak melakukan proses registrasi ataupun login.
3. Tidak merubah fungsi my account pada presta, jadi setelah pelanggan melakukan pembayaran dengan menekan tombol "saya setuju dengan pesanan ini", maka user tersebut masih memiliki cookie yang aktif pada presta, jadi kalau dia melakukan pembelian lagi, data pembelian dan alamat yang dimasukkan pada pembelian sebelumnya masih tersimpan.

beberapa perubahan kedepannya:
4. Memberikan informasi account yang otomatis dibuat kepada user agar mereka dapat mengecek status pembelian mereka pada waktu yang akan datang walaupun mereka secara eksplisit tidak melakukan proses registrasi apalagi login.

terima kasih atas reply dari teman-teman prestashoper Indonesia.

Salam.

  • Like 1
Link to comment
Share on other sites

Keputusan penting telah dibuat. Kabar gembira bagi teman-teman prestashoper !!!
Insya Allah tutorial oprekan sederhanaku pada prestashop agar user bisa "Saya Ga Mau Login Apalagi Mendaftar" akan ana posting di forum ini. Tunggu saja kabar baik dariku.
Semakin banyak yang mereply, semakin menambah semangatku untuk mempostingnya. :D

Salam.

Link to comment
Share on other sites

Terima kasih Bro Ardian, saya yakin mod seperti ini pasti sangat bermanfaat bagi kita semua, terutama bagi pemilik website yang menjual barang yang nominalnya kecil sehingga konsumen tidak mau register hanya untuk membeli barang. Sepertinya presta agak ketinggalan dalam menyediakan option ini jika dibandingkan e-Commerce shopping cart software yang lain. Saya heran kenapa para programmer presta tidak menyediakan option ini. Tetapi untunglah ada orang2 seperti Bro Ardian.

Alhamdulillah akhirnya Bro ardian bersedia share dengan kita, saya siap membantu sebagai tester.

Seperti signaturenya "Orang faqih adalah jang mengamalkan ilmoe nya", semoga ilmu bro Ardian bermanfaat bagi kita semua prestashoper Indonesia. Happy coding....!!! :-)
Semoga cepat selesai........

  • Like 1
Link to comment
Share on other sites

Halo,

dan maaf untuk bahasa saya,
Saya tidak mengerti apa modul ini, Anda bisa menjelaskan?

Terima kasih untuk balasan Anda,

Salam,

Mandrake.(France)


Salam kenal bro, antum ini sudah club member ? Ada orang indonesia yang jadi developer juga ya? Atau bahasa posting nya sudah di translate ke indonesia? Salam kenal dari indonesia. Jadi begini, modul ini hanya menambahkan sedikit fungsionalitas pada prestashop. Yaitu ketika ada pembeli yang mau membayar barang yang dibeli dia tidak perlu mengisi banyak data untuk pendaftaran, tapi cukup mengisikan data alamat barang tujuan saja. Jadi dapat mempercepat proses check out yang diharapkan dapat meningkatkan jumlah pembelian di web kita. Tapi sebenarnya belum dapat disebut sebagai sebuah modul, pokok nya tunggu saja tutorial dariku. Semoga malam ini bisa connect.
  • Like 1
Link to comment
Share on other sites

Halo,

dan maaf untuk bahasa saya,
Saya tidak mengerti apa modul ini, Anda bisa menjelaskan?

Terima kasih untuk balasan Anda,

Salam,

Mandrake.(France)


Hi Mandrake, je suppose que vous ne parlez pas l'Indonésien, dans PrestaShop installation standard, l'utilisateur contraint de s'inscrire avant de pouvoir continuer à l'option de paiement. Cette modification vise à contourner l'enregistrement des utilisateurs ou l'utilisateur peut effectuer de paiement sans créer de compte (Guest Checkout). L'utilisateur a l'option s'ils veulent s'inscrire ou pas avant de continuer de paiement et de livraison.

I suppose you're not speaking Indonesian, in PrestaShop standard installation, user forced to register before they can continue to payment option. This modification intended to bypass user registration or make user can checkout without creating an account (Guest Checkout). User has option whether they want to register or not before continue to payment and shipping option.
Link to comment
Share on other sites

Latar belakang masalah
Pengertian Modul
Judul postingan ini sebenarnya saya sendiri tidak begitu cocok, hal ini dikarenakan pengertian modul di prestashop sendiri adalah berupa class php yang merupakan turunan dari class Module yang ada, sedangkan hasil oprekan ini hanya berupa fungsi tambahan pada file-file php yang sudah ada pada prestashop.

Jadi lebih tepatnya kata modul saya hapus dari judulnya. Mungkin ada dari teman-teman yang bisa meluangkan waktu untuk mengemas ulang kode editan ini menjadi sebuah modul baru sehingga lebih sesuai dengan struktur kode di prestashop.

Konsep fungsi tambahan
Solusi yang akan saya share ini sebenarnya hanya merupakan trik agar prestashop melakukan pendaftaran otomatis bagi user yang tidak mau mendaftar. Hal ini dilakukan dengan menyembunyikan

 type = “hidden”

field-field input html yang kurang diperlukan dan memberikan nilai secara otomatis terhadap field tersebut dari skrip PHP.

Proses Pembuatan Tampilan
Prestashop menggunakan smarty untuk mengurusi masalah view / tampilan. Tampilan yang berupa form pendaftaran atau login pada saat proses checkout terdapat pada file authentication.tpl. Kita akan menambahkan kode yang berfungsi untuk menampilkan form agar terdapat pilihan lain bagi user yang tidak ingin mendaftar ataupun login. Preview tampilannya bisa dilihat di postingan awal saya.

Proses Pembuatan Fungsi
Fungsi yang berkaitan dengan file authentication.tpl terdapat pada file authentication.php. Disini ditambahkan kode untuk menangani proses otomatisasi pendaftaran. Jadi pada saat user menekan tombol 'Tidak mau daftar & login' terjadi proses pembuatan data-data customer seperti email, nama customer, alias alamat, dll di belakang layar.

Ini hanya untuk pemanasan awal saja, codenya menunggu ya. Linuxnya masih error belum mau juga connect ke broadband.

Thanks.

Link to comment
Share on other sites

Keyboard error. Malas ketik. Copy paste saja ya. Sorry.

authentication.tpl

<form action="{$request_uri|escape:'htmlall':'UTF-8'|replace:'&':'&'}" method="post" id="account-creation_form" class="std">

{l s='Your shippig.destiatio'}

           <input  type="hidden" class="text" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{else}{$customer_firstname}{/if}" />
           <input  type="hidden" class="text" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{else}{$customer_lastname}{/if}" />
           <input type="hidden" class="text" id="email" name="email" value="{if isset($smarty.post.email)}{$smarty.post.email}{else}{$email}{/if}" />
           <input type="hidden" class="text" name="passwd" id="passwd" value="{$pass_noname}" />


{l s='First name'}
               <input type="text" class="text" id="firstname" name="firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
*



{l s='Last name'}
               <input type="text" class="text" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
*



{l s='Address'}
               <input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
*



{l s='Postal code / Zip code'}
               <input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" />
*



{l s='City'}
               <input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
*



{l s='Country'}

-
                   {foreach from=$countries item=v}
{$v.name|escape:'htmlall':'UTF-8'}
                   {/foreach}

*



{l s='State'}

-

*



{l s='Additional information'}
               <textarea name="other" id="other" cols="26" rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{/if}</textarea>



{l s='Mobile phone'}
               <input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />

           <input type="hidden" class="text" name="alias" id="alias" value="{if isset($smarty.post.address_noname)}{$smarty.post.address_noname}{else}{$address_noname}{/if}" />
           <input type="hidden" class="text" name="create_noname" id="create_noname" value="1" />

       {$HOOK_CREATE_ACCOUNT_FORM}


           <input type="hidden" name="email_create" value="1" />
           <input type="submit" name="submitAccount" id="submitAccount" value="{l s='Register'}" class="exclusive" />
*{l s='Required field'}


   </form>

Link to comment
Share on other sites

Berikut tambahan kode pada file authentication.php, kode berikut berfungsi untuk menangani proses guest check out.

.....
if (Tools::isSubmit('SubmitAnoname'))

{

   //nilai awal agar tidak tampil error kalau user mencoba langsung klik daftar padahal belum isi data

   $user = 'presta'.$cookie->id_guest;

   $email = $user.rand(1,100000).'@ilmoe.com';

   $create_account = 1;

   $smarty->assign('email_create',  1);

   $smarty->assign('email',  Tools::safeOutput($email));

   $smarty->assign('create_noname',  1);

   $smarty->assign('pass_noname',$user);

   $smarty->assign('address_noname',$user);

   $smarty->assign('customer_firstname','Presta');

   $smarty->assign('customer_lastname','Guest');

   $_POST['email'] = $email;

}
if (Tools::isSubmit('submitAccount'))

{


if (isset($_POST['create_noname'])) {

   $user = 'dakwati'.$cookie->id_guest.preg_replace('/\W/','', $_POST['firstname']);

   $email = $user.'@yahoo.com';


   $create_account = 1;

   $smarty->assign('email_create',  1);

   $smarty->assign('pass_noname','dakwati'.$cookie->id_guest);

   $smarty->assign('address_noname',$user);

   $_POST['customer_firstname'] = $_POST['firstname'];

   $_POST['customer_lastname'] = $_POST['lastname'];

   $_POST['email'] = $email;

   $_POST['address_noname'] = $user;

   $_POST['create_noname'] = 1;


}
.....
.....



semoga berhasil. tapi ngomong-ngomong kenapa forum Indonesia akhir-akhir ini jadi sepi ya ?

Link to comment
Share on other sites

Setelah menunggu dengans sabar.... akhirnya....
Thanks Bro Ardian, sudah susah payah upload kode dengan modem dan keyboard yang error.

Kode sedang dicoba, tapi kelihatanya belum bisa berjalan sebagaimana mestinya, mungkin salah paste :-)

Ato belum semua kodenya di upload??? (Ana bukan coder, hanya tahu sedikit2 aja).
Btw screenshotnya sama ditempatku kok beda ya??? mungkin salah bener2 salah paste :cheese:
Headernya ana ganti dikit ya...

Gmana kalo Bro Ardian upload authentication.tpl dan authentication.php nya aja, mungkin lebih mudah untuk para beginner seperti kita, syukron...

Iya ya, forum belakangan ini agak sepi...

4870_JnT6kCQVVyWVeRzrCSAH_t

Link to comment
Share on other sites

Iya, kode ini tidak bisa langsung dicopy paste begitu saja, tetapi sebenarnya hanya membutuhkan sedikit analisa pada baris ke berapa kode tersebut harus di paste.

Nanti kalau langsung di kasih file jadinya malah kasihan yang pada belum tahu scripting tambah ga paham lagi, tapi kalau penjelasannya bertahap kan lebih baik.
Wa iyyäkum.

Link to comment
Share on other sites

Bener juga ya.. kalo langsung dikasih, ntar ilmunya gak nambah.

OK Bro, ana tunggu seri selanjutnya...

sekalian nanya...

if (Tools::isSubmit('SubmitAnoname'))



->> submited valuenya dari mana???
kalo yang

if (Tools::isSubmit('submitAccount'))



kan dari click button dibawahnya (bener gak?)

BTW kalo dilihat dari statistiknya, thread ini sebenarnya lumayan rame lho... dari jumlah viewnya, lebih dari 600, mungkin sebenernya banyak prestashoper Indonesia yang tertarik dengan thread ini, tapi masih malu2 untuk ikut comment :-)

Link to comment
Share on other sites

o.iya.sorry ini masih ada yang kurang. di file authentication.tpl tambahkan juga code berikut. thanks ya.

<form action="{$request_uri|escape:'htmlall':'UTF-8'}" method="post" id="create-account_form2" class="std">

{l s='Saya belum punya alamat email, insya Allah lain kali saya akan mendaftar. Sekarang saya hanya ingin membayar'}.


                   <input type="submit" id="SubmitAnoname" name="SubmitAnoname" class="button_large" value="{l s='Langsung Bayar'}" />
                   <input type="hidden" class="hidden" name="SubmitAnoname" value="{l s='anoname'}" />



       </form>

Link to comment
Share on other sites

W A R N I N G !!!
buat yang mau mengimplementasikan hasil editan ini, server anda akan mengirimkan email 'welcome' kepada alamat email yang secara otomatis dibuat oleh script. Jadi mohon diperhatikan lebih lanjut untuk implementasinya. Karena kalau server kita sering mengirim email yang tujuannya
This user doesn't have a yahoo.com account
mungkin script web kita akan dianggap spam dan akan di banned sama yang punya layanan host.

Solusi ?

baru dipikirkan.

thanks.

Link to comment
Share on other sites

o.iya.sorry ini masih ada yang kurang. di file authentication.tpl tambahkan juga code berikut. thanks ya.

<form action="{$request_uri|escape:'htmlall':'UTF-8'}" method="post" id="create-account_form2" class="std">

{l s='Saya belum punya alamat email, insya Allah lain kali saya akan mendaftar. Sekarang saya hanya ingin membayar'}.


                   <input type="submit" id="SubmitAnoname" name="SubmitAnoname" class="button_large" value="{l s='Langsung Bayar'}" />
                   <input type="hidden" class="hidden" name="SubmitAnoname" value="{l s='anoname'}" />



       </form>




Suerrrr....saya sudah coba utak atik dan mengamati untuk copy paste script authentication.tpl maupun authentication.php tapi masih belum berhasil juga bos. Mohon dipermudah dong...dah keringatan nihhhh. Sepertinya akan lebih mudah bila bung Ardian posting script secara lengkap aja deh....Thanks
Link to comment
Share on other sites

todo list codingnya masih banyak, gini saja, kalau ada yang mau instan dapat filenya, silahkan kirim email ke gm.computer -at- yahoo -dot- com. hal ini tentunya juga penting bagi saya untuk mengetahui statistik penggunaan kode editan ini, karena view dari thread tidak dapat menunjukkan tingkat apresiasi dari pembaca.

Untuk malam ini, kita bahas bagian berikut.

if (isset($_POST['create_noname'])) {


}


'create_noname' adalah variabel post yang kita buat pada file authentication.tpl tepatnya pada bagian form yang kita pakai untuk by pass registration. jadi code di atas akan dijalankan kalau user menekan tombol by pass tersebut.

$user = 'dakwati'.$cookie->id_guest.rand(1,1000).preg_replace('/\W/','', $_POST['firstname']);



karena konsep by pass registration kita adalah membuat email secara otomatis di belakang layar, maka kita perlu menyediakan alamat email palsu buatan yang harus unik untuk setiap by pass registration. untuk sementara ini hanya kita kasih cara cepatnya yaitu pakai fungsi random biasa saja. akan tetapi walaupun email buatan palsu tersebut bersifat random, usahakan tetap menyimpan identitas data pengiriman agar kita lebih mudah memeriksa order pembelian. hal tersebut kita lakukan dengan menambahkan nama depan alamat tujuan pada email yang kita buat.

$email = $user.'@dakwati.com';

kemudian kita concatenate dengan host fiktif juga.

sekian dulu ya. sudah malam. besuk mau nglanjutin bikin kejutan buat prestashoper.

Link to comment
Share on other sites

sorry ya teman teman, buat kenangan di akhir tanggal 1 maret 2009 ini saya mau buat postingan ku yang ke 200.


Wah...dah jadi club member sekarang ya.... :-)
BTW kejutan-nya kapan? penasaran nih... kira2 apa lagi yang akan diberikan kepada kita Prestashoper Indonesia dari Bro Ardian. Kasih tahu dooong...(bukan kejutan lagi kalo dah tahu ya?!?!?)
Link to comment
Share on other sites

Saya sudah coba scriptnya pak ardy
sebelumnya saya backup dulu file authentication.php dan tpl nya, tapi kenapa yah.. walaupun sudah di kembalikan ke file asal form yang muncul masih seperti script yang pak ardy bikin. Apa ada yang ketinggalan di cache? gimana cara ngilangin nya yah.. Thxs

Link to comment
Share on other sites

Di firefox sudah saya lakukan delete private data namun hasilnya koq nihil yah.. tetep muncul yang lama padahal kedua filenya sudah saya rename ke ext .xxx masih juga tetep begitu, apa karena cache dari prestashop? kalo yang ini bagaimana membersihkannya yah.. Thxs

Link to comment
Share on other sites

  • 2 weeks later...
Berikut tambahan kode pada file authentication.php, kode berikut berfungsi untuk menangani proses guest check out.

.....
if (Tools::isSubmit('SubmitAnoname'))

{

   //nilai awal agar tidak tampil error kalau user mencoba langsung klik daftar padahal belum isi data

   $user = 'presta'.$cookie->id_guest;

   $email = $user.rand(1,100000).'@ilmoe.com';

   $create_account = 1;

   $smarty->assign('email_create',  1);

   $smarty->assign('email',  Tools::safeOutput($email));

   $smarty->assign('create_noname',  1);

   $smarty->assign('pass_noname',$user);

   $smarty->assign('address_noname',$user);

   $smarty->assign('customer_firstname','Presta');

   $smarty->assign('customer_lastname','Guest');

   $_POST['email'] = $email;

}
if (Tools::isSubmit('submitAccount'))

{


if (isset($_POST['create_noname'])) {

   $user = 'dakwati'.$cookie->id_guest.preg_replace('/\W/','', $_POST['firstname']);

   $email = $user.'@yahoo.com';


   $create_account = 1;

   $smarty->assign('email_create',  1);

   $smarty->assign('pass_noname','dakwati'.$cookie->id_guest);

   $smarty->assign('address_noname',$user);

   $_POST['customer_firstname'] = $_POST['firstname'];

   $_POST['customer_lastname'] = $_POST['lastname'];

   $_POST['email'] = $email;

   $_POST['address_noname'] = $user;

   $_POST['create_noname'] = 1;


}
.....
.....



semoga berhasil. tapi ngomong-ngomong kenapa forum Indonesia akhir-akhir ini jadi sepi ya ?




maaf bos... tanya ne...
copas authentication.php dan authentication.tpl di sebelah mana ya..... kok tak taruh asl malah blank....
pencerahannya bos.....
Link to comment
Share on other sites

  • 3 weeks later...

helo yulli,,
di thread ini dr awal sampai akhir aku teliti, yg mau order untuk shipping nya ini kok gak nyebutin price nya brapa gitu ya ?.. kalo boleh tau brapa,, ?..
waduh ( aku pm sampean la,, )
ps : maless nge dell ...!!

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...
  • 6 months later...
  • 2 months later...
ehm... kelihatannya tidak bisa, karena itu konsepnya setiap guest checkout maka dibuatin akun fiktif baru, dan tentunya emailnya tidak boleh sama.
Belum tahu aku apa bisa kena banned / tidak,


Oya bro ardy, maksudnya kirim email itu gimana? apa mengirim email kepada user yang mendaftar menggunakan modul ini? lalu apa ini akan mengirim email stiap kali, hari atau cuma sekali kirim ke email user tersebut? mohon batuannya...
Link to comment
Share on other sites

  • 6 months later...

Modul yg bagus. Judulnya unik .. hehe

tetapi kalo kita hanya menyuruh customer hanya memasukkan alamat emailnya saja ( bagi yg gk mo daftar) kira2 gimana itu ya?

Trus nanti di BOnya akan ada user baru atau kosong?

Sebetulnya tadinya idenya gini, di halaman customer beli ada pilihan :
1. Tidak mau daftar, (disini hanya ada field email saja, jadi guest harus memasukkan email). Email tersebut nantinya akan terdaftar di newsletter kita. dan akan dikenali di BO sebagai user baru. Serta bila ada pembelian lagi dgn alamat email ini, maka otomatis akan masuk di log pembelian user ini (BO). Dan sistem akan mengirimkan password apabila ada customer yg memilih metode "tidak mau daftar" ini.
2. Mendaftar ( Prosedur mendaftar normal)
3. Login ( Bila sudah terdaftar )

Sayang saya gk bisa coding ..hehehe

Link to comment
Share on other sites

  • 2 weeks later...

saya ini masi awam sekali mengenai prestashop,
saya baru saja belajar..

saya mahu tanya pada temen2... dan mohon bantuanya..

Bagaimana cara pengaktifan yahoo email pada prestashop. sehingga customer dapat berkomunikasi melalui Email kami


mohon maklum saya baru tahu prestashop 2hari belakangan ini..


Terimakasih saya ucapkan pada temen2
wassalam

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...
  • 9 months later...
  • 1 year later...
  • 2 months later...

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...