1. Permissions
Your app should function perfectly with the minimum number of scopes. Don’t request all permissions during development.
- [ ] Every requested scope in your Zid Partner Dashboard should correspond to a specific feature. If you can't explain why you need
products:write, remove it.
- [ ] Read-Only & Write: If the app only displays data, ensure you use
:read scopes only.
2. OAuth & Setup
- [ ] OAuth Flow: The integration process is triggered smoothly when the merchant clicks "Activate App".
- [ ] Token Storage: The
access_token and refresh_token are stored securely and isolated for each unique store.
- [ ] Open the app: When the merchant clicks (open app) button, it opens a valid link.
- [ ] Embedded apps: If your app UI sits inside ZID dashboard, it should be valid and responsive.
- [ ] Make sure you are testing the app on Production Environment, setting all keys, URLs , OAuth server, webhook listeners, etc. to production and not the development or staging.
- [ ] Uninstallation: The merchant can uninstall the app smoothly.
- [ ] Reinstall: The merchant can reinstall the app after deactivating it.
- [ ] No Hardcoded data: Search your code for any static data (e.g.,
store_id = 123 , category_id = 14 , store_url= xyz.zid.store, currency= SAR, etc.) and let it be dynamic related to the merchant’s data.
3. Data Sync & Webhooks
Please note that not all apps have same scenarios, so check the points related to your logic. This is only a guide list.
3.1 Products common cases:
If your app deals with products, check the following points:
- [ ] Product Fetching: If you fetch products’ list once activating the app, make sure all product details (Name, Description, Price, Images) sync and display correctly within your app.
- [ ] Check product’s with Variants scenarios.
- [ ] Test with data in Arabic & English.
- [ ] Does your app crash if one of the products have some fields as null?
- [ ] Can the app change product’s price, details, etc. on ZID side? If so, check the changes are pushed correctly.
- [ ] Inventory Management: If your app modifies stock levels, check the updates pushed to Zid are accurate (increment, decrement).
- [ ] When the product updates on ZID side, is it reflected on your end? If so, check the reflection.
3.2 Orders common cases:
If your app deals with Orders, check the following points.
- [ ] Orders Fetching: If you fetch orders’ list once activating the app, make sure orders with different shipping and payment statuses sync and display correctly within your app.
- [ ] New Orders: Check you receive
create order webhook when a new order is created on ZID.
- [ ] Order Status update: Check you receive
order status update webhook when the order’s status changes on Zid (e.g., moving from "In Preparation" to "Shipped").
- [ ] Preparing
- [ ] Ready
- [ ] In delivery
- [ ] Shipped
- [ ] Cancelled]