Obtain a checkout profile ID by querying `checkoutProfiles { id name }` in the Admin GraphQL API; you need this ID as the required argument for the upsert
Call `checkoutBrandingUpsert(checkoutProfileId: $profileId, checkoutBranding: $input)` with a `CheckoutBrandingInput` object; start with the `designSystem` block to set global colors (primary, secondary, error), typography (font families, sizes), and corner radii that cascade throughout checkout
Customize individual checkout sections using the `customizations` block within the input — override header, footer, order summary, form controls, and buttons independently
To set custom fonts, first upload font files using `stagedUploadsCreate` and then reference the resulting CDN URLs in the `fontFace` configuration within `designSystem.typography`
Read back the applied branding with the `checkoutBranding(checkoutProfileId: $profileId)` query to verify the saved state matches your intent
Publish your checkout profile if it is a draft, or ensure the upserted profile is the one assigned to your online store channel
Known gotchas
checkoutBrandingUpsert requires the store to be on a Shopify Plus plan or a development store; it will return an access error on non-Plus plans
The mutation requires `write_checkout_branding_settings` access scope (distinct from generic write_themes); ensure this scope is declared in your app's configuration
Changes to the draft checkout profile do not immediately affect live checkout — you must publish the profile, or test via the checkout profile preview URL
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp