Sales channel apps let Shopify merchants sell their products directly on a platform or marketplace outside of their online store, such as Facebook or Pinterest. The Sales Channel SDK lets you build a platform of your own where Shopify merchants can sell their products. After a Shopify merchant installs your sales channel in their Shopify admin, they can select specific products to sync with your channel.
This diagram shows the high-level architecture of a sales channel app:
- From the Shopify admin, merchants publish products to your platform.
- Your app uses the ProductListing API to read the products that are meant for your channel, and then surface them on your platform.
- From your platform, customers choose products and follow the checkout flow to make purchases. Your app can use the Checkout API to offer a fully customized checkout experience.
Before you start building a sales channel, make sure that you're familiar with the usage guidelines and technical requirements below.
- Sales channels must be marketplaces or platforms where merchants can sell their products outside of their own branded channels (such as Shopify's online store, Buy Button, or Shopify POS).
- A channel app and integration must be built directly by the channel partner, or a single affiliated integration partner approved by the channel partner (for example, a third-party developer or services agency).
- Channels must be built through the Shopify platform using the Sales Channel SDK.
- Sales channel apps require the Embedded App SDK. This SDK helps structure the merchant experience when they are managing channel-specific settings in the Shopify admin.
- Your app also must meet the best practices that are set out in Shopify's components library, and the general guidelines in Shopify's Polaris design system. These resources include all the resources that you need to build apps that are in keeping with Shopify and other sales channels.
- If your app will use the Checkout API to process payments, then you will need to consider PCI compliance. Shopify offers several methods to reduce PCI compliance liability such as Stripe and Spreedly. To use one of these services, you'll need to request payment processing when you create a sales channel app.
Key resource types
The Sales Channel SDK is based on a few specific resources within Shopify's Admin API:
- ProductListing - A product listing is a subset of products that merchants have chosen to publish on your channel. You can use webhooks to read this subset of products and stay in sync.
- CollectionListing - A collection is a subset of products that can be surfaced and viewed together for convenience.
- Checkout - A checkout is an object used to manage a user’s cart as it transitions to a paid checkout. This includes calculating taxes and shipping rates, attaching a shipping address, and associating one or more payments.
Common app behaviors
There are a few common behaviors for sales channel apps:
Reading products and staying in sync
Merchants select specific products and collections to publish on your channel. You can use the ProductListing and CollectionListing APIs to read products and collections. The
collection_listings webhooks provide a convenient way to keep your channel in sync as merchants update their products.
Customers using your platform can purchase a Shopify merchant's products through your sales channel app, powered by the Checkout API. Using the Checkout API, your app can programmatically create a Shopify cart, reserve inventory, retrieve shipping rates, calculate taxes, and process payments for a Shopify merchant.
Rather than using the Checkout API, you might find it preferable to leverage Shopify’s online store checkout experience using cart permalinks.
All Shopify stores come with a beautiful, responsive web checkout. Cart permalinks let you link to a pre-filled web checkout containing product variants of your choosing. You can make sure that the resulting checkout will be attributed to your application by adding the
access_token URL parameter to the cart permalink. The
access_token param is a valid Storefront Access Token.
You can pass other marketing attribution data to Shopify using
utm URL parameters. Learn more.