Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Mercaline2024/Ecomdrop-ia-connector-2/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Ecomdrop IA Connector is a Shopify App Store app that integrates seamlessly with your Shopify store. It uses Shopify’s modern App Bridge and OAuth 2.0 for secure authentication and access to your store data.Installation
Installing the App
The app is distributed through Shopify App Store. During development, you can install it via a custom development link provided by your developer.
OAuth Authentication Flow
The app uses Shopify’s OAuth 2.0 flow for secure authentication:Authentication Endpoints
API Scopes
The app requests these API scopes to function properly:Read Scopes
Read product data, variants, and inventory levels
Access order information for Ecomdrop workflow triggers
Read customer data included in orders (requires app approval)
Access theme information for theme management features
Write Scopes
Create and update products when importing from Dropi
Update order tags based on Ecomdrop processing status
Install and configure themes programmatically
Shopify Admin API
The app uses Shopify Admin API version 2025-10 (October 2025):GraphQL API Access
Most operations use GraphQL for efficiency:Authenticated Requests
The app authenticates all admin requests:Webhooks
The app registers webhooks to receive real-time notifications:Registered Webhooks
Triggered when a new order is created. Used to send order data to Ecomdrop flows.Endpoint:
/webhooks/orders/createTriggered when a checkout is created (abandoned cart). Can trigger Ecomdrop flows.Endpoint:
/webhooks/checkouts/createTriggered when the app is uninstalled. Used for cleanup.Endpoint:
/webhooks/app/uninstalledTriggered when app scopes are updated. Used to refresh permissions.Endpoint:
/webhooks/app/scopes_updateWebhook Authentication
Webhooks are authenticated using Shopify’s signature verification:Webhook Payload Format
Webhooks use GraphQL format:Webhooks must respond within 5 seconds. Long-running tasks should be queued for background processing.
Session Storage
Sessions are stored in MySQL using Prisma:Session Types
Offline Sessions- Format:
offline_{shop} - Long-lived access tokens
- Used for background tasks and webhooks
- Never expire unless app is uninstalled
- Format:
{shop}_{userId}_{sessionId} - Short-lived, user-specific
- Used for user-initiated actions
- Expire after 24 hours
App Bridge Integration
The app uses Shopify App Bridge for embedded app functionality:App Bridge Features
- Navigation - Seamless navigation within Shopify Admin
- Toast Messages - Native Shopify toast notifications
- Modal Dialogs - Shopify-styled modals
- Title Bar - Custom app title bar with actions
- Loading - App loading states
Database Schema
The app stores configuration in MySQL:Testing Webhooks
During development, test webhooks using Shopify CLI:Test webhooks use sample data. Use real orders from your development store for full testing.
App Distribution
The app is configured for App Store distribution:- Available to all Shopify merchants
- Subject to Shopify’s app review process
- Requires compliance with app requirements
- May require approval for protected scopes
Rate Limits
Shopify enforces API rate limits:REST API Limits
- Standard: 2 requests/second
- Plus: 4 requests/second
GraphQL Limits
- Points-based system: 50 points/second
- Queries cost different points based on complexity
- The app automatically retries rate-limited requests
Data Privacy
The app complies with Shopify’s data requirements:- Customer Data - Protected and requires explicit approval
- GDPR Compliance - Handles data deletion requests
- Data Retention - Stores only necessary data
- Encryption - Sensitive data encrypted at rest
Privacy Webhooks
Shopify may send privacy-related webhooks:customers/data_request- Customer data access requestcustomers/redact- Customer data deletion requestshop/redact- Store data deletion (after uninstall)
Implement handlers for privacy webhooks to comply with GDPR and data protection regulations.
Troubleshooting
App won't install
App won't install
Possible Causes:
- Invalid API credentials
- Incorrect app URL
- Development store expired
- Verify
SHOPIFY_API_KEYandSHOPIFY_API_SECRETin.env - Check
SHOPIFY_APP_URLis accessible - Ensure development store is active
Session errors after install
Session errors after install
Cause: Database not initialized or session storage issueSolution:
Webhooks not received
Webhooks not received
Possible Causes:
- Webhook not registered
- App URL not accessible
- Ngrok tunnel expired (development)
- Check webhook registration in Shopify Partners dashboard
- Verify app is accessible from Shopify servers
- Restart
shopify app devto refresh tunnel
Protected data access denied
Protected data access denied
Cause: App not approved for protected customer dataSolution:
Submit app for review in Shopify Partners dashboard. Some features will be limited until approval.
Code Reference
Shopify integration code locations:- App Configuration:
app/shopify.server.ts:10 - OAuth Handler:
app/routes/auth.$.tsx:6 - Webhook Handlers:
app/routes/webhooks.*.tsx - Admin API Client: Available via
authenticate.admin()
Best Practices
- Use Offline Tokens - For background tasks and webhooks
- Handle Rate Limits - Implement exponential backoff
- Validate Webhooks - Always verify webhook signatures
- GraphQL over REST - More efficient for complex queries
- Cache Sessions - Reduce database lookups
- Error Handling - Gracefully handle API errors
- Monitor Usage - Track API call volume and limits
Support
For Shopify-specific issues:- Shopify Partners Support - For app installation and configuration issues
- Shopify Dev Forums - Community help with API and integration questions
- App Logs - Check server logs for detailed error messages
- Shopify Status - Check status.shopify.com for API outages