Sumber cart
Customer memilih product dan variant di frontend. Cart disimpan di localStorage, sedangkan useCartStore menyediakan state aktif dan operasi refresh. Format item cart harus konsisten dengan komponen product, cart, dan checkout.
Tahapan checkout published
- Customer membuka
/checkout. - Frontend mengirim data checkout melalui action prepare/store.
- Controller memvalidasi product, variant, stock, customer, alamat, shipping, dan payment.
- Customer dicari atau dibuat.
- Item, subtotal, biaya shipping, discount, dan total disusun.
- Order atau record checkout disimpan sesuai flow.
- Untuk payment tertentu, controller meneruskan pembuatan checkout ke aplikasi utama.
- Customer diarahkan ke pending payment atau success page.
Route published utama:
| Method | Path | Peran |
|---|---|---|
| GET | /checkout | Halaman checkout |
| POST | /checkout/prepare | Menyiapkan data checkout |
| POST | /checkout/store | Menyimpan/memproses checkout |
| GET | /payment/pending/{orderId} | Halaman payment pending |
| GET | /success-page/{session_id}/{order_number}/{phone_number?} | Hasil transaksi |
Preview checkout
Preview memiliki route paralel di bawah /pratinjau dan memerlukan token. Flow preview memiliki payment simulator dan success page preview sehingga tidak boleh diperlakukan sebagai transaksi production.
Data lintas service
Order yang dibuat di storefront dapat dibaca dan diproses oleh dazoapp. Stock decrement, wallet, dan order observer bukan tanggung jawab eksklusif controller storefront.