n8n-nodes-indiamart 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -4
- package/dist/credentials/IndiaMartApi.credentials.d.ts +12 -0
- package/dist/credentials/IndiaMartApi.credentials.js +51 -0
- package/dist/credentials/IndiaMartApi.credentials.js.map +1 -0
- package/dist/nodes/IndiaMArtPostRequirement/IndiaMArtPostRequirement.node.js +92 -77
- package/dist/nodes/IndiaMArtPostRequirement/IndiaMArtPostRequirement.node.js.map +1 -1
- package/dist/nodes/icon.svg +93 -93
- package/dist/package.json +3 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ IndiaMART is India's largest B2B marketplace, connecting buyers and suppliers ac
|
|
|
10
10
|
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
11
11
|
|
|
12
12
|
[Installation](#installation)
|
|
13
|
+
[Credentials](#credentials)
|
|
13
14
|
[Operations](#operations)
|
|
14
15
|
[Compatibility](#compatibility)
|
|
15
16
|
[Usage](#usage)
|
|
@@ -19,6 +20,15 @@ IndiaMART is India's largest B2B marketplace, connecting buyers and suppliers ac
|
|
|
19
20
|
|
|
20
21
|
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
21
22
|
|
|
23
|
+
## Credentials
|
|
24
|
+
|
|
25
|
+
To power your IndiaMART n8n node, you need an API key. Follow these simple steps to get your credentials:
|
|
26
|
+
|
|
27
|
+
1. **Visit the Credentials Page**: Go to [indiamart.com/new/gamma/n8n_index.php](https://www.indiamart.com/new/gamma/n8n_index.php).
|
|
28
|
+
2. **Enter Details**: Provide your registered mobile number or email address.
|
|
29
|
+
3. **Verify OTP**: Enter the one-time password (OTP) sent to your registered contact.
|
|
30
|
+
4. **Get Credentials**: Copy your unique key and use it to authenticate your n8n node.
|
|
31
|
+
|
|
22
32
|
## Operations
|
|
23
33
|
|
|
24
34
|
This package includes the following nodes:
|
|
@@ -71,7 +81,7 @@ The node returns an object with:
|
|
|
71
81
|
|
|
72
82
|
- **products**: Array of product objects with details
|
|
73
83
|
- **name**: Product name
|
|
74
|
-
- **number**:
|
|
84
|
+
- **number**: Mobile number of the company/supplier
|
|
75
85
|
- **companyname**: Company/supplier name
|
|
76
86
|
- **image**: Product image URL
|
|
77
87
|
- **keyword**: The search keyword used
|
|
@@ -86,9 +96,17 @@ The IndiaMART Post Requirement node requires the following parameters:
|
|
|
86
96
|
- The name of the product for which you're posting a requirement
|
|
87
97
|
- Examples: "Pave Diamond Pendant", "Office Chairs", "Electronics"
|
|
88
98
|
|
|
89
|
-
**
|
|
90
|
-
-
|
|
91
|
-
-
|
|
99
|
+
**Quantity** (required)
|
|
100
|
+
- The quantity of the product required
|
|
101
|
+
- Example: 10
|
|
102
|
+
|
|
103
|
+
**Quantity Unit** (required)
|
|
104
|
+
- The unit of measurement for the quantity
|
|
105
|
+
- Examples: "Piece", "Kg", "Ton", "Box"
|
|
106
|
+
|
|
107
|
+
**Additional Requirements** (optional)
|
|
108
|
+
- Any specific requirements, preferences, or details
|
|
109
|
+
- Example: "Need high quality finish"
|
|
92
110
|
|
|
93
111
|
#### Output
|
|
94
112
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties, ICredentialTestRequest } from 'n8n-workflow';
|
|
2
|
+
export declare class IndiaMartApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
icon: {
|
|
7
|
+
readonly light: "file:indiamart.svg";
|
|
8
|
+
readonly dark: "file:indiamart.svg";
|
|
9
|
+
};
|
|
10
|
+
properties: INodeProperties[];
|
|
11
|
+
test: ICredentialTestRequest;
|
|
12
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndiaMartApi = void 0;
|
|
4
|
+
class IndiaMartApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'indiaMartApi';
|
|
7
|
+
this.displayName = 'IndiaMART API';
|
|
8
|
+
this.documentationUrl = 'https://github.com/Gyaneshwar-Mongha/n8n-indiamart';
|
|
9
|
+
this.icon = { light: 'file:indiamart.svg', dark: 'file:indiamart.svg' };
|
|
10
|
+
this.properties = [
|
|
11
|
+
{
|
|
12
|
+
displayName: 'Secret Key',
|
|
13
|
+
name: 'secretKey',
|
|
14
|
+
type: 'string',
|
|
15
|
+
typeOptions: {
|
|
16
|
+
password: true,
|
|
17
|
+
},
|
|
18
|
+
default: '',
|
|
19
|
+
required: true,
|
|
20
|
+
description: 'The secret key for IndiaMART API',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
this.test = {
|
|
24
|
+
request: {
|
|
25
|
+
baseURL: 'https://export.indiamart.com',
|
|
26
|
+
url: '/api/credGenRead/',
|
|
27
|
+
method: 'POST',
|
|
28
|
+
headers: {
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
},
|
|
31
|
+
body: {
|
|
32
|
+
secretkey: '={{$credentials.secretKey}}',
|
|
33
|
+
},
|
|
34
|
+
json: true,
|
|
35
|
+
returnFullResponse: true,
|
|
36
|
+
},
|
|
37
|
+
rules: [
|
|
38
|
+
{
|
|
39
|
+
type: 'responseSuccessBody',
|
|
40
|
+
properties: {
|
|
41
|
+
key: 'glid',
|
|
42
|
+
message: 'Secret key verified successfully!',
|
|
43
|
+
value: 'glid',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.IndiaMartApi = IndiaMartApi;
|
|
51
|
+
//# sourceMappingURL=IndiaMartApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndiaMartApi.credentials.js","sourceRoot":"","sources":["../../credentials/IndiaMartApi.credentials.ts"],"names":[],"mappings":";;;AAMA,MAAa,YAAY;IAAzB;QACI,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,eAAe,CAAC;QAC9B,qBAAgB,GAAG,oDAAoD,CAAC;QACxE,SAAI,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAW,CAAC;QAC5E,eAAU,GAAsB;YAC5B;gBACI,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACT,QAAQ,EAAE,IAAI;iBACjB;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,kCAAkC;aAClD;SACJ,CAAC;QAGF,SAAI,GAA2B;YAC3B,OAAO,EAAE;gBACL,OAAO,EAAE,8BAA8B;gBACvC,GAAG,EAAE,mBAAmB;gBACxB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;iBACrC;gBACD,IAAI,EAAE;oBACF,SAAS,EAAE,6BAA6B;iBAC3C;gBACD,IAAI,EAAE,IAAI;gBAEV,kBAAkB,EAAE,IAAI;aAC3B;YAED,KAAK,EAAE;gBACH;oBACI,IAAI,EAAE,qBAAqB;oBAC3B,UAAU,EAAE;wBACR,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,mCAAmC;wBAC5C,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ;SACJ,CAAC;IACN,CAAC;CAAA;AA/CD,oCA+CC"}
|
|
@@ -14,6 +14,12 @@ class IndiaMArtPostRequirement {
|
|
|
14
14
|
defaults: {
|
|
15
15
|
name: 'IndiaMART Post Requirement',
|
|
16
16
|
},
|
|
17
|
+
credentials: [
|
|
18
|
+
{
|
|
19
|
+
name: 'indiaMartApi',
|
|
20
|
+
required: true,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
17
23
|
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
18
24
|
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
19
25
|
usableAsTool: true,
|
|
@@ -28,106 +34,115 @@ class IndiaMArtPostRequirement {
|
|
|
28
34
|
required: true,
|
|
29
35
|
},
|
|
30
36
|
{
|
|
31
|
-
displayName: '
|
|
32
|
-
name: '
|
|
37
|
+
displayName: 'Quantity',
|
|
38
|
+
name: 'quantity',
|
|
39
|
+
type: 'number',
|
|
40
|
+
default: 1,
|
|
41
|
+
placeholder: '10',
|
|
42
|
+
description: 'Quantity required (must be greater than 0)',
|
|
43
|
+
required: true,
|
|
44
|
+
typeOptions: {
|
|
45
|
+
minValue: 1,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
displayName: 'Quantity Unit',
|
|
50
|
+
name: 'quantityUnit',
|
|
51
|
+
type: 'string',
|
|
52
|
+
default: 'Piece',
|
|
53
|
+
placeholder: 'Piece, Kg, Ton, Box',
|
|
54
|
+
description: 'Unit of measurement for the quantity',
|
|
55
|
+
required: true,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
displayName: 'Additional Requirements',
|
|
59
|
+
name: 'additionalRequirements',
|
|
33
60
|
type: 'string',
|
|
61
|
+
typeOptions: {
|
|
62
|
+
rows: 4,
|
|
63
|
+
},
|
|
34
64
|
default: '',
|
|
35
|
-
placeholder: '
|
|
36
|
-
description: '
|
|
37
|
-
required: true,
|
|
65
|
+
placeholder: 'Any specific requirements, preferences, or details...',
|
|
66
|
+
description: 'Additional information about your requirement',
|
|
38
67
|
},
|
|
39
68
|
],
|
|
40
69
|
};
|
|
41
70
|
}
|
|
42
71
|
async execute() {
|
|
43
|
-
var _a;
|
|
44
72
|
const items = this.getInputData();
|
|
45
73
|
let item;
|
|
46
74
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
47
75
|
try {
|
|
48
76
|
const productName = this.getNodeParameter('productName', itemIndex, '');
|
|
49
|
-
const
|
|
77
|
+
const credentials = await this.getCredentials('indiaMartApi');
|
|
78
|
+
const secretKey = credentials.secretKey;
|
|
79
|
+
const quantity = this.getNodeParameter('quantity', itemIndex, 1);
|
|
80
|
+
const quantityUnit = this.getNodeParameter('quantityUnit', itemIndex, 'Piece');
|
|
81
|
+
const additionalRequirements = this.getNodeParameter('additionalRequirements', itemIndex, '');
|
|
50
82
|
item = items[itemIndex];
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
url: 'https://dir.indiamart.com/api/fdbklogin',
|
|
54
|
-
qs: {
|
|
55
|
-
username: contact,
|
|
56
|
-
modid: 'DIR',
|
|
57
|
-
glusr_usr_countryname: 'India',
|
|
58
|
-
screen_name: 'BL/Enq Forms',
|
|
59
|
-
create_user: 1,
|
|
60
|
-
format: 'JSON',
|
|
61
|
-
iso: 'IN',
|
|
62
|
-
},
|
|
63
|
-
headers: {
|
|
64
|
-
'User-Agent': 'n8n-nodes-indiamart',
|
|
65
|
-
Accept: 'application/json',
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
if (!loginResponse || loginResponse.code !== 200) {
|
|
69
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'IndiaMART login failed', {
|
|
70
|
-
itemIndex,
|
|
71
|
-
});
|
|
83
|
+
if (quantity <= 0) {
|
|
84
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Quantity must be greater than 0', { itemIndex });
|
|
72
85
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'glid not found in login response', {
|
|
76
|
-
itemIndex,
|
|
77
|
-
});
|
|
86
|
+
if (quantityUnit && !/^[a-zA-Z\s]+$/.test(quantityUnit)) {
|
|
87
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Quantity unit must contain only alphabets (a-z, A-Z) and spaces', { itemIndex });
|
|
78
88
|
}
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
const apiUrl = 'https://export.indiamart.com/cgi/postRequirement.php';
|
|
90
|
+
const payload = {
|
|
91
|
+
productName,
|
|
92
|
+
secretKey,
|
|
93
|
+
quantity,
|
|
94
|
+
quantityUnit,
|
|
95
|
+
additionalRequirements,
|
|
96
|
+
};
|
|
97
|
+
try {
|
|
98
|
+
const response = await this.helpers.httpRequest({
|
|
99
|
+
method: 'POST',
|
|
100
|
+
url: apiUrl,
|
|
101
|
+
body: payload,
|
|
102
|
+
headers: {
|
|
103
|
+
'Content-Type': 'application/json',
|
|
104
|
+
},
|
|
105
|
+
json: true,
|
|
106
|
+
returnFullResponse: true,
|
|
107
|
+
ignoreHttpStatusErrors: true,
|
|
93
108
|
});
|
|
109
|
+
const responseBody = response.body;
|
|
110
|
+
const bodyString = typeof responseBody === 'string' ? responseBody : JSON.stringify(responseBody);
|
|
111
|
+
if (bodyString.includes('Invalid or expired secret key')) {
|
|
112
|
+
item.json = {
|
|
113
|
+
message: 'Invalid or expired secret key',
|
|
114
|
+
};
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (response.statusCode >= 400) {
|
|
118
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Post Requirement failed: ${JSON.stringify(response.body)}`, {
|
|
119
|
+
itemIndex,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
94
122
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
body: {
|
|
101
|
-
category_type: 'P',
|
|
102
|
-
curr_page_url: '',
|
|
103
|
-
glcat_mcat_id: mcatid,
|
|
104
|
-
iso: 'IN',
|
|
105
|
-
modref_type: 'product',
|
|
106
|
-
prod_serv: 'P',
|
|
107
|
-
rfq_cat_id: catid,
|
|
108
|
-
rfq_query_ref_text: 'n8n',
|
|
109
|
-
rfq_ref_url: '',
|
|
110
|
-
rfq_sender_id: rfq_sender_id,
|
|
111
|
-
rfq_subject: productName,
|
|
112
|
-
},
|
|
113
|
-
headers: {
|
|
114
|
-
'User-Agent': 'n8n-nodes-indiamart',
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
const hasValidOfr = postResponse.ofr && !isNaN(Number(postResponse.ofr));
|
|
118
|
-
if (hasValidOfr) {
|
|
119
|
-
item.json = {};
|
|
120
|
-
item.json.message = 'Successfully posted requirement on IndiaMART';
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Could not post requirement on IndiaMART', {
|
|
123
|
+
catch (error) {
|
|
124
|
+
if (error instanceof n8n_workflow_1.NodeOperationError) {
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Post Requirement failed: ${error.message}`, {
|
|
124
128
|
itemIndex,
|
|
125
129
|
});
|
|
126
130
|
}
|
|
131
|
+
item.json = {
|
|
132
|
+
message: 'Successfully posted requirement on IndiaMART',
|
|
133
|
+
};
|
|
127
134
|
}
|
|
128
135
|
catch (error) {
|
|
129
136
|
if (this.continueOnFail()) {
|
|
130
|
-
items.push({
|
|
137
|
+
items.push({
|
|
138
|
+
json: {
|
|
139
|
+
...this.getInputData(itemIndex)[0].json,
|
|
140
|
+
success: false,
|
|
141
|
+
error: error.message,
|
|
142
|
+
},
|
|
143
|
+
error,
|
|
144
|
+
pairedItem: itemIndex
|
|
145
|
+
});
|
|
131
146
|
}
|
|
132
147
|
else {
|
|
133
148
|
if (error.context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndiaMArtPostRequirement.node.js","sourceRoot":"","sources":["../../../nodes/IndiaMArtPostRequirement/IndiaMArtPostRequirement.node.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IndiaMArtPostRequirement.node.js","sourceRoot":"","sources":["../../../nodes/IndiaMArtPostRequirement/IndiaMArtPostRequirement.node.ts"],"names":[],"mappings":"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"}
|