The hosted storefront is a first-party front end over the same Live worker: the channel is resolved from the hostname, the key is held by Live, and the flow is identical to a buyer on your own site.
Every sales channel can have a hosted storefront, served at
<slug>.checkout.ticketlayer.com or on a custom domain pointed at the same place.
It is the same code that renders the embedded checkout on your own site, and
it is a front end over the same Live worker, so the sequence is
the one on A buyer on your website with a
different first hop.
The credential. There is no key in the page. The storefront resolves
which channel a request is for from Host, and Live holds that
channel's publishable key (tlpk_, low trust) for the session. A signed-in
buyer's customer token stays in the Live session; it escalates the
session, it does not authenticate it.
The storefront asks Live for GET /sales/listings. Live forwards under the publishable key of the channel the hostname resolved to.
tlpk_, held by Live; the channel from Host
Make an order
POST /sales/carts, items, POST /sales/carts/{id}/checkout, then POST /sales/orders/{id}/payments, all through Live under the session.
tlpk_, held by Live
Authenticate a customer
The storefront's account pages use the magic link: POST /sales/customer-auth/magic-link, then POST /sales/customer-tokens with the code. The customer token lives in the Live session.
tlpk_ authenticates; the customer token is carried on top
Read the order back
The confirmation page reads GET /sales/orders/{id} with the order access token the session holds; the account page reads GET /sales/my-orders under the customer token.
The channel comes from the hostname, not from a key on the page. A
custom domain is a CNAME registered on the channel so the storefront can
resolve it. That is the only place in the platform where the channel is
resolved from Host; every other caller carries it in the credential or
in X-Ticketlayer-Channel.
Everything else is the website flow. The theme on the channel is what
the storefront wears, and it is what the embedded elements on your own
site wear too, so a buyer who starts on your page and finishes in the
hosted checkout sees one brand.
The embedded checkout on your site is this storefront. The cart on
your page hands its Live session to /embed/checkout in an iframe, and the
iframe sees the same cart because it is the same session.
Set up a box office is the how-to for giving
a channel a storefront domain and a theme.