fullstack e-commerce-web-app

Marketplace Multi-Vendor dengan Laravel

Marketplace banyak penjual dengan katalog, keranjang, pembayaran Midtrans, toko per vendor, alur pesanan bergaya escrow, dan chat pembeli–vendor. Otomatisasi pencairan dana ke vendor belum selesai.

fullstack source only · e-commerce· escrow· laravel· midtrans
E-Commerce Escrow Laravel Midtrans Realtime Chat

Marketplace tempat banyak penjual berjualan di satu etalase, dengan dana pembeli ditahan sampai pesanan beres.

Yang sudah berjalan

Mesin status escrow-nya nyata dan terimplementasi di app/Models/Order.php — logika menahan dan melepas dana ada di sana. Begitu pula katalog, keranjang, integrasi pembayaran Midtrans, toko per vendor, panel admin, dan chat pembeli–vendor. Ada 42 controller dan 39 migrasi.

Yang belum, dan perlu saya sebutkan

README repo ini menuliskan "Automated vendor payout system". Kodenya tidak mendukung kalimat itu. Di app/Models/Order.php baris 543 ada:

// TODO: Queue job to actually transfer money to vendor

dengan pemanggilan dispatch(...) yang masih dikomentari. Pencairan dana yang sesungguhnya dikerjakan manual: admin melakukan transfer bank sendiri, memasukkan nomor referensinya ke sistem, lalu sistem menandainya selesai. Tidak ada integrasi pencairan otomatis.

Ada lima TODO lain di jalur yang berkaitan dengan uang — pemberitahuan pengembalian dana untuk vendor dan pembeli, serta pemberitahuan sengketa.

Test

Sepuluh berkas test yang ada seluruhnya bawaan Laravel Breeze: autentikasi, verifikasi email, reset kata sandi, profil. Tidak ada satu pun test untuk produk, keranjang, pesanan, pembayaran, vendor, escrow, pencairan, atau chat — padahal itulah inti aplikasinya.

Stack

PHP 8.2, Laravel 12, Inertia 2 dengan React 18, Sanctum, dan SDK Midtrans. CI di GitHub Actions menjalankan Pint, PHPStan, dan php artisan test terhadap MySQL 8 dan Redis.

Angka yang terukur

Commit 25
Rentang 8 Jan 2026 – 13 Feb 2026
Baris kode 16.331 di 145 berkas PHP
Controller 42
Migrasi 39
Test yang menutup fitur inti 0
started 8 Jan 2026 · updated 20 Aug 2026