D
Engineering

Store Resolution

Cara Toko Digital menentukan toko dari route username, query lokal, subdomain, dan custom domain.

Store resolution menentukan data toko yang digunakan oleh seluruh published dan preview storefront. Logic utamanya berada di trait StoreUsernameResolver dan middleware ResolveStoreUsername.

Prioritas resolusi

PrioritasSumberKondisi
1Route {username}Path-based store, misalnya domain.test/<username>
2Query ?username=Simulasi subdomain pada local/development
3SubdomainProduction pada domain default yang dikenal
4Custom domainProduction, 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

text
https://<host>/<username>
https://<username>.<default-domain>
https://<custom-domain>

Pada local/development, gunakan:

text
http://localhost:8000/?username=<store-username>

Reserved path

Middleware menolak path yang bentrok dengan route aplikasi. Reserved path yang terlihat di source meliputi:

text
inv, pixel, pratinjau, wa, form, cart, checkout, product,
products, success-page, download, api, notfound, accessdenied

Penambahan 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.