Types of apps
Apps play an important role within Shopify’s ecosystem. This guide explains the different types of apps you can build. It also describes how merchants and developers manage apps.
What type of app should I build?
The type of app you choose to build depends on its purpose and how you’ll distribute or sell it. You can't change the type of app after you create it, so make sure that you understand the different capabilities and requirements of each type.
You can build the following types of apps:
- Public app: An app that you can distribute to many merchants.
- Custom app: An app that is tailored for a single merchant.
- Private app: An app that is tailored for merchants with specific requirements not met by a custom app.
Capabilities and requirements
The following table shows the capabilities and requirements that are associated with each type of app:
|Type of app||Authentication method||Installation||Approval required||Distribution in App Store||Features and limitations|
|Public||OAuth. If embedded, then OAuth and session tokens.||Installed on multiple Shopify stores||Yes||Yes|
|Custom||OAuth. If embedded, then OAuth and session tokens.||Installed on a single Shopify store. Shopify Plus service partners can install the same custom app on multiple Plus stores for a single Shopify Plus merchant.||No||No|
|Private||Basic HTTP||Installed on a single Shopify store||No||No|
Embedded apps enable you to add features to certain parts of Shopify’s user interface and online stores.
Embedded apps are hosted on your own infrastructure, integrate with Shopify using Shopify App Bridge, and display directly in the Shopify admin or POS inside an iframe.
By default, all newly created apps are set up to embed in the Shopify admin. If you need to turn on the setting to embed an app, then you can follow these steps.
Alternatives to embedded apps
We recommend building embedded apps because they deliver the best merchant experience and are closely integrated with Shopify.
However, you can build a standalone app, which isn't embedded in the Shopify admin. Standalone apps expose their own user interface, on their own web domain, and don’t have access to app extensions.
How merchants manage apps
Installing public apps
Public apps are installed using OAuth. During installation, a URL is displayed to the merchant to request specific API access scopes. If the merchant grants the requested access, then the app can be installed.
The installation process can be initiated with any web link. However, listing in the Shopify App Store is the best way to reach the greatest number of potential customers.
Installing custom apps
Custom apps are installed using OAuth. They can only be installed by a single Shopify store, using a generated install link tied to the merchant's store URL. To test your custom app without limits on installations, you can install it on a development store.
Custom apps can only be installed on a merchant store once. You should only generate your custom app's install URL when you're ready for a merchant to install the app, as it can't be changed or updated later.
Installing private apps
Private apps use basic HTTP authentication with credentials generated by a single store. If the app has a valid API key and secret for that store, then it has access to the store’s data.
Private apps are managed from the merchant's Shopify admin.
Merchants can delete apps from their stores at any time. Deleting an app revokes API access tokens for that store, stops subscription payments, and generates an uninstall webhook. Uninstall events also occur when a Shopify store using an app is closed or suspended.
How developers manage apps
Shopify provides a range of software tools, sample apps, and libraries to accelerate your development process:
Partner Dashboard: Create and manage your public and custom apps, collaborate with development teams, and track app installations and revenue. To log in to your account or to sign up for a new account, visit Shopify Partners.
Development stores: Test any apps that you create.
Shopify CLI: Accelerate your app development process by quickly generating starting code for your app.
- Use Shopify CLI to create an app, quickly set up your development environment, and generate starting code.
- Learn about the different methods of authenticating and authorizing apps and services with Shopify’s platform.
- Use webhooks to stay in sync with Shopify or execute code after a specific event occurs in a shop.
- Learn how to use metafields to share additional information about Shopify resources with your app.