UNPKG

n8n-nodes-salla

Version:

n8n node for Salla.sa e-commerce platform integration with OAuth2.0

556 lines (540 loc) 15.6 kB
// Field definitions for Salla API operations const getOrderFields = () => [ // Order ID field for get/update/delete operations { displayName: 'Order ID', name: 'orderId', type: 'string', required: true, displayOptions: { show: { resource: ['orders'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The ID of the order', }, // Mandatory fields for create order { displayName: 'Customer ID', name: 'customerId', type: 'number', required: true, displayOptions: { show: { resource: ['orders'], operation: ['create'], }, }, default: 0, description: 'ID of the customer placing the order', }, { displayName: 'Items', name: 'items', type: 'collection', typeOptions: { multipleValues: true, }, displayOptions: { show: { resource: ['orders'], operation: ['create'], }, }, default: {}, options: [ { displayName: 'Product ID', name: 'product_id', type: 'number', default: 0, description: 'Product ID', }, { displayName: 'Quantity', name: 'quantity', type: 'number', default: 1, description: 'Quantity of the product', }, ], description: 'Order items', }, // Optional fields for orders { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', displayOptions: { show: { resource: ['orders'], operation: ['create', 'update'], }, }, default: {}, options: [ { displayName: 'Payment Method', name: 'payment_method', type: 'string', default: '', description: 'Payment method for the order', }, { displayName: 'Shipping Method', name: 'shipping_method', type: 'string', default: '', description: 'Shipping method for the order', }, { displayName: 'Notes', name: 'notes', type: 'string', default: '', description: 'Order notes', }, { displayName: 'Currency', name: 'currency', type: 'string', default: 'SAR', description: 'Order currency', }, ], description: 'Additional order options', }, ]; const getProductFields = () => [ // Product ID field { displayName: 'Product ID', name: 'productId', type: 'string', required: true, displayOptions: { show: { resource: ['products'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The ID of the product', }, // Mandatory fields for create product { displayName: 'Product Name', name: 'name', type: 'string', required: true, displayOptions: { show: { resource: ['products'], operation: ['create'], }, }, default: '', description: 'Name of the product', }, { displayName: 'Price', name: 'price', type: 'number', required: true, displayOptions: { show: { resource: ['products'], operation: ['create'], }, }, default: 0, description: 'Product price', }, // Optional fields for products { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', displayOptions: { show: { resource: ['products'], operation: ['create', 'update'], }, }, default: {}, options: [ { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Product description', }, { displayName: 'SKU', name: 'sku', type: 'string', default: '', description: 'Product SKU', }, { displayName: 'Category ID', name: 'category_id', type: 'number', default: 0, description: 'Category ID', }, { displayName: 'Weight', name: 'weight', type: 'number', default: 0, description: 'Product weight', }, { displayName: 'Status', name: 'status', type: 'options', options: [ { name: 'Active', value: 'active' }, { name: 'Inactive', value: 'inactive' }, { name: 'Draft', value: 'draft' }, ], default: 'active', description: 'Product status', }, { displayName: 'Quantity', name: 'quantity', type: 'number', default: 0, description: 'Product quantity', }, ], description: 'Additional product options', }, ]; const getCustomerFields = () => [ // Customer ID field { displayName: 'Customer ID', name: 'customerId', type: 'string', required: true, displayOptions: { show: { resource: ['customers'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The ID of the customer', }, // Mandatory fields for create customer { displayName: 'First Name', name: 'first_name', type: 'string', required: true, displayOptions: { show: { resource: ['customers'], operation: ['create'], }, }, default: '', description: 'Customer first name', }, { displayName: 'Last Name', name: 'last_name', type: 'string', required: true, displayOptions: { show: { resource: ['customers'], operation: ['create'], }, }, default: '', description: 'Customer last name', }, { displayName: 'Email', name: 'email', type: 'string', required: true, displayOptions: { show: { resource: ['customers'], operation: ['create'], }, }, default: '', description: 'Customer email address', }, // Optional fields for customers { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', displayOptions: { show: { resource: ['customers'], operation: ['create', 'update'], }, }, default: {}, options: [ { displayName: 'Phone', name: 'phone', type: 'string', default: '', description: 'Customer phone number', }, { displayName: 'Date of Birth', name: 'date_of_birth', type: 'string', default: '', description: 'Customer date of birth (YYYY-MM-DD)', }, { displayName: 'Gender', name: 'gender', type: 'options', options: [ { name: 'Male', value: 'male' }, { name: 'Female', value: 'female' }, ], default: 'male', description: 'Customer gender', }, { displayName: 'Group ID', name: 'group_id', type: 'number', default: 0, description: 'Customer group ID', }, ], description: 'Additional customer options', }, ]; const getCategoryFields = () => [ // Category ID field { displayName: 'Category ID', name: 'categoryId', type: 'string', required: true, displayOptions: { show: { resource: ['categories'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The ID of the category', }, // Mandatory fields for create category { displayName: 'Category Name', name: 'name', type: 'string', required: true, displayOptions: { show: { resource: ['categories'], operation: ['create'], }, }, default: '', description: 'Name of the category', }, // Optional fields for categories { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', displayOptions: { show: { resource: ['categories'], operation: ['create', 'update'], }, }, default: {}, options: [ { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Category description', }, { displayName: 'Parent ID', name: 'parent_id', type: 'number', default: 0, description: 'Parent category ID', }, { displayName: 'Status', name: 'status', type: 'options', options: [ { name: 'Active', value: 'active' }, { name: 'Inactive', value: 'inactive' }, ], default: 'active', description: 'Category status', }, { displayName: 'Sort Order', name: 'sort_order', type: 'number', default: 0, description: 'Category sort order', }, ], description: 'Additional category options', }, ]; const getCouponFields = () => [ // Coupon ID field { displayName: 'Coupon ID', name: 'couponId', type: 'string', required: true, displayOptions: { show: { resource: ['coupons'], operation: ['get', 'update', 'delete'], }, }, default: '', description: 'The ID of the coupon', }, // Mandatory fields for create coupon { displayName: 'Coupon Code', name: 'code', type: 'string', required: true, displayOptions: { show: { resource: ['coupons'], operation: ['create'], }, }, default: '', description: 'Coupon code', }, { displayName: 'Discount Type', name: 'discount_type', type: 'options', required: true, options: [ { name: 'Fixed Amount', value: 'fixed' }, { name: 'Percentage', value: 'percentage' }, ], displayOptions: { show: { resource: ['coupons'], operation: ['create'], }, }, default: 'fixed', description: 'Type of discount', }, { displayName: 'Discount Value', name: 'discount_value', type: 'number', required: true, displayOptions: { show: { resource: ['coupons'], operation: ['create'], }, }, default: 0, description: 'Discount value (amount or percentage)', }, // Optional fields for coupons { displayName: 'Additional Options', name: 'additionalOptions', type: 'collection', placeholder: 'Add Option', displayOptions: { show: { resource: ['coupons'], operation: ['create', 'update'], }, }, default: {}, options: [ { displayName: 'Description', name: 'description', type: 'string', default: '', description: 'Coupon description', }, { displayName: 'Minimum Amount', name: 'minimum_amount', type: 'number', default: 0, description: 'Minimum order amount to use coupon', }, { displayName: 'Maximum Discount', name: 'maximum_discount', type: 'number', default: 0, description: 'Maximum discount amount', }, { displayName: 'Usage Limit', name: 'usage_limit', type: 'number', default: 0, description: 'Usage limit for the coupon', }, { displayName: 'Start Date', name: 'start_date', type: 'string', default: '', description: 'Coupon start date (YYYY-MM-DD)', }, { displayName: 'End Date', name: 'end_date', type: 'string', default: '', description: 'Coupon end date (YYYY-MM-DD)', }, ], description: 'Additional coupon options', }, ]; module.exports = { getOrderFields, getProductFields, getCustomerFields, getCategoryFields, getCouponFields, };