CHECKOUT-9513: Add option to pass initial state during initialisation #2934
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.
What/Why?
This PR introduces the ability to pre-populate the Checkout SDK with initial data during service creation, eliminating the need for client-side API calls on page load. Currently, the checkout microapp fetches all data client-side after the page loads, which is suboptimal because these requests can only be made after assets are loaded and parsed, and the page often already has this same data available.
Rollout/Rollback
Revert or turn off
CHECKOUT-9388.initial_state_for_checkout_app
experimentTesting
Before
This video shows that, before this change, the page required AJAX requests on initial load.
Screen.Recording.2025-09-29.at.1.20.44.pm.mov
This screenshot shows that the LCP is 2.3s before this change.
After
This video shows that, after this change, the page no longer makes AJAX requests during the initial load.
Screen.Recording.2025-09-29.at.1.09.04.pm.mov
This screenshot shows that the LCP is 1.2s after this change.