Skip to main content
Migrate to Polaris

Version 2025-07 is the last API version to support React-based UI components. Later versions use web components, native UI elements with built-in accessibility, better performance, and consistent styling with Shopify's design system. Check out the migration guide to upgrade your extension.

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.

  • 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.

Note

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.

Support
Components (63)
APIs (13)

  • 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 applyTrackingConsentChange and useCustomerPrivacy() (React) or customerPrivacy (TS) rather than building custom consent tracking. These APIs integrate directly with Shopify's consent management system.
  • Respect the shouldShowBanner flag: When building consent banners, check shouldShowBanner from the Customer Privacy API to 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 accessibilityLabel attributes and ensure the form can be navigated with keyboard controls.

  • Single target per module: Each [[extensions.targeting]] entry in your TOML configuration maps one target to one module file.
  • Static target: This is a static extension target, meaning it renders on every customer account page. It can't be conditionally shown or hidden per page.
  • collect_buyer_consent capability required: Using applyTrackingConsentChange from the Customer Privacy API requires the collect_buyer_consent capability in your TOML configuration. Without this capability, consent changes will fail.
  • No block collapse: Returning null from this target collapses the extension rather than removing it from the page. The extension slot still exists in the DOM.

Was this page helpful?