Hi @PaulNewton,
Thank you again for the feedback, all feedback we get is valuable for our future updates to our platform and any regulations or terms, and while I will be sharing all feedback from this thread internally, I can’t guarantee if it will result in any immediate change, though I can assure you that it is heard and valued.
Please do note that with all of the points above, I have discussed them in detail with our App Store Review Team which is directly in charge of enforcing these regulations and restrictions, and confirmed everything I stated as true.
The requirement that you are referring to is specifically for duplicate apps, not multiple apps. This means that App developers can create companion apps as long as they do not have the same functionality as the original app. The direct quote from the App Store Requirement documentation is clear about this definition.
Multiple apps with overlapping functionality created by the same Partner - App must not be identical to other apps you’ve published to the Shopify App Store.
This means that as long as the companion app is not identical and does not overlap with the original app, it is fine to have multiple apps for use. In the example we were originally discussing with @Mirvise’s fundraiser app, to ensure it’s not a duplicate app with overlap they could structure it like so:
-
Sales Channel App:
- Manage user account connection with the external platform
- Manages product publishing on the Sales Channel for products sold on the external platform
- Syncs updates to product feed to the external platform
- Creates orders via permalink or Storefront API/SDK
-
Companion App:
- Manages and updates fundraising product and variants on Shopify (does not handle product publishing)
- Manages orders created from all sales channels (does not create orders)
- Manages analytics and fundraiser information
With an example like this we can see that the apps are not identical and do not have overlapping functionality, and thus would be valid and eligible with our App Store Requirements, API and Partner Terms of Services.
Regarding the use of permalinks to attribute non-Sales Channel orders to the Sales Channel.
To attribute a permalink cart to a specific sales channel, you would need to add the sales channels access token to the permalink parameters. Other apps and sales channels would not have access to the Sales Channel app’s access token by default, and you’d have to use Theme App Extensions to add a permalink to the storefront directly through your own app.
However I have also discussed this with our App Store Review Team, and they did confirm that doing this would result in a failed App Store Review, as we would consider it as a bypass of the read_only_own_orders requirement, since the intention is specifically to grab information from orders that did not originate from their Sales Channel, instead originating from the Online Store Sales Channel.
They have confirmed again, that the best way to do this would be with a companion app as mentioned, and other attempts at workarounds would be considered against the App Store Review requirements, as long as they are intentionally trying to get information from orders not originating from the Sales Channel directly.
The same goes for the webhooks, we are not restricting merchants from adding webhooks as they wish, but if the Sales Channel app requires the merchant to add a webhook specifically for the intention of bypassing the requirement mentioned above, it would also result in a failure of the App Store Review.
TLDR:
- As long as the Sales Channel App is trying to get data from orders that were not originated from the external Sales Channel platform, it would result in a failure of our App Store Review.
- The only way to workaround this would be with a non-Sales Channel companion app that is allowed to retrieve the data from all orders on the store, regardless of where they originated. Only displaying and managing these orders within the non-Sales Channel App specifically.