Toko Digital adalah aplikasi Laravel 10 dengan frontend Vue 3 + Inertia.js. Laravel menentukan store, mengambil data MongoDB, menjalankan validasi transaksi, lalu mengirim props ke halaman Inertia.
Lapisan runtime
| Lapisan | Lokasi | Tanggung jawab |
|---|---|---|
| HTTP route | routes/web.php, routes/api.php | Published store, preview, checkout, token, shipping, dan payment proxy |
| Controller | app/Http/Controllers/ | Resolve store, query data, validasi request, dan render Inertia |
| Model | app/Models/ | Persistence MongoDB/MySQL dan relasi domain |
| Trait/middleware | app/Http/Traits/, app/Http/Middleware/ | Resolusi username, token, reserved path, dan request context |
| Inertia client | resources/js/app.js | Resolver halaman, Pinia, Vuex, plugin UI, dan client hydration |
| Inertia SSR | resources/js/ssr.js | Resolver server-side untuk halaman yang mendukung SSR |
| Asset build | vite.config.js | Bundle client dan SSR |
Published dan preview
Published dan preview sengaja dipisahkan:
DigitalStorePublishControllermembacatype = published.DigitalStoreControllermembacatype = draftdan memerlukan token preview.- Published storefront dirender ke
Biolink/OpenSsr. - Preview storefront dirender ke
Biolink/Pratinjau.
Detail alurnya ada di Publish dan Preview.
Batas service
Toko Digital memiliki UI storefront dan sebagian proses transaksi, tetapi menggunakan data serta endpoint dari ekosistem Dazo. Payment checkout dan pemeriksaan status pembayaran meneruskan request ke aplikasi utama. Order observer, stock, wallet, dan digital product dapat diproses di dazoapp.
Request flow tingkat tinggi
Browser
│
├── GET storefront / product / checkout
│ │
│ └── Laravel route
│ ├── resolve username atau host
│ ├── query Store + DigitalStore + DigitalStorePage + Product
│ └── Inertia props → Vue page → optional SSR
│
└── POST checkout / API
├── validasi cart, customer, shipping, payment
├── simpan atau siapkan order
└── panggil service Dazo bila membutuhkan payment atau status eksternal