Footer
The footer appears at the bottom of every customer account page, below the links to store policies. Use the footer to display persistent content that's visible across all pages, including Order index, Order status, Profile, Settings, and any full-page extensions.
This is a static extension target that renders on every customer account page and can't be conditionally shown or hidden per page. Returning null from this target collapses the extension rather than removing it from the page, so the extension slot still exists in the DOM.
Anchor to Use casesUse cases
- Cookie consent: Display a cookie consent banner that appears across all customer account pages, allowing customers to manage their tracking preferences.
- Global announcements: Show store-wide notices, such as holiday shipping deadlines or service updates, that apply to the entire customer account experience.
- Accessibility aids: Provide persistent accessibility tools or links that customers can access from any page.
- Legal compliance: Display required legal notices, privacy policy links, or regulatory disclosures that must be visible site-wide.
Use the static extension target below to extend the footer on all customer account pages with persistent, globally visible content.
Since this target renders on every page, it's well-suited for cross-cutting concerns like consent management. The examples demonstrate using the Customer Privacy API to manage cookie consent, as well as rendering static content in the footer.
To use the Customer Privacy API, you must enable the collect_buyer_consent capability in your TOML configuration file.
To use the Customer Privacy API, you must enable the collect_buyer_consent capability in your TOML configuration file.
customer-account.footer.render-after
Renders a static extension target below the footer on all customer account pages.
To prevent layout shifting, avoid dynamic data fetching and rendering in this target. If you need to render dynamic content, consider reserving space for your content while it is loading using spinner, skeleton paragraph, or stack.
Supported components
- Abbreviation
- Announcement
- Avatar
- Badge
- Banner
- Box
- Button
- Button group
- Checkbox
- Chip
- Choice list
- Clickable
- Clickable chip
- Clipboard item
- Consent checkbox
- Consent phone field
- Customer account action
- Date field
- Date picker
- Details
- Divider
- Drop zone
- Email field
- Form
- Grid
- Heading
- Icon
- Image
- Image group
- Link
- Map
- Menu
- Modal
- Money field
- Number field
- Ordered list
- Page
- Paragraph
- Password field
- Payment icon
- Phone field
- Popover
- Press button
- Product thumbnail
- Progress
- Qr code
- Query container
- Scroll box
- Section
- Select
- Sheet
- Skeleton paragraph
- Spinner
- Stack
- Switch
- Text
- Text area
- Text field
- Time
- Tooltip
- Unordered list
- Url field
Supported components
- Abbreviation
- Announcement
- Avatar
- Badge
- Banner
- Box
- Button
- Button group
- Checkbox
- Chip
- Choice list
- Clickable
- Clickable chip
- Clipboard item
- Consent checkbox
- Consent phone field
- Customer account action
- Date field
- Date picker
- Details
- Divider
- Drop zone
- Email field
- Form
- Grid
- Heading
- Icon
- Image
- Image group
- Link
- Map
- Menu
- Modal
- Money field
- Number field
- Ordered list
- Page
- Paragraph
- Password field
- Payment icon
- Phone field
- Popover
- Press button
- Product thumbnail
- Progress
- Qr code
- Query container
- Scroll box
- Section
- Select
- Sheet
- Skeleton paragraph
- Spinner
- Stack
- Switch
- Text
- Text area
- Text field
- Time
- Tooltip
- Unordered list
- Url field
Anchor to Best practicesBest practices
- Keep content lightweight: Since the footer renders on every customer account page, avoid heavy data fetching or complex rendering that could cause layout shifts. Use static content or reserve space with placeholder components while loading.
- Use the consent APIs for privacy banners: Use
shopify.customerPrivacyandshopify.applyTrackingConsentChangerather than building custom consent tracking. These APIs integrate directly with Shopify's consent management system. - Respect the
shouldShowBannerflag: When building consent banners, checkshopify.customerPrivacy.value.shouldShowBannerto determine whether a banner should be shown. This flag accounts for whether consent has already been collected. - Provide accessible overlays: When using sheet or modal components for consent forms, include
accessibilityLabelattributes and ensure the form can be navigated with keyboard controls.