Serve the checkout on your own domain
One CNAME puts the checkout on checkout.yourstore.com, with a certificate issued for you. Why it has to be a subdomain, what to add at your DNS provider, and what the domain serves.
Why a subdomain of your storefront
Without a domain of its own, a store's checkout runs on the platform address. With one, buyers stay on your brand from cart to receipt, and one more thing works: the attribution cookie. The theme snippet writes _wc_attr on your storefront's root domain (.yourstore.com), so a checkout on checkout.yourstore.com can read the click ids captured on the storefront and attach them to the order. A checkout on an unrelated domain could not.
That is why the domain must be a subdomain of the storefront's root domain. Domains warns when it is not, and refuses myshopify.com hosts (Shopify owns those) and platform hosts.
Pick the name
Open the store's Domains page and choose Use your own domain. Enter the domain customers buy from (yourstore.com) and pick the first label: checkout, pay or secure. The page shows the composed host before you save; checkout.yourstore.com is the convention buyers recognise.
Saving normalises the value (lowercase, no scheme or path) and adds it to Sable's Vercel project. Nothing else is touched: Sable never logs into your DNS provider.
Add the DNS record
Once saved, a table lists exactly the records Vercel asks for. Nothing in it is invented: the values come from Vercel's API for this project.
| Record | When it appears | What to enter |
|---|---|---|
| CNAME | Always, for a subdomain | Name: the first label (checkout). Value: the target shown on the page. Some providers want the full host name in the Name field; use checkout.yourstore.com then. |
| A | Only for an apex domain | An apex cannot carry a CNAME, so Vercel lists IP addresses instead. Sable expects a subdomain, so you will normally never see this. |
TXT _vercel | Only when Vercel asks for ownership proof | Add it exactly as shown. It is needed once and can stay. |
- Cloudflare: keep the record DNS only (grey cloud). A proxied record hides the host from Vercel's certificate check.
- GoDaddy: it adds the trailing dot to the target itself; either form is accepted.
- Check from a terminal with
dig +short CNAME checkout.yourstore.com. It must print the target from the table.
Wait, then check
A new record is usually visible within minutes, occasionally an hour, and up to 48 hours for a changed record with an old TTL. Press Check again on Domains to re-read the status:
| Status | Meaning |
|---|---|
| Not connected | No domain saved, or the domain is not on the Vercel project yet. |
| Waiting for DNS | The record has not resolved yet. Nothing to do but wait and check again. |
| Needs verification | Vercel wants the _vercel TXT record before it will serve the domain. |
| Connected | DNS is correct. Vercel serves the domain and manages its certificate. |
| Misconfigured | The domain resolves somewhere else. Compare the record with the table. |
| Check failed | Vercel's API could not be reached. The last known status stands; try again later. |
The certificate is issued by Vercel the moment the record resolves. There is nothing to upload or renew.
What the domain serves
A checkout domain is deliberately narrow. On it Sable answers only:
/c/<token>: the checkout./thank-you/<order>: the receipt./s/<store key>: the theme snippet./api/handoffand/api/checkout/*: the calls the snippet and the checkout make.
The dashboard, the webhook endpoints and every other API path answer 404 on it, so a checkout domain never exposes the dashboard. Any other path, the root included, sends the visitor to your storefront. Webhook URLs stay on the platform host, so nothing you registered with Whop or Shopify changes.
Every link a shopper receives is built from the checkout domain once it is set: the hand-off URL the snippet gets, the redirect after payment and the thank-you link.
After it connects
- Whop dashboard → Settings → Checkout: add the same domain as the payment domain, so Apple Pay works in the embedded checkout.
- Connections shows the script tag with the new host. The tag you already pasted keeps working, because the script it loads always sends shoppers to the current checkout domain, but copying the new one keeps the theme consistent.
- To go back, choose Use our address on Domains. The store's checkout runs on the platform address again; the domain stays on the Vercel project until it is removed there.
Questions people ask
Can the checkout run on my apex domain (yourstore.com)?
No, and you would not want it to: the apex is your storefront. The domain form composes a subdomain, and validation requires one.
Do I need my own Vercel account?
No. The domain is added to Sable's Vercel project through the API; you only create the DNS record at your registrar.
Does the checkout still work while DNS propagates?
Not at the new host. Clicks fail open to Shopify's own checkout until the record resolves, then Sable's checkout takes over without another change.
What about www?
Storefront origins accept both https://yourstore.com and https://www.yourstore.com; list every origin shoppers use. The checkout domain itself is a single host.
Set it up on your own store
Connect Shopify, connect Whop, add one script tag. If it is not for you, removing the tag puts Shopify's checkout back.
Read next
Connect Shopify and Whop to Sable
A custom app for the store, an API key for the money, one webhook so payments become orders, and one script tag in the theme. Every step lives in the dashboard.
Google Ads conversions, uploaded from the server
Checkout has moved off Shopify, so Sable reports purchases to Google Ads itself: click ids captured in a first-party cookie, conversions uploaded through the Data Manager API, de-duplicated with the thank-you page tag.