Setelah berhasil menyelesaikan bab tentang carts, maka kita akan lanjutkan belajar untuk bagian checkout. Pada halaman ini kita nanti akan belajar banyak sekali, seperti menampilkan data provinsi, kota berdasarkan provinsi (dependent select dropdown), ongkos kirim dan lain sebagainya.
Langkah 1 - Membuat Component Checkout Index
Silahkan teman-teman jalankan perintah berikut ini di dalam terminal/CMD dan pastikan berada di dalam project Laravel-nya.
go
php artisan make:livewire Web/Checkout/Index
Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 2 file baru, yaitu:
- Class Component:
app/Livewire/Web/Checkout/Index.php - View Component:
resources/views/livewire/web/checkout/index.blade.php
Langkah 2 - Membuat Route Checkout
Silahkan buka file routes/web.php, kemudian ubah semua kode-nya menjadi seperti berikut ini.
php
<?php
namespace App\Livewire;
use Illuminate\Support\Facades\Route;
//route register
Route::get('/register', Auth\Register::class)->name('register');
//route login
Route::get('/login', Auth\Login::class)->name('login');
//route group account
Route::middleware('auth:customer')->group(function () {
Route::group(['prefix' => 'account'], function () {
//route my order
Route::get('/my-orders', Account\MyOrders\Index::class)->name('account.my-orders.index');
//route my order show
Route::get('/my-orders/{snap_token}', Account\MyOrders\Show::class)->name('account.my-orders.show');
//route my profile
Route::get('/my-profile', Account\MyProfile\Index::class)->name('account.my-profile');
//route password
Route::get('/password', Account\Password\Index::class)->name('account.password');
});
});
//route home
Route::get('/', Web\Home\Index::class)->name('home');
//route products index
Route::get('/products', Web\Products\Index::class)->name('web.product.index');
//route category show
Route::get('/category/{slug}', Web\Category\Show::class)->name('web.category.show');
//route product show
Route::get('/products/{slug}', Web\Products\Show::class)->name('web.product.show');
//route cart
Route::get('/cart', Web\Cart\Index::class)->name('web.cart.index')->middleware('auth:customer');
//route checkout
Route::get('/checkout', Web\Checkout\Index::class)->name('web.checkout.index')->middleware('auth:customer');
Dari perubahan kode di atas, kita menambahkan route baru untuk halaman checkout dengan memberikan path URL /checkout. Dan kita tambahkan middleware auth:customer, artinya route ini hanya bisa diakses jika customer sudah login.
css
Route::get('/checkout', Web\Checkout\Index::class)->name('web.checkout.index')->middleware('auth:customer');
Langkah 3 - Uji Coba Menampilkan Checkout
Silahkan teman-teman buka link berikut ini http://localhost:8000/checkout, jika berhasil maka kurang lebih hasilnya seperti berikut ini.
