I started developing an app for a client a few weeks ago with the intent of showing a collection of products when a customer adds an item to the cart for "upsell" purposes.
The reason they need a "custom" app is because there are no apps that do what they need. They sell multi-SKU systems - one parent product with a bunch of SKUs connected to it that need to be multiplied by the quantity of the parent product. For example: if a customer buys 5 gallons of Part A they might need 3 gallons of Part B and 1 quart of Part C.
Halfway through building the app I realized there is no way to query for a list of collections from the Shopify API unless your app is a "Sales Channel" so I went through the process of making it one and, more or less, finished developing the app. Then I realized what a "Sales Channel" was and that I needed to submit it before the client could use it, and now I am preparing to submit it despite these discrepancies, because it works really well in its current state.
Now I am worried I will fail submission because my app is not, in fact, a sales channel. But to build all of that additional functionality, that is essentially rebuilding the collections tool, seems like a nightmare and a waste of time. If I must, I will, but it seems like bad business.
So I am wondering:
1) Will I be able to get through submission of this app if it's not actually a sales channel but is listed as such because the API is closed off to normal apps? Or is that an instant-fail?
2) Why on Earth is querying for collections only available for Sales Channels?!
3) Are there any other options, assuming I won't be able to do this, to do something like it other than building out an entire interface and UI for essentially building collections or using a third-party app (out of the question)?
I think this arbitrary rule on the API should be reviewed. If I do get rejected, hopefully it calls to attention how bizarre it is that a regular app can't query for Collections.
So I can also access the collections by using the Storefront API. This is interesting because the app does not need to be classified as a sales channel to query for collections! Or does it?
You need the Storefront Access Token to do this, which works fine for my "custom app" installation because I know it for the client's store; but this makes it impossible to offer this app to other Shopify users because now the storefront_access_tokens API is hidden behind the Sales Channel app API!!
What the heck!? I will continue to search for a solution for a time but ultimately these limitations are making it very difficult to contribute my work to the Shopify community. Hopefully this is just an oversight. I may try submitting the Sales Channel app anyways. I will wait a couple days to see if any useful replies come in to this query before deciding what to do.