> Note:
>The Marketplaces section has been deprecated. The recommended way to build a marketplace is to follow the [channel setup](/docs/apps/build/sales-channels/start-building) and use the [Storefront API](/docs/api/storefront) and [Polaris](https://polaris.shopify.com/)

A channel is an [app](/docs/apps/build) that allows merchants to reach new customers on platforms outside of their online store to make a sale. You can build sales channel apps to connect merchants to customers on marketplaces, advertising platforms, and more.

## Sales channel app flow

The following diagram illustrates how all the features of sales channel apps come together to support the merchant experience of your sales channel app:

![Sales channel app overview](/assets/api/sales-channel-tutorials/sales-channel-onboarding.png)

1. The merchant clicks to install the sales channel app.
1. The merchant connects to the sales channel app on the OAuth grant screen.
1. The merchant connects to the sales channel app account using the [account connection component](https://polaris.shopify.com/components/actions/account-connection). If the merchant doesn't have an account, then they're prompted to sign up. Authentication happens in a pop-up provided by the app's interface outside of Shopify.
1. If additional steps need to be completed, or the merchant needs to wait for their account to be approved, then this can be completed as part of onboarding.
1. After the merchant is approved, the approved state is communicated to the merchant using a [banner component](https://polaris.shopify.com/components/feedback-indicators/banner).
1. The app prompts the merchant to agree to any commissions or fees. Use the [Billing API](/docs/apps/launch/billing/support-one-time-purchases) to make charging for your sales channel app.
1. Merchant publishes products to the sales channel app. The sales channel app reads the product catalog and stays in sync using the relevant webhooks. Product publishing errors are reported in the admin using [resource feedback](/docs/api/admin-rest/latest/resources/resourcefeedback).
1. Orders are created in the Shopify admin.

## Creating and managing checkouts

When building a sales channel app, you can create and manage checkouts using one of the following methods:

- Create [cart permalinks](/docs/apps/build/checkout/create-cart-permalinks) to take customers directly to a store checkout with a pre-loaded cart
- Use an SDK that's powered by the Storefront API, such as the [JavaScript Buy](/docs/storefronts/headless/additional-sdks/js-buy), [iOS Buy](/docs/storefronts/headless/mobile-apps/buy-sdk-ios), and [Android Buy SDK](/docs/storefronts/headless/mobile-apps/buy-sdk-android)

## Creating a great user experience using Polaris

A sales channel app should look and feel native to Shopify’s admin experience, as it lives within the admin as an iframe.

The first step to designing a great channel experience is to understand your merchant’s workflows. From there, you can create wireframes or sketches to facilitate feedback discussions around the user experience. After you’ve aligned on an experience that will be Beta-tested with merchants, you can design using the [Polaris](https://polaris.shopify.com/getting-started) framework.

Using Polaris increases merchant engagement and saves them time by using familiar components and patterns. For more information, refer to [Polaris components](https://polaris.shopify.com/components/layout-and-structure/empty-state) and [best practices](https://polaris.shopify.com/foundations/designing-apps).

## Billing for your app

You can use Shopify's Billing API to charge merchants for your sales channel app. When using the Billing API, you can either charge merchants a recurring monthly subscription, or take a commission on sales by creating usage charges. For more information, refer to [App billing](/docs/apps/launch/billing).

## Sales channel app requirements

The following requirements apply to all sales channel apps:

- All sales channel apps are [submitted for approval](/docs/apps/launch/app-store-review/submit-app-for-review) to the Shopify app review team.
- Your app introduces a destination or platform for customers to discover products outside of the online store.
- Customers are eventually directed to a sale.
- You need to own and operate the destination or platform where products are sold.
- After the sales channel app is live, you intend to onboard several hundred Shopify merchants in the first year after launch.

## Build requirements

All types of sales channel apps have the following features:

- **Onboarding and account connection**: You can get permission from merchants to install your app, connect their accounts, and qualify them through channel requirements.
- **Product publishing**: You can import products into your channel, manage product errors, and stay in sync with merchants' product catalogs.
- **Payments and order management**: You can generate orders and complete payments for merchants on your channel.
- **Link to the marketplace in the channel interface**: After merchants upload their products to a marketplace, make sure they know how to navigate to where their products are hosted. You can provide a link to the marketplace in the form of a button or information in the instructions:

    ![A link to the marketplace in the channel interface](/assets/apps/channels/link-to-marketplace.png)

### Sales channels apps built with cart permalinks

The following tables lists the build requirements for sales channel apps that are built with cart permalinks.

<table class="sales-channel-req-general">
  <caption>Build requirements</caption>
  <thead>
    <tr>
      <th colspan="2" style="width:100vw">General requirements</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td scope="row" style="width:50%">Pre-approval required?</td>
      <td style="width:50%">No</td>
    </tr>
    <tr>
      <td scope="row">PPA Addendum required?</td>
      <td>No</td>
    </tr>
    <tr>
      <td scope="row">App approval process required?</td>
      <td scope="row">Needs to meet the <a href="/docs/apps/launch/app-requirements-checklist">general requirements for apps and sales channel apps.</a></td>
    </tr>
  </tbody>
</table>
<table class="sales-channel-req-onboarding">
  <thead>
    <tr>
      <th colspan="2" style="width:100vw">Onboarding and account connection</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td scope="row" style="width:50%">Connect using OAuth</td>
      <td class="supported" style="width:50%">&#x2714;</td>
    </tr>
    <tr>
      <td scope="row">Shopify App Bridge</td>
      <td class="supported">&#x2714;</td>
    </tr>
    <tr>
      <td scope="row">Shopify Polaris</td>
      <td class="supported">&#x2714;</td>
    </tr>
  </tbody>
</table>
<table class="sales-channel-req-publishing">
  <thead>
    <tr>
      <th colspan="2" style="width:100vw">Product publishing</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td scope="row" style="width:50%">List products using the <a href="/docs/api/admin-rest/latest/resources/productlisting">ProductListing resource</a></td>
      <td class="supported" style="width:50%">&#x2714;</td>
    </tr>
    <tr>
      <td scope="row">Manage errors with the <a href="/docs/api/admin-rest/latest/resources/resourcefeedback">ResourceFeedback resource</a></td>
      <td class="supported">&#x2714;</td>
    </tr>
  </tbody>
</table>
<table class="sales-channel-req-payments-orders">
  <thead>
    <tr>
      <th colspan="2" style="width:100vw">Payments and orders</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td scope="row" style="width:50%">Checkout build complexity</td>
      <td>Low. Take customers to Shopify's checkout with items pre-loaded in the cart.</td>
    <tr>
      <td scope="row" style="width:50%">Payment processing requirements</td>
      <td>No</td>
    </tr>
    <tr>
      <td scope="row">Receiving payments</td>
      <td>Use the <a href="/docs/apps/launch/billing/support-one-time-purchases">Billing API</a>. For <a href="/docs/apps/build/checkout/create-cart-permalinks#step-3-attribute-an-order-to-a-sales-channel">sales attribution</a>, you can use a storefront access token.</td>
    </tr>
    <tr>
      <td scope="row">Revenue share</td>
      <td>Refer to the <a href="https://help.shopify.com/en/partners/how-to-earn#shopify-apps">Shopify Partner revenue share agreement</a>.</td>
    </tr>
  </tbody>
</table>

## Next steps

- [Get started building a sales channel app](/docs/apps/build/sales-channels/start-building)