Migrate from the Partner Dashboard
The Dev Dashboard replaces the Partner Dashboard for app development. This unified platform provides the same powerful tools for both Partners and merchants, with an improved development experience. This guide helps you understand how to migrate your existing apps and workflows.
Anchor to Migration overviewMigration overview
If your app doesn't have extensions, then migration is fully automatic and you can familiarize yourself with what's changed in the Dev Dashboard.
If your app has extensions, then you'll need to take additional steps after Shopify migrates you to the Dev Dashboard. Your current installations will continue to function, but to keep building and updating post-migration, you will need to:
- Update to the latest version of Shopify CLI.
- Migrate dashboard-managed extensions to CLI-managed extensions.
- Use CLI-managed app configuration.
- Run
shopify app deployto update your extensions to includeuididentifiers.
Anchor to Migrate dashboard-managed extensionsMigrate dashboard-managed extensions
You can no longer create and manage app extensions through dashboards. You'll only be able to create and manage extensions using Shopify CLI.
Anchor to Extensions affectedExtensions affected
The following extension types currently managed through the Partner Dashboard need to be migrated. See the migration documentation for each extension type for more details:
| Extension Type | Description | Migration Documentation |
|---|---|---|
| Admin links | Deep links, app navigation, and custom bulk operations from Shopify admin | Migrate admin links |
| Flow lifecycle Events | Flow trigger usage notifications | Migrate legacy Flow extensions |
| Flow actions | Shopify Flow integrations for actions | Migrate legacy Flow extensions |
| Flow triggers | Shopify Flow integrations for triggers | Migrate legacy Flow extensions |
| Marketing activity extensions | Marketing campaign integrations | Migrate marketing activity extensions |
Anchor to Use CLI-managed app configurationUse CLI-managed app configuration
As part of this transition, CLI-managed app configuration from your shopify.app.toml is now always included
when you run shopify app deploy and shopify app dev. Shopify CLI will automatically remove the include_config_on_deploy property
from your shopify.app.toml file.
If your shopify.app.toml isn't up to date with values on your dashboard, then use shopify app config link.
If you see unexpected configuration changes when running shopify app deploy, then
your shopify.app.toml may not be up to date with values set using your dashboard.
Learn more about managing app config files.
Anchor to Migrate to extension user identifiersMigrate to extension user identifiers
As part of this transition, all extensions need to include user identifiers in the uid field of their shopify.extension.toml.
When deploying a Shopify app, we need to be able to reliably determine which extensions have been added, updated, and removed from your app. This means that we need to map extension code to our records of your extensions on Shopify.
To achieve this, app extensions are idenitified by extension user identifiers (UIDs) that are set in the shopify.extension.toml file. Extension UIDs are unique, source-defined, and app-scoped, so they can be shared across production, staging, and development apps.
By default, UIDs are automatically added when you create a new extension using shopify app extension generate, or when you run shopify app deploy. UIDs are deterministic based on the extension handle, so they will always be the same for extensions with the same app handle value.
Non-interactive deploys (shopify app deploy --force) and the shopify app dev command will fail until you've completed these steps.
The uid is different from the extension identifiers found in the .env file, that were previously generated by shopify app deploy.
After mapping uid values during app deploy, the .env extension identifiers are no longer used, and uid values can
be shared across all copies of your app.
Anchor to Create and map ,[object Object], valuesCreate and map uid values
uid valuesA one-time interactive deploy is required to create and map uid values:
- Run
shopify app deployagainst a code branch that represents the current release of your app.- Shopify CLI generates a new
uidvalue for each extension, based on the extensionhandle, and writes it to theshopify.extension.tomlfile. - In the confirmation prompt for the
deploy, Shopify CLI will indicate that all your extensions areupdated.CautionRemoving and adding an extension can result in data loss on installed stores. If you see extensions that are
newandremoved, instead ofupdated, this indicates a failure to map the extension. Update the extensionhandleor.envenvironment variable to match the extension on Shopify. - Select
Yesto confirm the deploy and release of the app. - The
uidvalues are set on Shopify as the identifiers for your extensions.
- Shopify CLI generates a new
- Commit the new
uidvalues to your source control. - For each additional app instance:
- Merge the new
uidvalues into the appropriate code branch for the app instance. - Run
shopify app deploy --config <name>to map the sameuidvalues to the app instance.
- Merge the new
Anchor to How extensions are mapped to ShopifyHow extensions are mapped to Shopify
During uid mapping, Shopify CLI uses the following logic to map extensions to Shopify:
- Identify the active
.envfile for the current app configuration. For example:- If
shopify.app.tomlis active, then.envis used. - If
shopify.app.prod.tomlis active, then.env.prodis used.
- If
- Look for an extension identifier in the
.envfile for the current app configuration, based on the extensionhandle. The environment variable is namedSHOPIFY_<HANDLE_SNAKE_CASE>_ID. For example:- If the extension
handleisdiscount, then the environment variable isSHOPIFY_DISCOUNT_ID. - If the extension
handleisproduct-reviews, then the environment variable isSHOPIFY_PRODUCT_REVIEWS_ID.
- If the extension
- If an extension identifier isn't found in
.env, then match on the extensiontypeandhandle. - If no match is found, prompt for any potential matches.
Prior to Dev Dashboard migration, the shopify app deploy command populated these .env files. If an .env file is not
available for your app configuration, update extension handles to match their values on Shopify.
After this initial deploy, the only value used to determine if an extension is being created, updated, or deleted is the uid value.
Anchor to Other changesOther changes
The Dev Dashboard consolidates app development tools into a single, modern interface that's integrated with your Shopify organization. Here's what's moving:
Anchor to App managementApp management
- App creation and configuration moves from the Partner Dashboard to the Dev Dashboard.
- Dev stores are now managed in the Dev Dashboard with more flexibility.
- Mandatory compliance webhooks are now managed exclusively in the app configuration TOML.
Anchor to Developer toolsDeveloper tools
- Monitoring and logs are now available directly in the Dev Dashboard.
- Shopify CLI connects to the Dev Dashboard seamlessly (requires the latest version of Shopify CLI).
- Metafield and metaobject definitions can now be configured declaratively through your app configuration.
Anchor to Team collaborationTeam collaboration
- User permissions are now managed through your organization settings, not separately.
- Role-based access integrates with Shopify's standard user management.
- Organization-wide app access for all stores in your organization.