Shopify Customer Accounts: Extensions, Legacy Status, Migration
Shopify customer accounts vs legacy accounts, the status of the legacy deprecation, what customer account UI extensions can add, and what to check before you upgrade.
In this guide
If your store still uses the old login and register pages built from theme Liquid templates, you are on legacy customer accounts, and Shopify has deprecated them. The replacement, now simply called customer accounts, works differently: customers sign in with a one-time code, the pages are hosted by Shopify, and you customize them with apps instead of theme code.
This guide explains the two versions, where the deprecation stands as of October 2026, what customer account UI extensions can add, and what to check before and after you upgrade.
Two versions of customer accounts
| Legacy customer accounts | Customer accounts (current) | |
|---|---|---|
| Sign in | Email and password | Email and a one-time 6-digit code by default; Shop sign-in, Google and Facebook are options |
| Pages built with | Theme Liquid templates under templates/customers |
Shopify-hosted pages, edited in the checkout and accounts editor |
| Customization | Theme code | Apps and customer account UI extensions, plus branding settings |
| Built-in features | What your theme implements | Store credit, self-serve returns, B2B and more, per Shopify’s changelog |
| Status | Deprecated | Where all new features ship |
Per the help center, stores on Shopify Plus can also connect their own identity provider, which replaces the default sign-in experience.
Where the legacy deprecation stands
Shopify’s changelog entry of February 26, 2026 says:
- Legacy customer accounts are no longer available to new stores, or to existing stores not already using them.
- Shopify will stop feature updates and technical support for the older version.
- A final sunset date will be announced later in 2026.
At the time of writing, we could not find an announced sunset date on Shopify’s changelog or help center, so check the changelog before you plan around one. The developer announcement adds that the legacy Liquid templates will eventually be locked from editing and then removed.
For apps and themes, the developer changelog is direct:
- Apps that rely on legacy Liquid account pages won’t work for merchants on the current version; they should use customer account UI extensions.
- Theme developers should remove legacy account Liquid files. A store on legacy accounts that switches to a theme without them is upgraded to the current customer accounts automatically.
- Custom storefronts should use the Customer Account API for customer-scoped data instead of Storefront API customer mutations.
Shopify’s customer accounts developer guide puts it in one line: all merchants must upgrade to the latest version of customer accounts.
What customer account UI extensions can add
Customer account UI extensions are app components placed on the Order index, Order status and Profile pages, or added as pages of their own. Shopify notes they are only supported on the current version of customer accounts. From the targets reference:
| Page | Targets |
|---|---|
| Order index | customer-account.order-index.block.render, customer-account.order-index.announcement.render |
| Order status | customer-account.order-status.block.render, ...announcement.render, ...cart-line-item.render-after, ...cart-line-list.render-after, ...customer-information.render-after, ...fulfillment-details.render-after, ...unfulfilled-items.render-after, ...payment-details.render-after, ...return-details.render-after |
| Profile (all customers) | customer-account.profile.block.render, customer-account.profile.announcement.render |
| Profile (non-B2B) | customer-account.profile.addresses.render-after |
| Profile (B2B) | customer-account.profile.company-details.render-after, ...company-location-addresses.render-after, ...company-location-payment.render-after, ...company-location-staff.render-after |
| Order actions | customer-account.order.action.menu-item.render, customer-account.order.action.render |
| Full pages | customer-account.page.render, customer-account.order.page.render |
| Footer | customer-account.footer.render-after |
The B2B profile targets only appear when the customer belongs to a company location. Merchants can also scope any extension to specific markets, including B2B company locations, in the editor.
Blocks and static targets
Block targets are placed by the merchant in the checkout and accounts editor, up to three extensions per block location. Static targets sit next to a page feature, such as payment details or return details, and only appear when that feature does.
The Order status page belongs here too. If you build for the page customers see after purchase, you use the customer-account.order-status targets, while the Thank you page uses checkout targets; see Shopify checkout UI extensions for those. Order status extensions are available on all plans except Shopify Starter, per Shopify’s checkout technologies page.
Order actions
Order action extensions add an item to an order’s action menu on the Order index and Order status pages, such as requesting a return or leaving a review. The menu item target places the button; the action target is the modal it opens, and that modal is a single step. A button can also link to an order-specific full page instead.
Full pages
Full-page extensions add a page for things the native pages don’t cover: wishlists, subscriptions, loyalty, returns. The rules:
customer-account.page.renderis for pages not tied to an order. It allows direct linking by default, so merchants can add it to a menu or share the URL. Setallow_direct_linking = falseto prevent that.customer-account.order.page.renderis for a page about one order. It cannot be linked directly; open it from an order action or an Order status extension.- A full-page target cannot share an extension with other targets, and each extension provides only one page.
Limits and requirements
From the extension reference:
| Item | Limit |
|---|---|
| Compiled bundle | 64 KB, or 128 KB for full-page extensions |
| Merchant settings | Up to 20 per extension |
| Extensions per block location | Up to 3 |
| Capabilities | api_access (Storefront API), network_access (external calls, requested in the app’s settings), collect_buyer_consent (for example SMS marketing consent) |
| Customer data | Extensions that access customer data need protected customer data access approved before going live |
All targets can read and write metafields through the Customer Account API, and Order status targets can also read them through the Metafields API. That makes metafields the simplest way to show your own data, such as a warranty end date or a loyalty tier, without calling your server on every page view.
One more requirement from the developer guide: apps that send customers to the pre-authenticated Order status page need level 2 protected customer data permission. Customers who aren’t logged in are asked to sign in if they go further into their account.
What to check before you upgrade
Shopify’s upgrade guide walks through nine steps. The short version:
- List your legacy customizations. Look at the account templates in the theme editor and any
.liquidfiles undertemplates/customers. Each one needs a replacement. - Duplicate your checkout configuration in Settings > Checkout, so you can build and preview without customers seeing it.
- Replace customizations with apps. Add app blocks in the checkout and accounts editor, find apps in the App Store filtered by customer accounts, or add menu links to pages and external sites.
- Check branding across checkout and account pages.
- Optionally connect a subdomain, such as
account.your-store.com. - Confirm your sender email, since sign-in codes are sent by email.
- Publish the configuration. Your store keeps using legacy accounts until the final step.
- Test the new account URL with a test customer and every sign-in option you offer.
- Upgrade from Settings > Customer accounts.
What the guide warns about:
| Area | What changes |
|---|---|
| Custom sign-in or register pages | May need theme edits; legacy account URLs, including hard-coded links, redirect automatically |
| Workflows built on legacy accounts | Cannot be migrated |
Segments using customer_account_status |
Won’t work as expected, with no equivalent filter |
| Passwords | Gone; remove anything that relied on password reset emails |
| Sign-in page | Logo, colors, fonts and brand image only, no blocks |
| Domains | One customer account domain for all markets |
| Multipass (Plus) | Existing integrations keep working |
| Market-specific customization | Advanced or Plus only, per the customization help page |
After upgrading, you can revert within 30 days.
Mapping old customizations to new ones
| Legacy customization | Current replacement |
|---|---|
| Extra fields on the account page | Profile block extension reading and writing customer metafields |
| Loyalty or rewards page | Full-page extension, linked from the account menu |
| Reorder or return buttons | Built-in reorder and self-serve returns, or an order action extension |
| Warranty or tracking info per order | Order status block or static target |
| B2B company details per location | B2B profile targets |
| Custom login page | Branding settings; a Plus identity provider if sign-in must go through your own system |
Check the App Store first. Many loyalty, subscription, wishlist and returns apps already ship customer account extensions. A custom extension makes sense when the data comes from your systems, such as an ERP order history, a warranty database or contract pricing for B2B buyers, or when the page must do something no app does.
How a custom extension project runs
- Inventory what customers do in their account today and which parts are custom.
- Match each item to a built-in feature, an App Store app or a custom extension.
- Design the data: what lives in metafields and what needs your server.
- Request access early: protected customer data and network access.
- Build and preview with Shopify CLI on a development store, then on your duplicated configuration.
- Test every sign-in path and every market before you press Upgrade.
- Maintain the app as API versions move; see maintaining a custom Shopify app.
Have it built
If your account pages carry logic you can’t lose, or the upgrade surfaced gaps no app fills, it is a reasonable custom project. Our custom solutions page explains how the team behind Storefleet Store Ops takes on custom Shopify work and what to send us. For deciding between building and buying more broadly, read when to build a custom Shopify app and Shopify custom app vs public app. Related: POS UI extensions for in-store staff tools and custom reports with ShopifyQL for the back office.
FAQ
When will legacy customer accounts stop working?
Shopify deprecated them on February 26, 2026 and said a final sunset date will be announced later in 2026. Check Shopify’s changelog for the current date before you plan.
Can I add custom fields to the customer account profile?
Yes, with a profile block extension that reads and writes customer metafields through the Customer Account API.
Do customer account UI extensions work with legacy accounts?
No. Shopify states they are only supported on the current version of customer accounts.
Can I go back to legacy accounts after upgrading?
Within 30 days of upgrading, according to Shopify’s upgrade guide.
Can I keep password sign-in?
Not with Shopify’s own sign-in, which is passwordless. Stores on Shopify Plus can connect their own identity provider, which replaces the default sign-in experience.