Setelah item dimasukkan ke shopping cart, selanjutnya user harus menginput alamat pengiriman dan mengesetnya sebagai alamat pengiriman utama untuk membuat order. Jadi pada bagian ini nantinya akan ada 2 buah table baru dan secara otomatis 2 model baru juga, yaitu AlamatPengiriman dan Order. Langkah-langkahnya adalah seperti berikut:
Buka terminal dan jalankan perintah berikut kemudian tekan enter.
Setelah dibuat akan akan ada 3 buah file baru. Sekarang kita eksekusi langkah yang pertama. #1. Koreksi migrations dan model Alamat Pengiriman Buka file _create_alamat_pengirimen_table.php (info: karena migrations menggunaan plural dalam bahasa inggris, maka yang tadinya pengiriman dibuat pengirimen) dan update seperti berikut.
Sedangkan untuk model AlamatPengiriman.php buat menjadi seperti berikut.
#2. Controller AlamatPengirimanController.php Pada controller AlamatPengirimanController.php hanya akan ada 3 function yang dipake, yaitu index, store (untuk menyimpan) dan update (untuk mengupdate status menjadi alamat utama). Buka file AlamatPengirimanController.php dan update kodenya menjadi seperti berikut.
#3. Buat views alamatpengiriman Pada folder views buat 1 buah folder baru dengan nama alamatpengiriman dan pada folder alamatpengiriman yang barusan kita buat kita tambahkan 1 buah file dengan nama index.blade.php
#4. Buat dan Koreksi migrations dan model Order Setelah alamat pengiriman sudah kita beresi, sekarang kita buat migrations dan juga model untuk Order. Buka kembali terminal dan jalankan perintah berikut kemudian tekan enter.
Buka file migrations _create_orders_table.php dulu dan update menjadi seperti berikut.
Selanjutnya buka file model Order.php dan update menjadi seperti berikut.
Migrations dan model untuk alamat pengiriman dan order telah selesai kita buat. Sekarang migrate untuk membuat table dari migration tersebut. Buka terminal dan jalan perintah berikut. Jangan lupa tekan enter.
#5. Buat views checkout Untuk membuat halaman checkout, pada folder views/cart tambahkan 1 buah file dengan nama checkout.blade.php
#6. Update CartController Di dalam file CartController.php kita akan menambahkan 1 buah function untuk menampilkan halaman checkout dan juga pada function index, kita akan mengoreksi sedikit agar tidak terjadi error semisal user belum login kemudian mengakses halaman cart. Selain itu juga kita akan menambahkan 2 buah model Order dan AlamatPengiriman. Buka file CartController.php dan update menjadi seperti berikut.
#7. Update function index TransaksiController Pada file controller TransaksiController.php kita akan menambahkan 2 model baru (Order dan AlamatPengiriman) dan juga megoreksi beberapa function yang ada. Buka file TransaksiController.php dan update menjadi seperti berikut.
#8. Update button checkout pada views cart/index.blade.php Buka file cart/index.blade.php kemudian update bagian
Menjadi
#9. Update views transaksi/index.blade.php Karena pada bagian ini transaksi sudah diisi oleh data yang sudah diinput lewat proses order/transaksi. Maka isinya akan kita update. Buka file views transaksi/index.blade.php yang telah kita buat sebelumnya. Hapus semua isinya kemudian ganti dengan kode di bawah ini.
#10. Tambahkan route alamat pengiriman ke web.php Untuk route kita butuh menambahkan route ke halaman checkout dan juga alamatpengiriman. Buka file web.php dan tambahkan route baru di bawah Route::resource('cartdetail', 'CartDetailController');
Silahkan jalankan kembali aplikasi laravel dengan perintah
Kemudian masukkan item atau produk ke shopping cart, kemudian tekan checkout. Lanjutkan proses order sampai order berhasil tersimpan. Hasil jadi bagian ini bisa dilihat disini (https://github.com/fadlur/larashop/tree/32-checkout) Pada tutorial selanjutnya kita akan membuat fungsi untuk mengupdate status pembayaran, pengiriman dan juga input resi. |