Skip to content

LTRAC-1962: feat(cli) - Put checkout on the storefront's domain for native hosting - #3248

Open
jorgemoya wants to merge 1 commit into
canaryfrom
jorgemoya/ltrac-1962-cli-set-the-channels-checkout-url-to-the-provisioned
Open

jorgemoya wants to merge 1 commit into
canaryfrom
jorgemoya/ltrac-1962-cli-set-the-channels-checkout-url-to-the-provisioned

Conversation

@jorgemoya

Copy link
Copy Markdown
Contributor

Linear: LTRAC-1962, LTRAC-2014

Re-lands #3243 on canary. That PR merged into the LTRAC-1946 branch, which was then force-pushed without it, so its change never reached canary. Same code as #3243's final commit (the squash 57eeab454 cherry-picked onto canary after #3240).

What/Why?

A native-hosted channel stayed on its mybigcommerce.com URL, with checkout on the default channel's domain. For a storefront on the managed zone, this puts checkout on https://c.<project>.<zone>:

  • deploy --update-checkout-url sets it without asking, with or without --update-site-url.
  • A plain interactive deploy asks two questions, each checked separately every time: point the channel at the deployment, then move checkout to c.. Both default to No, and a "no" is saved per channel in .bigcommerce/project.json.
  • channels update offers the checkout URL after a site URL change, because that change deletes it.

It writes first, then waits. The checkout-url PUT is what provisions the hostname: sites-service passes it to bcserver ADD_DOMAIN, which creates the DNS record, the custom hostname and the certificate, in about 90s. The CLI waits up to 6 minutes for TLS, and DELETEs the URL if no certificate issues.

Worth a look:

  • Managed zone only. A merchant domain still prompts.
  • An existing custom checkout URL is left alone.
  • An unchanged site URL isn't re-sent. sites-service deletes the checkout URL on every site URL update (WorkWithDomains.chooseDomainsForUpdate).
  • Channel and hostname come from the deploy, never a picker. The channel is BIGCOMMERCE_CHANNEL_ID, with deployment secrets first, as OpenNext resolves it at runtime.
  • No prompts without a TTY or with CI set.

Testing

tsc and eslint are clean; the CLI lib, channels and deploy specs pass (471 tests). Verified in production: two confirmations, then … is serving checkout., with c.<project> reaching BigCommerce's origin on a valid certificate.

Migration

None.

🤖 Generated with Claude Code

…ative hosting

Setting a channel's checkout URL to c.<project>.<zone> provisions that
hostname (DNS, Cloudflare custom hostname and certificate), so the CLI writes
it first and then waits for the certificate, removing the URL again if none
issues. An interactive deploy now offers to point the channel's site URL at
the deployment and to move checkout onto the c. hostname; both default to No,
declines are saved per channel in project.json, and nothing is asked without
a TTY or with CI set. `channels update` offers the checkout move after a site
URL change.

Previously landed as #3243 on the LTRAC-1946 branch, which was then
force-pushed without it; this reapplies the same change on canary.

Refs LTRAC-1962, LTRAC-2014
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ff58280

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@bigcommerce/catalyst Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@jorgemoya
jorgemoya requested a review from a team as a code owner September 28, 2026 21:49
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
catalyst Ready Ready Preview Sep 28, 2026 9:49pm UTC

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

Bundle Size Report

Comparing against baseline from 55fb9bc (2026-09-28).

No bundle size changes detected.

@jorgemoya
jorgemoya added this pull request to the merge queue Sep 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Unlighthouse Performance Comparison — Vercel

Comparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores.

Summary Score

Aggregate score across all categories as reported by Unlighthouse.

Prod Desktop Prod Mobile Preview Desktop Preview Mobile
Score 92 95 92 96

Category Scores

Category Prod Desktop Prod Mobile Preview Desktop Preview Mobile
Performance 76 87 78 95
Accessibility 95 92 95 92
Best Practices 100 100 100 100
SEO 100 100 100 100

Core Web Vitals

Metric Prod Desktop Prod Mobile Preview Desktop Preview Mobile
LCP 3.8 s 4.1 s 3.5 s 2.9 s
CLS 0 0 0 0
FCP 1.2 s 1.2 s 1.2 s 1.2 s
TBT 0 ms 0 ms 0 ms 0 ms
Max Potential FID 50 ms 50 ms 50 ms 40 ms
Time to Interactive 3.8 s 4.1 s 3.5 s 2.9 s

Full Unlighthouse report →

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 28, 2026
@jorgemoya
jorgemoya added this pull request to the merge queue Sep 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 28, 2026

This branch was successfully deployed

1 active deployment
Preview — ff58280a Deployed Sep 28, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants