Alur halaman utama
- Request masuk ke
DigitalStorePublishController::index. - Username dan host di-resolve oleh
StoreUsernameResolver. Storedicari berdasarkan username atau domain.- Store yang expired dikembalikan sebagai halaman 404.
DigitalStorePagepublished dicari berdasarkanstore_id,urlValue, dandisplayParts.showPage.- Section diurutkan berdasarkan
index. - Menu halaman published diambil berdasarkan
pageIndex. - Section produk di-refresh dari collection
productsdan hanya produkliveyang dipertahankan. - Data visual dan setting diambil dari
DigitalStorepublished. - Controller merender
Biolink/OpenSsrdengan 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
websiteatauproduct.