When you submit your app for review one of our integration managers checks your app thoroughly against our guidelines. This article includes the basic checks and tests you're required to make during development and before you submit your app for review.
All apps are built differently, so you should only check and test all of the elements that apply to you. In this article we cover:
Recommended: use a free Premium testing site
To make testing easier you can install your app on a free Premium testing site.
It's important to test your app on a range of commonly used browsers and devices.
Desktop browsers
Click the links below to download the latest versions:
- Google Chrome (version 92 and above)
- Safari for Mac (version 14 and above)
- Microsoft Edge (version 100 and above)
- Firefox (version 91 and above)
Mobile browsers
Click the links below for instructions:
Tablet and iPad browsers
Wix supports viewing live sites from iPads and tablets. However, the Wix Editor is not supported on iPads or tablets.
Supported browsers on iPads and tablets:
Supported operating systems on iPads and tablets:
- iPads: iOS 12 and above
- Android: 9.0 and above
Make sure you've gone through everything in our dedicated OAuth article.
- That you have a dashboard page extension – this is a basic requirement for all OAuth apps.
- Make sure that the URLs are not on a local host.
1. In the your app's dashboard click on the Test Your App button and choose App Market.
2. Click on Add to Site – at this point Wix redirects the user to your app URL with a token.
3. A consent modal should appear – this is how users authorize the permissions you added in your app's dashboard. If not, check your OAuth flow setup.
4. Accept the permissions.
5. Wix will send the user to your redirect URL, and your app dashboard should show up and commence its onboarding flow.
6. At this point, the app is installed on the user's site and you should have their instanceId – this is the unique identifier for the user's site that the app is installed on.
7. Once the user completes the onboarding flow, send the BI event of 'App Finishes Installation'.
Make sure you've gone through everything in our dedicated permissions article.
- Make sure that you only added the minimum necessary permissions for your app to function.
- If you added scopes: remove all the permissions already included in that scope. E.g., the Manage Orders scope already includes Read orders, Manage bookings and Read bookings, etc.
- Make the required API calls for your app, and make sure you don't receive errors of missing permissions.
Make sure you've gone through everything in our dedicated webhooks article.
- We recommend adding the App Installed and App Removed webhooks in addition to any other webhooks you have.
- Make sure you return a 200 response upon successful receipt of the webhook.
- Use the Test button next to your webhook in your app's dashboard to make sure you receive it.
- Trigger the webhooks using your Wix site; E.g., Create an order on the site and make sure that you receive the webhook response that an order has been created successfully.
- The response in the webhook log should be 'Success' – if not check the URL and make sure to return a 200 response.
Make sure you've gone through everything in our dedicated Dashboard page extension article.
- The page URL is not on a local host.
- Install the app, click the Test Your App button, and choose Dashboard.
- If your app has an internal dashboard component the consent window should close when you've approved the permissions and your app will open in the Wix dashboard.
- Close the app.
- Open the app from the Manage Apps section in your Wix site manager – the app's dashboard should open.
Make sure you've gone through everything in our dedicated Embedded Script article.
- The script: make sure it's the correct type.
- That the script itself has a dynamic parameter, the recommended syntax is:
<script id="my-script" src="https://cdn.example.com/pixel.js?id={{KeyName123}}" async='true'></script>
- Embed the script using the API call.
- Install the app on a Premium site with a connected domain.
- Enable the embedded script using the API.
- Go to a live Wix site with the app installed, and make sure that it's not disabled (there's an option to pause the script in the Manage Apps section).
- The script should be shown on the site – you can also check it in the network tab, and filter 'tags' – the script should show there as well.
Make sure you've gone through everything in our dedicated market listing article. Here are some common issues:
- App name: Shouldn't be generic.
- Teaser, app features, and full description: Don't mention Wix, stats, data, etc.
- Media: Images should be high quality and not pixelated, you should have at least 3 images.
- Demo site: Only needed if there is a visual component on the site, this needs to be a real Wix website featuring your app.
Make sure you've gone through everything in our dedicated app pricing guide.
Apps that use Wix internal billing
- Test the entire checkout flow of the app installed on a Wix site – test each plan, cancel plan, etc.
- Redirect the user within the app to Wix Pricing Page:
https://www.wix.com/apps/upgrade/APPIDHERE?appInstanceId=INSTANCEIDHERE
- Don't allow downgrades, only canceling the plan and purchasing new one is supported.
- Add all the plans your app's dashboard and connect each to Wix checkout using the API.
- Test each plan, and make sure they all lead to the Wix checkout.
- Make sure the prices are consistent with the ones you added in the app dashboard.
Apps that use their own external billing
- If you have dynamic plans or your business model is based on fees, please choose Dynamic Pricing and add plans.
- Make sure all your plans are added to your app's dashboard.
- Make sure to sign the relevant addendum.
Install the app on multiple Wix sites and use instanceId to make sure that you show the relevant account details for each site (separated billings, dashboard, etc.).
- Install the app on your Wix site via your app's dashboard.
- Go through the onboarding flow and create an account if needed, upgrade the app and use it.
- Install the app on a second Wix site.
- At this point, you should identify that it's a new user using instanceId – you shouldn't identify users by their session/cookies.
- If the account is needed for your app, then:
- (Case 1): If you support multiple site connections under one account, build a flow that allows users to switch between their accounts. The user should be able to log in to your app with their existing account, but the details should be connected to the site they opened the app with and your app should distinguish between the sites that the user installed the app on by the instanceId.
- (Case 2): If you support one account per site, you should support a flow where you let the user know that they already have one site connected under their account and if they want they can disconnect it or create a new account.
For both cases, billing should be separate for each site.
After a user creates an account for your site and opens the app through Manage Apps, they should be auto logged in based on the instanceId we send you when the user clicks “Open App”.
- Install the app from your app's dashboard.
- Create an account.
- Close the app.
- Go back into the app through Manage Apps.
- You should be auto logged in.
If your app requires the user to log in with a password, you should check the forgotten password flow works correctly:
- Install the app.
- Create an account.
- Log out.
- Click on 'Forgotten Password'.
- Check your email – a link should be sent to create a new password.
- Create a new password and sign in.
Note:
Plaintext passwords should not be kept or sent in any scenario.
If your app requires Wix Stores, Wix Bookings etc., then use the Get App Instance API (installedWixApps
field) to make sure that the user has Wix Stores installed on their site.
If they don't, then please create a flow that lets the user know they need Wix Stores to use your app (a message saying so, etc.).
You should implement the review modal in your app flow – this helps to gather more reviews for your app, which can help with its success.
A duplication is effectively a new install of your app, but users skip the consent flow. This might mean that users access the app from a new instanceId without a refresh token.
- Duplicate your test site with your app installed on it.
- When your app endpoint is called, check if the instance parameter has an
originInstanceId
property. If it does, this means that the app is being copied from another site.
- See the
originInstanceId
in the App Instance Installed Webhook.
- Show a screen prompting users to go through the app installer again so that you can get the refresh token needed to complete the installation flow.
Once you've gone through everything in this list, you can submit your app for review and a member of our team will let you know if anything needs fixing before we publish your app.