Baik, siap! Kita akan melanjutkan ke tahap pengembangan berikutnya: Sistem Ulasan (Review).
Pada tahap ini, kita akan memungkinkan pengguna untuk memberikan ulasan dan rating bintang untuk produk yang telah mereka beli dan kurir yang telah mengantar pesanan mereka.
Tahap 16: Sistem Ulasan (Review)
16.1. Review Controller
Kita akan membuat controller untuk menangani logika penulisan dan pengelolaan ulasan.
ReviewController
14 Jul, 18.20
Buka https://g.co/gemini/share/4e10b4e56be6
Bash
php artisan make:controller ReviewController
16.2. Rute Ulasan
Tambahkan rute ini di routes/web.php di dalam grup middleware auth:
Rute Ulasan (routes/web.php)
14 Jul, 18.20
Buka https://g.co/gemini/share/86328d2747e5
16.3. Order Controller (Untuk Pembeli)
Agar pengguna dapat melihat riwayat pesanan mereka dan dari sana dapat memberikan ulasan, kita perlu membuat controller untuk manajemen pesanan dari sisi pembeli.
OrderController (Public)
14 Jul, 18.20
Buka https://g.co/gemini/share/d8ca951de1ab
Bash
php artisan make:controller OrderController
16.4. Tampilan Daftar Pesanan Pembeli
Buat direktori resources/views/orders/ dan di dalamnya buat file index.blade.php.
User Orders Index View
14 Jul, 18.20
Buka https://g.co/gemini/share/a53e63b95144
16.5. Tampilan Detail Pesanan Pembeli (dengan Link Ulasan)
Kita akan memodifikasi resources/views/orders/show.blade.php untuk menambahkan bagian ulasan.
User Orders Show View
14 Jul, 18.20
Buka https://g.co/gemini/share/5a8346dc86d5
16.6. Tampilan Form Ulasan
Buat direktori resources/views/reviews/ dan di dalamnya buat file create.blade.php.
Review Create View
14 Jul, 18.20
Buka https://g.co/gemini/share/6120239f1637
16.7. Tampilan Profil Kurir (Menampilkan Ulasan)
Kita perlu membuat controller dan view untuk profil kurir yang dapat diakses publik, di mana ulasan kurir akan ditampilkan.
CourierProfileController
14 Jul, 18.20
Buka https://g.co/gemini/share/adab97be03e3
Bash
php artisan make:controller CourierProfileController
Tambahkan rute ini di routes/web.php (bisa di bagian publik, tidak perlu middleware auth jika profil kurir bisa dilihat publik):
Rute Profil Kurir (routes/web.php)
14 Jul, 18.20
Buka https://g.co/gemini/share/f8fefeb87f15
Buat direktori resources/views/courier_profile/ dan di dalamnya buat file show.blade.php.
Courier Profile Show View
14 Jul, 18.20
Buka https://g.co/gemini/share/1042eb65519f
Ringkasan Tahap Pengembangan Saat Ini:
Anda telah berhasil mengimplementasikan:
- Sistem Ulasan (Review):
- Controller ReviewController untuk membuat dan menyimpan ulasan produk/kurir.
- Rute untuk mengakses form ulasan.
- Tampilan form ulasan dengan input rating bintang interaktif menggunakan jQuery.
- Modifikasi tampilan detail pesanan pembeli (orders.show) untuk menampilkan link “Ulas Produk” atau “Ulas Kurir” hanya jika pesanan sudah Delivered dan belum diulas.
- Controller OrderController untuk pembeli melihat riwayat pesanan dan detailnya.
- Tampilan daftar dan detail pesanan pembeli.
- Controller CourierProfileController untuk menampilkan profil publik kurir.
- Tampilan profil kurir yang menampilkan rata-rata rating dan daftar ulasan.
Langkah Selanjutnya yang Perlu Anda Lakukan:
- Pastikan semua file Enum yang direferensikan oleh model Anda di app/Enums/ telah dibuat (terutama OrderStatusEnum dan PaymentStatusEnum yang sudah ada, serta TransactionTypeEnum dan ShipmentStatusEnum dari tahap sebelumnya).
- Uji coba:
- Login sebagai user (bukan vendor/kurir).
- Lakukan pesanan dan pastikan statusnya berubah menjadi Delivered (Anda mungkin perlu mengubahnya secara manual di DB atau melalui panel kurir jika sudah berfungsi penuh).
- Akses /my-orders untuk melihat riwayat pesanan Anda.
- Klik detail pesanan yang sudah Delivered. Anda akan melihat opsi untuk mengulas produk dan kurir.
- Coba berikan ulasan untuk produk dan kurir.
- Akses /products/{product_slug} untuk melihat ulasan produk yang Anda berikan.
- Akses /couriers/{courier_id} untuk melihat profil kurir dan ulasan yang Anda berikan.
Setelah Anda berhasil mengimplementasikan dan menguji coba bagian ini, kita bisa melanjutkan ke tahap berikutnya, yaitu Manajemen Voucher Diskon/Promo (Admin) dan Laporan.
Apakah ada pertanyaan atau bagian yang ingin Anda perjelas sebelum melanjutkan?
