For Shopify apps to be installed on multiple websites it must go through the Shopify approval process. This can be a difficult process but the following article aims to provide guidance on easing the process in terms of identifying common failure points.
NOTE - public approved apps do not have to be listed in the Shopify Marketplace
1) Pricing
It is important that on the products available in the app that ALL possible platform currencies have pricing set and not only those that will be used when live. There is a function when submitting a listing to define which currencies the app works with but this is not taken into account when testing. If the Shopify apps team installs on a store in a currency where no prices have been saved then no products will show for them.
2) Auto Approval
To ease the approval process ensure the app is set to auto approve new installs and ensure that automatic category allocation is set. Without this on install the app will state that approval is required and the app will commonly be rejected without waiting for it to be activated.
3) Limit Product Range
During the approval process it is recommended to limit the products available to reduce any risk.
4) App Descriptions And Straplines
- No data and statistics from your app's key benefits and detailed description
- Focus on your app's benefits when rewriting your listing and avoid using terms like "the first", "the best", or "the only"
5) Payment Processing
Detail must be provided to shopify in the submissions details that payments for dropship orders have to be dealt with outside of the Shopify Billing API. Text to be used is below
"The Shopify Billing API supports payments as fixed price recurring subscriptions or as one off transactions which require approval before completion by the merchant which does not meet the needs in dropship fulfillment. Dropship orders have the trade cost of goods and carriage taken automatically from a pre registered card using PCI compliant tokenized methods or via scheduled invoice and BACS transfer by arrangement with us directly after install. Where automated payments are taken orders are placed on hold until trade costs have been processed and then orders are released into production ensuring a smooth flow. If a transaction cannot be processed the merchant will be contacted directly to rectify. Details on the PCI compliant payment integrations is available here
https://support.custom-gateway.com/portal/en/kb/articles/what-is-a-payment-integration"
6) Webhooks
It is very important that when setting up your app that you fill in the mandatory GDPR webhooks as detailed in this following link -
https://whitelabel.custom-gateway.net/shopify/hook/{shopify app code}. This is needed to ensure requests are managed to view or erase any personal information added by the customer. The below screenshot added details this for you.
Additiional Notes on Clickjacking Requirements
For public app submissions, the platform supports Shopify App content to cover new requirements for Clickjacking. The added requirement asks for "frame-ancestors" to be filled in, if this is missing the submission for your app will be rejected. There are 2 seperate options for this - embedded apps will ask for the current shop domain and admin domain, while non embedded apps the frame-ancestors must be set to "none".
Clickjacking refers to the act of tricking users into pressing buttons or links that point to , Kornit X and Shopify take your online security very seriously, we will go above and beyond to ensure we take the measures needed to keep you safe.
For more informarion on why Clickjacking requirements are needed, Shopify have the following knowledge article - Click Here