LTRAC-2014: feat(cli) - Offer to align the channel's URLs after deploy - #3247
Merged
jorgemoya merged 12 commits intoSep 25, 2026
Conversation
A deploy without --update-site-url or --update-checkout-url left the channel on its mybigcommerce.com storefront URL and the default channel's checkout, and said nothing, so the address bar changed domain at payment unless the merchant knew the flags. After an interactive deploy, if the channel the build targets doesn't already point at the project, ask whether to update its site URL, with that channel and the new hostname pre-selected. If the site then sits on an auto-generated hostname and checkout is elsewhere, ask whether to move checkout to c.<hostname>, using the same write-then-wait flow as the flag. Declining that prints the cross-domain warning instead. Declining the site URL is saved per channel in project.json so later deploys stay quiet. Checkout declines aren't saved, since the site URL prompt that leads to it doesn't come back. Explicit flags, channels update, and deploys without a TTY behave as before. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… one The post-deploy site URL offer opened the channel picker with the deployed channel pre-selected. The deploy already knows which channel the build targets, so asking again only invited pointing a different channel at this storefront. Pass the channel through; only the hostname is prompted for. That leaves the picker's default-channel option unused, so it goes. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…annel The post-deploy offer took BIGCOMMERCE_CHANNEL_ID from the env files first and fell back to deployment secrets. At runtime it's the other way round: OpenNext copies the worker's bindings onto process.env first and only fills unset keys from the env files baked in at build time. So with both set, the offer could name a different channel from the one the storefront serves. Check the secrets (project.json env and --secret) first. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
| Name | Type |
|---|---|
| @bigcommerce/catalyst | Patch |
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Bundle Size ReportComparing against baseline from No bundle size changes detected. |
…for it After agreeing to point the channel at the deployment, the merchant still got a hostname picker with the new deployment pre-selected. The deploy already reports the hostname it went live on, so pass it through. The picker now only shows if the deploy status carried no hostname. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Unlighthouse Performance Comparison — VercelComparing PR preview deployment Unlighthouse scores vs production Unlighthouse scores. Summary ScoreAggregate score across all categories as reported by Unlighthouse.
Category Scores
Core Web Vitals
|
…fter channels update The checkout offer only existed as the second step of the site URL offer, and deploys skip that once the site points at the project. So checkout was never offered again after one decline, never offered at all when the site URL was set some other way, and a checkout later dropped by a site URL change went unnoticed. Check the two separately on every deploy. The checkout offer moves into a shared offerManagedCheckoutUrl: on the managed zone, when checkout is on another domain and wasn't customized there by the merchant, offer the `c.` hostname. A decline is now saved (declinedCheckoutUrlChannels), since re-checking every deploy would otherwise ask every time. channels update makes the same offer after it updates a site URL, because that update deletes the channel's checkout URL. As an explicit command it asks despite an earlier decline, and falls back to the cross-domain warning when there's nothing to offer. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The site and checkout offers after a deploy defaulted to Yes, so pressing Enter past an unexpected question rewrote a live channel's URLs. Nothing asked for them, so default to No. channels update keeps Yes for its checkout follow-up, since the site URL change there was requested. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The post-deploy offers and the channels update checkout follow-up only checked for a TTY. Some CI setups allocate a pseudo-terminal (docker run -t, script), where a prompt waits for input nobody gives and the job hangs. Also skip when CI is set, which CI systems define. Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
LTRAC-2014's post-deploy offers ship in the same PR as the managed-zone checkout flow, so describe them in one changelog entry. Refs LTRAC-1962, LTRAC-2014 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
jorgemoya
merged commit Sep 25, 2026
48d7a58
into
jorgemoya/ltrac-1962-cli-set-the-channels-checkout-url-to-the-provisioned
jorgemoya
deleted the
jorgemoya/ltrac-2014-cli-after-deploy-offer-to-align-the-channels-site-and
branch
September 25, 2026 16:17
Contributor
Author
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: LTRAC-2014
What/Why?
A plain
catalyst deployleft the channel on itsmybigcommerce.comURL and the default channel's checkout, and said nothing. After an interactive deploy it now asks two questions. Each is checked separately on every deploy:c.<hostname>, using LTRAC-1962: feat(cli) - Put checkout on the storefront's domain for native hosting #3243's flow.Worth a look:
.bigcommerce/project.json(declinedSiteUrlChannels,declinedCheckoutUrlChannels), and that offer isn't made again.BIGCOMMERCE_CHANNEL_ID, with deployment secrets first, matching OpenNext's runtime order.channels updatemakes the same checkout offer after a site URL change, because that change deletes the checkout URL.CIset, or when either--update-*flag is passed.Testing
deploy-channel-urls,channelsanddeployspecs pass, including withCI=true;tscandeslintare clean. Run end to end on integration: two confirmations, then… is serving checkout.Migration
None.
🤖 Generated with Claude Code