D
Deep Dives

Checkout Flow

Alur checkout published dan preview dari cart browser sampai order, shipping, payment, dan halaman hasil.

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

  1. Customer membuka /checkout.
  2. Frontend mengirim data checkout melalui action prepare/store.
  3. Controller memvalidasi product, variant, stock, customer, alamat, shipping, dan payment.
  4. Customer dicari atau dibuat.
  5. Item, subtotal, biaya shipping, discount, dan total disusun.
  6. Order atau record checkout disimpan sesuai flow.
  7. Untuk payment tertentu, controller meneruskan pembuatan checkout ke aplikasi utama.
  8. Customer diarahkan ke pending payment atau success page.

Route published utama:

MethodPathPeran
GET/checkoutHalaman checkout
POST/checkout/prepareMenyiapkan data checkout
POST/checkout/storeMenyimpan/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.