Apps overview
Before you start planning and developing your app, it’s important to understand what Shopify apps do and how they fit into Shopify.
What's a Shopify app?
Anchor link to section titled "What's a Shopify app?"A Shopify app extends the existing functionality of Shopify. Most Shopify apps are built by third-party developers, not by Shopify.
You can build an app to add features to Shopify stores and extend the merchant experience, or to create unique buying experiences for customers. You can also pull Shopify store data into your app, platform, or integration.
To tailor experiences to their specific needs, merchants use Shopify apps to help build their business, integrate with external services, and add features to their Shopify admin.

How apps fit into Shopify
Anchor link to section titled "How apps fit into Shopify"Apps integrate with Shopify in the following ways:
- connecting with Shopify APIs to read and write store data, in response to either user input or webhook event notifications
- extending new features inside existing parts of the Shopify admin or POS
- enhancing the way that stores display information to customers

There are three key areas where apps interact with the Shopify platform: Shopify admin, online store, and checkout. You can add your app directly to some areas using App Bridge.
Shopify admin
Anchor link to section titled "Shopify admin"After logging in to Shopify, merchants set up their store, configure settings, and manage their business using the Shopify admin.
The Shopify admin includes core aspects of the merchant's Shopify business, including orders, products, and customers. Merchants also install apps in the Shopify admin.
Online store
Anchor link to section titled "Online store"The online store is an online home for a merchant's business. Merchants use the online store to create webpages, publish a blog, and sell their products.
As an app developer, you can build integrations in all the places where merchants want to sell, and where their customers want to buy.
Merchants use the secure Shopify checkout to accept orders and take payments wherever they sell online. After a customer adds products to a cart, they use Shopify checkout to enter their shipping information and payment details before placing the order.
Apps can integrate with Shopify checkout to offer additional functionality to merchants and customers. For example, merchants can use apps that support post-purchase offers to show a cross-sell or upsell offer to customers at checkout.
Displaying your app in Shopify
Anchor link to section titled "Displaying your app in Shopify"You can let merchants access and interact with your app within the Shopify admin or Shopify POS.
Adding your app to these surfaces improves both the merchant and development experience in the following ways:
- The app appears in a familiar environment for the merchant.
- You can use Shopify's existing user interface (UI) elements.
- Your app can be exposed in the Shopify iOS and Android app, and has access to device hardware, such as Near-Field Communication (NFC) or a camera.
You shouldn't create a web interface for your app outside of the Shopify admin or Shopify POS.
To learn how to embed your app in the Shopify admin or POS, refer to Getting started with Shopify App Bridge.
How your app accesses Shopify
Anchor link to section titled "How your app accesses Shopify"Shopify has many APIs that let developers extend the platform’s built-in features. These APIs let you read and write merchant data, work with other systems and platforms, and add new functionality to Shopify. Some APIs require apps to authenticate and other APIs are unauthenticated.
API name | Description | Authenticated? | API format |
---|---|---|---|
Admin API | The primary way that apps interact with Shopify. The Admin API provides extensive access to data about individual Shopify stores, and lets you add your own features to the Shopify user experience. | Yes | GraphQL or REST |
Storefront API | Lets you add Shopify buying experiences anywhere your customers are, including websites, mobile apps, and video games. Data access is controlled by the permissions that you choose when you create a storefront access token. | No | GraphQL |
Partner API | Lets you access the data found in the Partner Dashboard, including transactions that impact your earnings, app events, and Experts Marketplace jobs. | Yes | GraphQL |
Payments Apps API | Lets you programmatically access data related to a payments app configuration. | Yes | GraphQL |
Messaging API | Lets your app send messages to the Shopify Inbox app. | Yes | REST |
Ajax API | Provides lightweight endpoints for development of Shopify themes. | No | REST |
Section Rendering API | Lets you request the HTML markup of a single theme section through an AJAX request. | No | Ajax |
Customer Privacy API | Allows you to read and write cookies related to a customer's consent to be tracked. | No | JavaScript |
Building your app
Anchor link to section titled "Building your app"You can use Shopify CLI to quickly create a new app using one of our app templates.
Distributing your app
Anchor link to section titled "Distributing your app"You can build your app for just one merchant, or you can build it for multiple merchants and then distribute it through the Shopify App Store.
You don't have to decide how you want to distribute your app right away. However, some distribution methods might have additional requirements or limitations that you should be aware of. For example, if you want to distribute your app through the Shopify App Store, then it needs to be reviewed and approved by Shopify.
- 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 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.
- Learn about the structure of an app built with Shopify CLI.
- Learn how to deploy, publish, and distribute your app.