NewPlatformDTC is in public betaPlatformDTC is in public beta — sign up and finish with a real store, no waitlist.Read the announcement →
← Changelog

v1.6

Primary domain and redirects

A store now has one primary domain, and every other domain either redirects to it or serves the storefront on its own address. See Domains.

Until now every domain attached to a store served the same storefront. A merchant with four domains had four copies of their store competing with each other in search, and no way to say which one was real.

Added

  • traffic_mode on every domain — primary, redirect or serve. Redirects are 301 by default, preserve the path and query, and are answered at the edge before any request reaches the storefront.
  • GET /domains, PATCH /domains/{id}, PATCH /domains/{id}/set-primary on the Agent Gateway, so an agent can read and change a store's routing under store:read / store:publish.
  • redirect_others on set-primary — fold every other attached domain into the new primary in one call, for a store that has drifted into several copies of itself.
  • A canonical URL on the storefront. The compiled storefront now emits <link rel="canonical"> and og:url built from the primary domain. Neither existed before: social previews and search engines were pointed at the platform subdomain even for merchants on their own domain.
  • The domains screen in Settings shows what each domain actually does — "Primary", "Redirects to acme.com", "Serving separately" — and flags when several domains are serving duplicate copies of the store.

Changed

  • Newly attached domains default to redirecting to the primary, matching what merchants expect. Domains attached before this release keep serving and are not touched — nothing started redirecting on its own. Change them when you want to.
  • A store's first verified domain is promoted to primary automatically, so links and emails stop pointing at the platform subdomain the moment a domain goes live.
  • www and its apex are always treated as one address: promoting either one makes the other redirect to it.

Fixed

  • Meta CAPI event_source_url was resolved from a database table that does not exist, silently falling back to a legacy field. Purchase and subscription-renewal events sent from the server could therefore report the wrong store address, which degrades Meta's event matching. Every URL the platform generates now comes from one resolver.