D
Deep Dives

Storefront Flow

Alur request storefront published dari resolusi toko sampai rendering halaman Inertia dan metadata SEO.

Alur halaman utama

  1. Request masuk ke DigitalStorePublishController::index.
  2. Username dan host di-resolve oleh StoreUsernameResolver.
  3. Store dicari berdasarkan username atau domain.
  4. Store yang expired dikembalikan sebagai halaman 404.
  5. DigitalStorePage published dicari berdasarkan store_id, urlValue, dan displayParts.showPage.
  6. Section diurutkan berdasarkan index.
  7. Menu halaman published diambil berdasarkan pageIndex.
  8. Section produk di-refresh dari collection products dan hanya produk live yang dipertahankan.
  9. Data visual dan setting diambil dari DigitalStore published.
  10. Controller merender Biolink/OpenSsr dengan props storefront, CDN, SEO, dan Open Graph.

Freshness produk

Page builder menyimpan referensi produk dalam array section. Saat halaman dibuka, controller tidak mempercayai snapshot itu sepenuhnya. Ia mengambil ulang product berdasarkan ID, memfilter product_status = live, lalu menghapus produk yang tidak ditemukan atau tidak live.

Konsekuensinya:

  • perubahan status produk terlihat tanpa publish ulang page;
  • produk yang dihapus atau tidak live tidak ditampilkan;
  • section dapat menjadi kosong bila seluruh referensinya tidak valid.

Product detail

Route /product/{id_product} pada root dan /product/{slug} pada path-based store dirender sebagai Biolink/ProductDetail. Resolver slug menggunakan format gabungan URL product dan product code, lalu membatasi pencarian pada store yang sedang aktif.

Metadata

Controller menghasilkan:

  • SEO title dan description dari DigitalStore.setting.seo;
  • Open Graph title dan description dari page/store;
  • gambar absolut melalui CDN atau URL image yang sudah absolut;
  • URL request dan tipe website atau product.