---
gid: 6f82c131-ab49-4757-b7cc-76f64246ae92
title: Customize the header that displays at checkout
description: Learn how to customize the checkout header with checkout UI extensions and the GraphQL Admin API's checkout branding types.
---
import CheckoutUiRequirements from 'app/views/partials/apps/checkout/ui-extensions/requirements.mdx'
import CheckoutUiCreate from 'app/views/partials/apps/checkout/ui-extensions/create.mdx'
import CheckoutQueryPublishedCheckoutProfile from 'app/views/partials/apps/checkout/ui-extensions/query-published-checkout-profile.mdx'
import CheckoutUiPreview from 'app/views/partials/apps/checkout/ui-extensions/preview.mdx'
import Deploy from 'app/views/partials/extensions/deploy.mdx'
import CheckoutUiReference from 'app/views/partials/apps/checkout/ui-extensions/reference.mdx'
You can customize the checkout header for custom navigation experiences, for example by hiding the default back-to-cart link and adding custom breadcrumbs.
This guide explains how to customize the header using Checkout Extensibility. You'll use checkout UI extensions and the GraphQL Admin API's [checkout branding fields](/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert) to render a customized header on the **Checkout** page.
Learn from an end-to-end example in this guide, and then explore the API documentation to suit your customization needs.
Checkout UI extensions and styling customizations are available only to [Shopify Plus](https://www.shopify.com/plus) merchants.
## What you'll learn
In this tutorial, you'll learn how to do the following tasks:
- Hide the default back-to-cart link and buyer journey breadcrumbs
- Configure an extension for a single target to render in the header
- Add custom breadcrumbs to the header
- Deploy your extension code to Shopify
You've either installed the GraphiQL app on your store or [created an app](/docs/apps/build/scaffold-app), with the `read_checkout_branding_settings` and `write_checkout_branding_settings` [access scopes](/docs/api/usage/access-scopes).
### Hide the default back-to-cart icon and buyer journey breadcrumbs
Make a request to the `checkoutBrandingUpsert` mutation's [`CheckoutBrandingCustomizationsInput`](/docs/api/admin-graphql/latest/input-objects/CheckoutBrandingCustomizationsInput) object. You'll hide the default back-to-cart icon and the buyer journey breadcrumbs. In a later step, you'll replace these default elements with your own customized breadcrumbs.
```graphql title="GraphQL mutation"
mutation updateCheckoutBranding($checkoutBrandingInput: CheckoutBrandingInput!, $checkoutProfileId:ID!) {
checkoutBrandingUpsert(checkoutBrandingInput:$checkoutBrandingInput, checkoutProfileId:$checkoutProfileId) {
checkoutBranding {
customizations {
buyerJourney {
visibility
}
cartLink {
visibility
}
}
}
}
}
```
```json title="Query variables"
{
"checkoutProfileId": "gid://shopify/CheckoutProfile/YOUR_CHECKOUT_PROFILE_ID_HERE",
"checkoutBrandingInput": {
"customizations": {
"buyerJourney": {
"visibility": "HIDDEN"
},
"cartLink": {
"visibility": "HIDDEN"
}
}
}
}
```
```json title="JSON response"
{
"data": {
"checkoutBrandingUpsert": {
"checkoutBranding": {
"customizations": {
"buyerJourney": {
"visibility": "HIDDEN"
},
"cartLink": {
"visibility": "HIDDEN"
}
}
}
}
}
}
```
### Create a checkout UI extension
To create a checkout UI extension, use Shopify CLI, which generates starter code for building your extension.
### Set up the target for your extension
[Targets](/docs/api/checkout-extensions/checkout#extension-targets) control where your extension renders in the checkout flow.
This example uses [purchase.checkout.header.render-after](/docs/api/checkout-ui-extensions/latest/targets/header/purchase-checkout-header-render-after).
You'll import and reference `Extension.jsx``Extension.js`, which you'll create in a [later step](#render-the-custom-breadcrumb).
There is a corresponding [purchase.thank-you.header.render-after](/docs/api/checkout-ui-extensions/latest/targets/header/purchase-thank-you-header-render-after) target on the **Thank you** page. While this breadcrumbs example only renders in the **Checkout**, other use cases could benefit from targeting both **Checkout** and **Thank you** pages.
#### Export the target from your Checkout script file
In your `Checkout.jsx``Checkout.js` file, set the entrypoint for the checkout extension on the checkout page, and then export it so that you can reference it in your configuration.
---
[purchase.checkout.header.render-after](/docs/api/checkout-ui-extensions/latest/targets/header/purchase-checkout-header-render-after)
## Render the custom breadcrumb
In this step you'll populate the header with custom breadcrumb navigation.
#### Create the Extension.jsxExtension.js file
Create a new file in your extension's `src` directory named `Extension.jsx``Extension.js`.
This will render the breadcrumbs in the header for the target that you [previously set up](#set-up-the-target-for-your-extension) in `Checkout.jsx``Checkout.js`
#### Add custom translations for strings
Add custom translations for your "cart" string.
To better support buyers in different locales, you should avoid using hard-coded strings in your extensions. The translated `cart` string is used in line 20 of `Extension.jsx`15 of `Extension.js`.
---
[Localization](/docs/apps/build/checkout/localized-checkout-ui-extensions)
#### Get the appropriate state to populate your breadcrumbs
As the buyer steps through a checkout, their `activeStep` will update to reflect where they are currently in the buyer journey. You may want to provide different treatments for visited `steps`, the `activeStep`, and `steps` in the future.
---
`steps` can vary between store setups, such as stores with one-page versus three-page checkout. They can also vary between buyers, such as those purchasing digital-only goods where a "Shipping" step may be omitted.
[useBuyerJourneySteps](/docs/api/checkout-ui-extensions/latest/react-hooks/buyer-journey#useBuyerJourneySteps)
[useBuyerJourneyActiveStep](/docs/api/checkout-ui-extensions/latest/react-hooks/buyer-journey#useBuyerJourneyActiveStep)
#### Add custom breadcrumbs
Render custom breadcrumbs using checkout UI components and the `steps` and `activeStep` returned from the buyer journey hooks.
---
[Divider](/docs/api/checkout-ui-extensions/latest/components/structure/divider)
[InlineLayout](/docs/api/checkout-ui-extensions/latest/components/structure/inlinelayout)
[Link](/docs/api/checkout-ui-extensions/latest/components/actions/link)
[Text](/docs/api/checkout-ui-extensions/latest/components/titles-and-text/text)
[View](/docs/api/checkout-ui-extensions/latest/components/structure/view)
## Tutorial complete!
Nice work - what you just built could be used by Shopify merchants around the world!
Keep the momentum going with these related tutorials and resources.
### Next steps
#### Localize your extension
Learn how to localize the text and number formats in your extension.
#### Explore the checkout UI extension component reference
Learn about all the components you can use in your checkout UI extensions.
#### Explore the checkout branding API
Learn about other properties that are exposed in the GraphQL Admin API's checkout branding types.