Store resolution menentukan data toko yang digunakan oleh seluruh published dan preview storefront. Logic utamanya berada di trait StoreUsernameResolver dan middleware ResolveStoreUsername.
Prioritas resolusi
| Prioritas | Sumber | Kondisi |
|---|---|---|
| 1 | Route {username} | Path-based store, misalnya domain.test/<username> |
| 2 | Query ?username= | Simulasi subdomain pada local/development |
| 3 | Subdomain | Production pada domain default yang dikenal |
| 4 | Custom domain | Production, dicari dari DigitalStore.setting.site.domain |
Setelah username ditemukan, controller mencari Store berdasarkan username. Jika username tidak ditemukan, pencarian fallback menggunakan host/domain.
Bentuk URL
https://<host>/<username>
https://<username>.<default-domain>
https://<custom-domain>Pada local/development, gunakan:
http://localhost:8000/?username=<store-username>Reserved path
Middleware menolak path yang bentrok dengan route aplikasi. Reserved path yang terlihat di source meliputi:
inv, pixel, pratinjau, wa, form, cart, checkout, product,
products, success-page, download, api, notfound, accessdeniedPenambahan route publik harus mempertimbangkan daftar ini dan urutan route catch-all.
Host dan CDN
Environment production menggunakan host request untuk membedakan subdomain dan custom domain. URL CDN juga dibedakan berdasarkan environment:
- Production: path image production.
- Local/development: path image development.