UNPKG

n8n-nodes-zid-beta

Version:

BETA; n8n custom nodes for integrating with the Zid API (orders, products, customers, etc.)

279 lines (207 loc) 6.75 kB
# n8n-nodes-zid Custom n8n nodes for integrating with the Zid API. This package provides trigger and action nodes to automate workflows with Zid's e-commerce platform. ## Features - **OAuth2 Authentication**: Secure authentication using Zid's OAuth2 flow with dual-token support - **Trigger Nodes**: Automatically trigger workflows on new orders, order updates, and new customers - **Action Nodes**: Perform operations on orders, products, and customers - **Error Handling**: Comprehensive error handling with specific Zid API error responses - **Pagination Support**: Automatic handling of paginated API responses - **Rate Limiting**: Built-in respect for Zid API rate limits ## Installation ### Method 1: Global npm Installation (Recommended) ```bash npm install -g n8n-nodes-zid-beta@0.1.1 ``` ### Method 2: Docker Installation ```bash # Pull the n8n image docker pull n8nio/n8n # Install the package in a running container docker exec -it <container_name> npm install -g n8n-nodes-zid-beta@0.1.1 # Or build a custom image FROM n8nio/n8n RUN npm install -g n8n-nodes-zid-beta@0.1.1 ``` ### Method 3: Development Installation ```bash # Clone and build git clone <repository> cd n8n-nodes-zid npm install npm run build npm pack # Install the package npm install -g n8n-nodes-zid-beta-0.1.1.tgz ``` ## OAuth2 Setup This package implements Zid's OAuth2 authorization flow with dual-token authentication. See [OAUTH2_IMPLEMENTATION.md](./OAUTH2_IMPLEMENTATION.md) for detailed implementation information. ### Quick Setup 1. **Create Zid App**: Register your application in the [Zid Partner Dashboard](https://partners.zid.sa) 2. **Get Credentials**: Note your Client ID and Client Secret 3. **Configure URLs**: Set up the required URLs in your Zid app 4. **Configure n8n**: - Go to Settings → Credentials - Add new "Zid OAuth2 API" credential - Enter your Client ID and Client Secret - Complete the OAuth2 flow ### Partner Dashboard URL Configuration When creating your Zid app, configure these URLs: 1. **Application URL**: Your n8n instance base URL - Example: `https://your-n8n.com` 2. **Redirect URL**: n8n OAuth2 redirect endpoint - Example: `https://your-n8n.com/rest/oauth2-credential/callback` 3. **Callback URL**: Same as redirect URL - Example: `https://your-n8n.com/rest/oauth2-credential/callback` > **Note**: The exact callback URL format may vary depending on your n8n installation. Check your n8n instance's OAuth2 callback URL pattern. ### Required Tokens Zid requires two tokens for API access: - **Authorization Token**: Bearer token for API access - **X-Manager-Token**: Store-specific access token Both tokens are automatically handled by the OAuth2 credential. ### Scope Configuration Configure required scopes in your Zid Partner Dashboard: - `read:orders` - Read order data - `write:orders` - Update order information - `read:products` - Read product data - `write:products` - Create/update products - `read:customers` - Read customer data - `write:customers` - Create/update customers ## Available Nodes ### Trigger Nodes #### Zid Order Trigger - Triggers on new orders or order status updates - Configurable polling interval (1-60 minutes) - Status filtering support - Flood prevention on first run #### Zid Customer Trigger - Triggers on new customer registrations - Configurable polling interval (1-60 minutes) - Automatic duplicate prevention ### Action Nodes #### Zid (Main Action Node) Supports three resources with multiple operations: **Orders** - Get All Orders - Get Order by ID - Update Order **Products** - Get All Products - Get Product by ID - Create Product - Update Product **Customers** - Get All Customers - Get Customer by ID - Create Customer - Update Customer ## API Reference ### Authentication Headers All API requests include: ``` Authorization: Bearer <authorization_token> X-Manager-Token: <access_token> Content-Type: application/json Accept: application/json ``` ### Base URL ``` https://api.zid.sa/v1 ``` ### Error Handling The package handles specific Zid API errors: - **401**: Authentication errors - **403**: Authorization/permission errors - **429**: Rate limit exceeded - **Network errors**: Connection issues ## Usage Examples ### Example 1: New Order Email Notification ```json { "nodes": [ { "name": "Zid Order Trigger", "type": "n8n-nodes-zid.zidOrderTrigger", "parameters": { "triggerOn": "newOrder", "pollInterval": 5 } }, { "name": "Send Email", "type": "n8n-nodes-base.emailSend", "parameters": { "subject": "New Order: {{$json.id}}", "text": "Order total: {{$json.total}}" } } ] } ``` ### Example 2: Product Sync ```json { "nodes": [ { "name": "Get Products", "type": "n8n-nodes-zid.zid", "parameters": { "resource": "product", "operation": "getAll", "limit": 50 } } ] } ``` ## Development ### Building ```bash npm install npm run build ``` ### Testing ```bash npm test ``` ### Linting ```bash npm run lint npm run lint:fix ``` ## Troubleshooting ### Installation Issues 1. **"Package does not contain any nodes"** - Ensure you're using version 0.1.1 or later - Restart n8n after installation 2. **OAuth2 Authentication Fails** - Verify Client ID and Client Secret - Check redirect URLs in Partner Dashboard - Ensure both tokens are present 3. **API Errors** - Check token expiration (tokens last 1 year) - Verify required scopes are granted - Check API rate limits ### Debug Steps 1. Check n8n logs for detailed error messages 2. Verify credentials in n8n Settings → Credentials 3. Test API access with curl using the same tokens 4. Check Zid Partner Dashboard for app status ## Version History - **0.1.1**: Updated OAuth2 implementation with dual-token support - **0.1.0**: Initial release with basic OAuth2 support ## Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests 5. Submit a pull request ## License MIT License - see LICENSE file for details. ## Support - [Zid API Documentation](https://docs.zid.sa) - [Zid Partner Dashboard](https://partners.zid.sa) - [n8n Community](https://community.n8n.io) ## Related Documentation - [OAuth2 Implementation Details](./OAUTH2_IMPLEMENTATION.md) - [Installation Guide](./INSTALLATION.md) - [Example Workflows](./examples/)