App Review - Public App vs. Sales Channel App

New Member
3 0 0

Recently we submitted our public app for review and it was rejected.  Shopify said that we need to resubmit the app as a 'sales channel' app instead of as a 'public app'.  However, before we started this process, we reached out to Shopify and explained the goal of the app and they suggested we move forward with creating a ‘public app’.

Our app is designed to allow Shopify merchants to upload their products for sale on our website, which is a peer to peer marketplace for outdoor gear, similar to etsy, reverb and eBay. Our app is very similar to these apps, which we have confirmed are all 'public apps':

In further communicating with Shopify we have not received a clear answer on what we need to fix and they said we may not need to resubmit as a 'sales channel' app.   


We are using the Webhooks, Products, and Orders APIs. We are not using the Checkout API, so we thought that we would not need to create a Sales Channel app. We also confirmed that there isn't any data that we're accessing via the Orders API that we shouldn't be.

Are we able to move forward re-submitting this app as a ‘public app’ or do we need to resubmit as a ’sales channel app'?

We are doing our best to make sure we get this right, but would love some direction on how to proceed correctly.

Here is a summary of how we use the Shopify APIs:


Canceling an order from Geartrade cancels the corresponding Shopify order (POST /admin/api/2020-07/orders/{order_id}/cancel.json).
While canceling, if a note is specified, we use the order update API (PUT /admin/api/2020-07/orders/{order_id}.json).
Ordering through Geartrade uses the Orders API to create an order in Shopify (POST /admin/api/2020-07/orders.json).


Product GET is used for single products, triggered in response to the products/create, products/delete, and products/update webhooks. (GET /admin/api/2020-07/products/{product_id}.json)
Product list API is used when a store is first installed or when their config is updated in order to retrieve all of their products (GET /admin/api/2020-07/products.json).

We use the webook create endpoint in order to automatically set up webhooks when a store is installed (POST /admin/api/2020-07/webhooks.json)
Here are the webhooks we install:

Here are the access scopes we request:


The default read_orders and write_orders scopes only grant access to the last 60 days of orders. In order to access all orders, we would need to add the read_all_orders scope, which we aren't doing.

Is there anything we should be doing differently to get this approved through the public app channel?


Thanks so much for your help!!!!

Shopify Staff
Shopify Staff
750 86 163

Hey @rreinfurt,

Just to clarify, public apps can also be sales channels, they're not mutually exclusive. We define sales channels as 

Your sales channel might be a mobile app, a website, or an online marketplace.

So it definitely sounds like your app fits the description. I have a doc link here that explains how to convert your app into a sales channel.

JB | Developer Support @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit or the Shopify Web Design and Development Blog

New Member
3 0 0
Thanks for your reply! If we do resubmit our app as a “sales channel” app do we have to rebuild it in Polaris? Our developer said this would cost us an additional $8-10K and we have already spent over $19K in creating the public app. We do not have the budget for this since we are a small company. We are not utilizing the checkout API nor do we require payment processing, so can we resubmit the app as a 'sales channel” without having to rebuild it? Also, we applied to to have Shopify approve the request to submit as a ‘sales channel’ a week ago, but still have not heard back. How long does this initial approval usually take? Thanks so much for your help.

New Member
3 0 0

@_JBthanks for your help.  see my reply above.  i had a few questions for you