1. App Setup :
Make sure your App URLs works perfectly meeting oAuth 2.0 specifications and your app meets App Bridge 2.0 requirements. GDPR mandatory webhooks endpoints should be handled for customer actions and shop erasure action. To track App uninstallation you can use the app/uninstalled webhooks where you will receive the shop details that uninstalls the App. Once your app is uninstalled, the OAuth token will get uninstalled.
2. Request for Scopes and confirm the installation
Do not ask for unnecessary API permissions. Unless the merchant confirms the installation, data from their stores cannot be accessed. Shopify needs to verify the merchant who is installing the app.
3. Handle Billing
Shopify supports three types of billing. One-time charges, recurring billing, and usage charges. You can add a trial period. Shopify will handle the billing process but if you have a trial period you need to customize the billing section. While the user uninstalls and reinstalls the app, get billing confirmation again with the remaining days of the trial period.
4. No fake data
Using fake data in any form is strictly prohibited in Shopify, if you do so you need to forget about your app getting approved. Make sure the data you display in your app makes sense and it is relevant to the data you read from the particular store.
5. No upcoming or broken functionalities
If You are building some features that are not completed yet, do not publish it in your app during your Shopify app submission. Save it for future updates. Make sure all the functionalities that are published are perfectly working in all scenarios and nothing breaks.
6. Optimize performance and clean the console
Performance plays a major role in getting your app approved for the Shopify marketplace. It means your app loads in minimal time for all pages, has no fake data, all functionalities working fine.
Console errors also play a vital role that may be subjected to the rejection of your app. Make sure you have a clean console.
Rejections are part of the Shopify review process. Don’t panic if your app gets rejected for the first time.