Baik, siap! Mari kita lanjutkan ke tahap pengembangan berikutnya: Manajemen Pengiriman untuk Kurir.
Pada tahap ini, kita akan fokus pada fungsionalitas yang memungkinkan kurir untuk melihat tugas pengiriman mereka, memperbarui status pengiriman, dan mengelola tarif pengiriman.
Tahap 13: Manajemen Pengiriman untuk Kurir
13.1. Dashboard Kurir
Kita sudah memiliki placeholder untuk dashboard kurir. Mari kita buat tampilannya lebih informatif, menampilkan pesanan yang perlu dikirim.
Buat file resources/views/courier/dashboard.blade.php:
Courier Dashboard View
14 Jul, 18.16
Buka https://g.co/gemini/share/30618ae191b0
13.2. Courier Controller (untuk Pengiriman)
Kita akan membuat controller untuk menangani logika pengiriman dari sisi kurir.
CourierShipmentController
14 Jul, 18.16
Buka https://g.co/gemini/share/dae971fc0b49
Bash
php artisan make:controller Courier/ShipmentController
13.3. Rute Pengiriman Kurir
Tambahkan rute ini di routes/web.php di dalam grup courier middleware:
Rute Pengiriman Kurir
14 Jul, 18.16
Buka https://g.co/gemini/share/206751b224b1
13.4. Tampilan Daftar Pengiriman Kurir
Buat direktori resources/views/courier/shipments/ dan di dalamnya buat file index.blade.php.
Courier Shipments Index View
14 Jul, 18.16
Buka https://g.co/gemini/share/f156196358a2
13.5. Tampilan Detail Pengiriman Kurir
Buat file resources/views/courier/shipments/show.blade.php.
Courier Shipments Show View
14 Jul, 18.16
Buka https://g.co/gemini/share/8e7bec9ff63b https://g.co/gemini/share/eb26c75cd316
13.6. Penambahan Enum untuk Status Pengiriman
Buat file app/Enums/ShipmentStatusEnum.php:
ShipmentStatusEnum
14 Jul, 18.16
Buka https://g.co/gemini/share/712cc107fbd1
Tahap 14: Pengaturan Tarif Pengiriman Kurir
Kita akan membuat controller dan tampilan agar kurir dapat mengatur tarif pengiriman mereka.
14.1. Courier Settings Controller
CourierSettingsController
14 Jul, 18.16
Buka https://g.co/gemini/share/e0991ae91ccd
Bash
php artisan make:controller Courier/CourierSettingsController
14.2. Tampilan Pengaturan Tarif Pengiriman Kurir
Buat file resources/views/courier/settings/edit.blade.php.
Courier Settings View
14 Jul, 18.16
Buka https://g.co/gemini/share/5fa0f3e0a9bf
Ringkasan Tahap Pengembangan Saat Ini:
Anda telah berhasil mengimplementasikan:
- Manajemen Pengiriman untuk Kurir:
- Dashboard kurir yang menampilkan tugas pengiriman.
- Controller Courier\ShipmentController untuk mengelola pengiriman.
- Tampilan daftar dan detail pengiriman untuk kurir.
- Fungsionalitas untuk kurir memperbarui status pengiriman (Picked Up, In Transit, Delivered, Failed Delivery) dengan validasi transisi status.
- Kemampuan untuk mengunggah bukti foto saat memperbarui status (disimpan di File Manager kurir).
- Pembaruan status pesanan di tabel orders menjadi Delivered ketika pengiriman berhasil.
- Penambahan Enum ShipmentStatusEnum.
- Pengaturan Tarif Pengiriman Kurir:
- Controller Courier\CourierSettingsController untuk mengelola pengaturan kurir.
- Tampilan form bagi kurir untuk mengatur tarif pengiriman per dusun (disimpan sebagai JSON).
Langkah Selanjutnya yang Perlu Anda Lakukan:
- Pastikan semua file Enum yang direferensikan oleh model Anda di app/Enums/ telah dibuat (terutama ShipmentStatusEnum).
- Uji coba:
- Pastikan ada user dengan role = ‘courier’ di database.
- Buat beberapa pesanan yang order_statusnya ready_to_ship atau shipped dan courier_idnya diisi dengan ID kurir yang Anda gunakan untuk testing.
- Login sebagai kurir, akses /courier/dashboard.
- Akses /courier/settings untuk mengatur tarif pengiriman.
- Akses /courier/shipments untuk melihat tugas pengiriman, lalu klik detail untuk memperbarui status dan mengunggah bukti foto.
- Periksa apakah status pesanan pembeli juga berubah setelah kurir menandai Delivered.
Setelah Anda berhasil mengimplementasikan dan menguji coba bagian ini, kita bisa melanjutkan ke tahap berikutnya, yaitu Manajemen Staff/Moderator Vendor atau Sistem Ulasan (Review).
Apakah ada pertanyaan atau bagian yang ingin Anda perjelas sebelum melanjutkan?
