n8n-nodes-commercetools 0.1.8 → 0.1.10

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.
Files changed (39) hide show
  1. package/README.md +361 -11
  2. package/dist/credentials/CommerceToolsOAuth2Api.credentials.js +30 -0
  3. package/dist/credentials/CommerceToolsOAuth2Api.credentials.js.map +1 -1
  4. package/dist/nodes/Commercetools/Commercetools.node.js.map +1 -1
  5. package/dist/nodes/Commercetools/CommercetoolsTrigger.node.d.ts +19 -0
  6. package/dist/nodes/Commercetools/CommercetoolsTrigger.node.js +57 -0
  7. package/dist/nodes/Commercetools/CommercetoolsTrigger.node.js.map +1 -0
  8. package/dist/nodes/Commercetools/CommercetoolsTrigger.node.json +21 -0
  9. package/dist/nodes/Commercetools/descriptions/Commercetools.description.js +68 -3433
  10. package/dist/nodes/Commercetools/descriptions/Commercetools.description.js.map +1 -1
  11. package/dist/nodes/Commercetools/descriptions/customer.description.d.ts +3 -0
  12. package/dist/nodes/Commercetools/descriptions/customer.description.js +1621 -0
  13. package/dist/nodes/Commercetools/descriptions/customer.description.js.map +1 -0
  14. package/dist/nodes/Commercetools/operations/product.operations.js +2 -2
  15. package/dist/nodes/Commercetools/operations/product.operations.js.map +1 -1
  16. package/dist/nodes/Commercetools/properties/category.properties.d.ts +4 -0
  17. package/dist/nodes/Commercetools/properties/category.properties.js +477 -0
  18. package/dist/nodes/Commercetools/properties/category.properties.js.map +1 -0
  19. package/dist/nodes/Commercetools/properties/product.properties.d.ts +5 -0
  20. package/dist/nodes/Commercetools/properties/product.properties.js +2873 -0
  21. package/dist/nodes/Commercetools/properties/product.properties.js.map +1 -0
  22. package/dist/nodes/Commercetools/properties/subscription.properties.d.ts +2 -0
  23. package/dist/nodes/Commercetools/properties/subscription.properties.js +29 -0
  24. package/dist/nodes/Commercetools/properties/subscription.properties.js.map +1 -0
  25. package/dist/nodes/Commercetools/utils/awsInfra.utils.d.ts +21 -0
  26. package/dist/nodes/Commercetools/utils/awsInfra.utils.js +338 -0
  27. package/dist/nodes/Commercetools/utils/awsInfra.utils.js.map +1 -0
  28. package/dist/nodes/Commercetools/utils/product.utils.d.ts +2 -1
  29. package/dist/nodes/Commercetools/utils/product.utils.js +382 -52
  30. package/dist/nodes/Commercetools/utils/product.utils.js.map +1 -1
  31. package/dist/nodes/Commercetools/utils/subscription.utils.d.ts +12 -0
  32. package/dist/nodes/Commercetools/utils/subscription.utils.js +79 -0
  33. package/dist/nodes/Commercetools/utils/subscription.utils.js.map +1 -0
  34. package/dist/nodes/Commercetools/utils/webhookMethods.utils.d.ts +8 -0
  35. package/dist/nodes/Commercetools/utils/webhookMethods.utils.js +174 -0
  36. package/dist/nodes/Commercetools/utils/webhookMethods.utils.js.map +1 -0
  37. package/dist/package.json +13 -15
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +61 -53
package/README.md CHANGED
@@ -3,7 +3,16 @@
3
3
 
4
4
  # n8n-nodes-commercetools
5
5
 
6
- This repository provides a custom [n8n](https://n8n.io) node for integrating with [Commercetools](https://commercetools.com). It includes all required credentials, node definitions, and utilities to interact with the Commercetools API.
6
+ This repository provides a custom [n8n](https://n8n.io) node for integrating with [Commercetools](https://commercetools.com). It includes all required credentials, node definitions, utilities to interact with the Commercetools API, and **AWS SQS integration with Lambda processing**.
7
+
8
+ ## Features
9
+
10
+ - **Complete Commercetools Integration**: Full support for products, categories, and customers
11
+ - **Webhook Product Trigger**: Native trigger for product events; send directly to n8n webhooks or route through AWS SQS/Lambda using the provided automation scripts
12
+ - **AWS SQS + Lambda**: Scalable, reliable event processing with AWS infrastructure (CloudFormation + helper scripts included)
13
+ - **Event Types**: Product Created, Published, and Deleted events
14
+ - **Monitoring**: CloudWatch alarms and logging for production use
15
+ - **Multi-Environment**: Support for dev, staging, and production deployments
7
16
 
8
17
 
9
18
  ## Quick Start
@@ -17,6 +26,51 @@ npm run dev
17
26
 
18
27
  This will start n8n with the Commercetools node loaded and hot reload enabled.
19
28
 
29
+ ## Webhook Trigger
30
+
31
+ Use the Commercetools Trigger node to receive events directly in n8n.
32
+
33
+ 1. Add the **Commercetools Trigger** node and choose **Webhook** as the destination (use the SQS steps below if you prefer queue delivery).
34
+ 2. Activate your workflow to generate the webhook URL and set the `WEBHOOK_URL` environment variable in your CommerceTools subscription or Lambda deployment so events post to this URL. The URL typically looks like `https://<n8n-host>/webhook/<path>/commercetools-product-events`.
35
+ 3. In CommerceTools, create or update a subscription pointing to that webhook URL and enable the product event types you need (Created, Published, Deleted). If you deploy via Lambda + SQS, ensure the Lambda forwards the payloads to `WEBHOOK_URL` using the provided AWS infrastructure utilities.
36
+
37
+ ## AWS SQS + Lambda Integration
38
+
39
+ For production-grade event processing, this node supports AWS SQS queues with Lambda function processing:
40
+
41
+ ### Quick Deploy
42
+
43
+ ```bash
44
+ # Deploy AWS infrastructure
45
+ cd aws
46
+ ./deploy.sh deploy
47
+
48
+ # Get configuration values
49
+ ./deploy.sh outputs
50
+ ```
51
+
52
+ ### Configure SQS in n8n
53
+
54
+ 1. Add CommerceTools Trigger node to your workflow
55
+ 2. Select **"Amazon SQS"** as destination type
56
+ 3. Configure with deployment outputs:
57
+ - **AWS Region**: Your deployment region
58
+ - **SQS Queue URL**: From deployment outputs
59
+ - **AWS Access Key ID** and **Secret**: Your AWS credentials
60
+ - **Lambda Function Name**: `commercetools-integration-dev-product-processor`
61
+ - **CTP Project Key**: `n8n-ct-integration`
62
+ - **Product Events**: Select `Product Published`
63
+
64
+ ### Benefits of SQS Integration
65
+
66
+ - **Reliability**: Messages are persisted and retried automatically
67
+ - **Scalability**: Lambda scales automatically based on queue depth
68
+ - **Monitoring**: CloudWatch alarms for errors and failed messages
69
+ - **Dead Letter Queue**: Failed messages are preserved for investigation
70
+ - **Cost-Effective**: Pay only for what you use
71
+
72
+ See [aws/README.md](aws/README.md) for detailed configuration and customization options. Additional AWS resources: [AWS_AUTOMATION_PLAN.md](AWS_AUTOMATION_PLAN.md), [AWS_ATTRIBUTE_REFERENCE.md](AWS_ATTRIBUTE_REFERENCE.md), and [AUTOMATIC_SETUP.md](AUTOMATIC_SETUP.md).
73
+
20
74
 
21
75
 
22
76
 
@@ -56,7 +110,7 @@ Below are the main configuration options and parameters available for the Commer
56
110
  - **productId** or **productKey**: ID or key of the product to update.
57
111
  - **version**: Product version (required for updates).
58
112
  - **actions**: Array of update actions (JSON).
59
- - **actionsUi**: UI-based update actions.
113
+ - **updateActions**: UI builder that lets you stack multiple product update actions without hand-writing JSON. These can be combined with the `actions` array if you need to mix UI-built and raw payloads.
60
114
  - **additionalFieldsUpdate**: Optional fields (dataErasure, dryRun, etc.).
61
115
 
62
116
  #### Delete Product / Delete By Key
@@ -73,6 +127,239 @@ Below are the main configuration options and parameters available for the Commer
73
127
  - **binaryPropertyName**: Name of the binary property containing the image.
74
128
  - **additionalFieldsUpload**: Optional fields (variantId, sku, staged, filename, externalUrl, label, customParameters).
75
129
 
130
+
131
+ ### Customer Operation-Specific Parameters
132
+
133
+ #### Authenticate Customer
134
+
135
+ - **email**: Customer's email.
136
+ - **password**: Customer password.
137
+
138
+ #### Authenticate Customer in Store
139
+
140
+ - **storeKey**: Key of the store.
141
+ - **email**: Customer email.
142
+ - **password**: Customer password.
143
+
144
+
145
+ #### Change Customer Password
146
+
147
+ - **customerId**: ID of the customer.
148
+ - **version**: Customer version.
149
+ - **passwordToken**: PasswordToken to authenticate.
150
+ - **newPassword**: New password.
151
+
152
+ #### Change Customer Password in Store
153
+
154
+ - **storeKey**: Store key.
155
+ - **customerId**: ID of the customer.
156
+ - **version**: Customer version.
157
+ - **passwordToken**: PasswordToken to authenticate.
158
+ - **newPassword**: New password.
159
+
160
+ #### Check if Customer Exists
161
+
162
+ - **customerId**: Customer ID.
163
+
164
+ #### Check if Customer Exists by Key
165
+
166
+ - **customerKey**: Customer key.
167
+
168
+ #### Check if Any Customer Matches the Query
169
+
170
+ - **where**: Predicate expression.
171
+ - **additionalFieldsCheckQuery**: Optional parameters (store projection, expand).
172
+
173
+ #### Check if Customer Exists in Store
174
+
175
+ - **storeKey**: Store key.
176
+ - **customerId**: Customer ID.
177
+
178
+ #### Check if Customer Exists in Store by Key
179
+
180
+ - **storeKey**: Store key.
181
+ - **customerKey**: Customer key.
182
+
183
+ #### Check if Any Customer Matches the Query in Store
184
+
185
+ - **storeKey**: Store key.
186
+ - **where**: Predicate filter.
187
+ - **additionalFieldsCheckQueryStore**: Optional parameters.
188
+
189
+ #### Create Customer
190
+
191
+ - **customerDraft**: Customer JSON object (email, firstName, lastName, password, custom, etc.).
192
+ - **additionalFieldsCreate**: Optional fields (expand, localeProjection, etc.).
193
+
194
+ #### Create Email Verification Token
195
+
196
+ - **id**: Customer ID.
197
+ - **version**: Customer version.
198
+
199
+ #### Create Email Verification Token in Store
200
+
201
+ - **storeKey**: Store key.
202
+ - **id**: Customer ID.
203
+ - **version**: Customer version.
204
+ - **ttlMinutes**: Optional.
205
+
206
+ #### Create Customer in Store
207
+
208
+ - **storeKey**: Store key.
209
+ - **customerDraft**: Customer draft JSON.
210
+ - **additionalFieldsCreateStore**: Optional fields.
211
+
212
+
213
+ #### Create Password Reset Token
214
+
215
+ - **email**: Customer email.
216
+
217
+ #### Create Password Reset Token in Store
218
+
219
+ - **storeKey**: Store key.
220
+ - **email**: Customer email.
221
+
222
+
223
+ #### Delete Customer
224
+
225
+ - **customerId**: ID of the customer.
226
+ - **version**: Version of the customer.
227
+
228
+ #### Delete Customer by Key
229
+
230
+ - **customerKey**: Key of the customer.
231
+ - **version**: Version.
232
+ - **additionalFieldsDeleteKey**: Optional.
233
+
234
+ #### Delete Customer in Store
235
+
236
+ - **storeKey**: Store key.
237
+ - **customerId**: Customer ID.
238
+ - **version**: Version.
239
+
240
+ #### Delete Customer in Store by Key
241
+
242
+ - **storeKey**: Store key.
243
+ - **customerKey**: Customer key.
244
+ - **version**: Version.
245
+
246
+ #### Get Customer
247
+
248
+ - **customerId**: Customer ID.
249
+ - **additionalFieldsGet**: Optional fields (expand, localeProjection).
250
+
251
+ #### Get Customer By Email Token
252
+
253
+ - **emailToken**: Token value.
254
+ - **additionalFieldsGetToken**: Optional.
255
+
256
+ #### Get Customer By Key
257
+
258
+ - **customerKey**: Customer key.
259
+ - **additionalFieldsGetKey**: Optional.
260
+
261
+ #### Get Customer By Password Token
262
+
263
+ - **passwordToken**: Token value.
264
+ - **additionalFieldsGetPassToken**: Optional.
265
+
266
+ #### Get Customer in Store
267
+
268
+ - **storeKey**: Store key.
269
+ - **customerId**: Customer ID.
270
+ - **additionalFieldsGetStore**: Optional.
271
+
272
+ #### Get Customer in Store by Email Token
273
+
274
+ - **storeKey**: Store key.
275
+ - **emailToken**: Token value.
276
+ - **additionalFieldsGetStoreEmailToken**: Optional.
277
+
278
+ #### Get Customer in Store by Key
279
+
280
+ - **storeKey**: Store key.
281
+ - **customerKey**: Customer key.
282
+ - **additionalFieldsGetStoreKey**: Optional.
283
+
284
+ #### Get Customer in Store by Password Token
285
+
286
+ - **storeKey**: Store key.
287
+ - **passwordToken**: Token value.
288
+ - **additionalFieldsGetStorePassToken**: Optional.
289
+
290
+ #### Query Customers
291
+
292
+ - **where**: Predicate expression.
293
+ - **limit**: Number of results.
294
+ - **offset**: Offset for pagination.
295
+ - **sort**: Sorting expressions.
296
+ - **additionalFieldsQuery**: Optional fields.
297
+
298
+ #### Query Customers in Store
299
+
300
+ - **storeKey**: Store key.
301
+ - **where**: Predicate expression.
302
+ - **limit**: Number of results.
303
+ - **offset**: Pagination offset.
304
+ - **sort**: Sorting expression.
305
+ - **additionalFieldsQueryStore**: Optional.
306
+
307
+
308
+ #### Reset Customer Password
309
+
310
+ - **tokenValue**: Password reset token.
311
+ - **newPassword**: New password.
312
+ - **additionalFieldsResetPwd**: Optional.
313
+
314
+ #### Reset Customer Password in Store
315
+
316
+ - **storeKey**: Store key.
317
+ - **tokenValue**: Token.
318
+ - **newPassword**: New password.
319
+ - **additionalFieldsResetPwdStore**: Optional.
320
+
321
+
322
+ #### Update Customer
323
+
324
+ - **customerId**: Customer ID.
325
+ - **version**: Customer version.
326
+ - **actions**: Array of update actions.
327
+ - **additionalFieldsUpdate**: Optional (expand).
328
+
329
+ #### Update Customer by Key
330
+
331
+ - **customerKey**: Customer key.
332
+ - **version**: Version.
333
+ - **actions**: Update actions array.
334
+ - **additionalFieldsUpdateKey**: Optional.
335
+
336
+ #### Update Customer in Store
337
+
338
+ - **storeKey**: Store key.
339
+ - **customerId**: Customer ID.
340
+ - **version**: Version.
341
+ - **actions**: Update actions array.
342
+ - **additionalFieldsUpdateStore**: Optional.
343
+
344
+ #### Update Customer in Store by Key
345
+
346
+ - **storeKey**: Store key.
347
+ - **customerKey**: Customer key.
348
+ - **version**: Version.
349
+ - **actions**: Update actions.
350
+ - **additionalFieldsUpdateStoreKey**: Optional.
351
+
352
+ #### Verify Customer Email
353
+
354
+ - **tokenValue**: Email verification token.
355
+ - **additionalFieldsVerify**: Optional.
356
+
357
+ #### Verify Customer Email in Store
358
+
359
+ - **storeKey**: Store key.
360
+ - **tokenValue**: Verification token.
361
+ - **additionalFieldsVerifyStore**: Optional.
362
+
76
363
  ### Category Operation-Specific Parameters
77
364
 
78
365
  #### Create Category
@@ -92,8 +379,7 @@ Below are the main configuration options and parameters available for the Commer
92
379
  #### Update Category / Update By Key
93
380
  - **categoryId** or **categoryKey**: ID or key of the category to update.
94
381
  - **version**: Category version (required for updates).
95
- - **actions**: Array of update actions (JSON).
96
- - **actionsUi**: UI-based update actions.
382
+ - **actions**: Array of update actions (JSON). (Categories currently require JSON actions only.)
97
383
  - **additionalFieldsUpdate**: Optional fields (dataErasure, dryRun, etc.).
98
384
 
99
385
  #### Delete Category / Delete By Key
@@ -148,6 +434,67 @@ Below is a sample workflow using the Commercetools node in n8n to create and que
148
434
  ]
149
435
  ```
150
436
 
437
+ ### Using updateActions (Product Updates)
438
+
439
+ The `updateActions` fixed collection lets you compose Commercetools product update commands directly in the node UI, with helper inputs for localized data, prices, assets, and variant targeting. Highlights:
440
+ - Choose whether each variant is addressed by `variantId` or `sku`, and mix multiple variant-specific actions in a single request.
441
+ - Localized name/slug/meta helpers automatically map locale/value pairs to the format the Commercetools API expects.
442
+ - Attribute editors support string/number/boolean parsing so you don’t need to pre-format JSON.
443
+ - Asset, price, image, and search keyword builders flatten nested fixed collections (sources, dimensions, tokenizers, etc.) into valid drafts.
444
+
445
+ Supported product update actions:
446
+ - Add Asset
447
+ - Add External Image
448
+ - Add Price
449
+ - Add Product Variant
450
+ - Add To Category
451
+ - Change Asset Name
452
+ - Change Asset Order
453
+ - Change Master Variant
454
+ - Change Name
455
+ - Change Price
456
+ - Change Slug
457
+ - Move Image To Position
458
+ - Publish
459
+ - Remove Asset
460
+ - Remove From Category
461
+ - Remove Image
462
+ - Remove Price
463
+ - Remove Variant
464
+ - Revert Staged Changes
465
+ - Revert Staged Variant Changes
466
+ - Set Asset Custom Field
467
+ - Set Asset Custom Type
468
+ - Set Asset Description
469
+ - Set Asset Key
470
+ - Set Asset Sources
471
+ - Set Asset Tags
472
+ - Set Attribute
473
+ - Set Attribute In All Variants
474
+ - Set Category Order Hint
475
+ - Set Description
476
+ - Set Image Label
477
+ - Set Key
478
+ - Set Meta Description
479
+ - Set Meta Keywords
480
+ - Set Meta Title
481
+ - Set Price Custom Field
482
+ - Set Price Key
483
+ - Set Price Mode
484
+ - Set Prices
485
+ - Set Product Attribute
486
+ - Set Product Price Custom Type
487
+ - Set Product Variant Key
488
+ - Set Search Keywords
489
+ - Set SKU
490
+ - Set Tax Category
491
+ - Transition State
492
+ - Unpublish
493
+
494
+ Need a field that isn’t exposed yet? Add it via the `actions` JSON array—the node merges both sources in request order.
495
+
496
+ > **Transition State note:** the builder enforces that either a state ID or a state key is set per the [Commercetools Transition State action](https://docs.commercetools.com/api/projects/products#transition-state).
497
+
151
498
  ### Example: Create a Category
152
499
 
153
500
  1. Add the **Commercetools** node to your workflow.
@@ -212,6 +559,9 @@ To use the Commercetools node for both product and category operations, you must
212
559
  - **Project Key**
213
560
  - **Region**
214
561
  - **Scopes**
562
+ - **AWS Client ID**
563
+ - **AWS Client Secret**
564
+ - The AWS fields map to your access key pair and are required for webhook/SQS delivery paths.
215
565
  - Save the credentials.
216
566
 
217
567
  3. **Use credentials in your workflow:**
@@ -238,7 +588,7 @@ The Commercetools node for n8n enables you to interact with the Commercetools AP
238
588
  Retrieve detailed information for a specific product by its ID or key.
239
589
 
240
590
  - **Update Product (by ID or Key)**
241
- Update an existing product using one or more update actions.
591
+ Update an existing product using one or more update actions. The `updateActions` UI builder now mirrors Commercetools’ product update catalog, including localized content helpers, price/asset editors, search keyword builders, and state transitions.
242
592
 
243
593
  - **Delete Product (by ID or Key)**
244
594
  Delete a product from your project.
@@ -260,7 +610,7 @@ The Commercetools node for n8n enables you to interact with the Commercetools AP
260
610
  Retrieve detailed information for a specific category by its ID or key.
261
611
 
262
612
  - **Update Category (by ID or Key)**
263
- Update an existing category using one or more update actions.
613
+ Update an existing category using one or more update actions. (Categories currently require JSON-based `actions`.)
264
614
 
265
615
  - **Delete Category (by ID or Key)**
266
616
  Delete a category from your project.
@@ -301,6 +651,7 @@ Each operation supports additional parameters for fine-tuned control, such as st
301
651
  - Go to n8n's credentials section and add your Commercetools OAuth2 credentials.
302
652
  4. **Use the Commercetools node in your workflow**
303
653
  - Add the Commercetools node to your workflow and select the desired operation (e.g., product management).
654
+ - For product updates, use the `updateActions` builder to stack multiple actions (or combine with `actions` JSON for edge cases).
304
655
  5. **Lint and build**
305
656
  - Lint: `npm run lint`
306
657
  - Auto-fix: `npm run lint:fix`
@@ -379,11 +730,10 @@ All notable changes to this project will be documented in the `CHANGELOG.md` fil
379
730
 
380
731
 
381
732
  ### [Unreleased]
382
- - Added category-related APIs to Commercetools node (create, query, get, update, delete, existence checks)
383
- - Updated documentation to include category operations in features, configuration, usage examples, credential setup, and troubleshooting
384
- - Documentation improvements and structure updates
385
- - Added detailed usage examples and troubleshooting section
386
- - Enhanced configuration options and parameter documentation
733
+ - Added Commercetools webhook-based product trigger plus AWS automation/test guides
734
+ - Added AWS credential fields (client ID/secret) and environment-driven webhook URL support for trigger delivery
735
+ - Documented AWS deployment automation and attribute references for the CloudFormation scripts
736
+ - Refactored Commercetools product, category, and customer property definitions for easier maintenance
387
737
 
388
738
  ### v1.0.0
389
739
  - Initial release of the Commercetools node for n8n
@@ -39,6 +39,36 @@ class CommerceToolsOAuth2Api {
39
39
  default: 'australia-southeast1.gcp',
40
40
  description: 'Region-specific auth host; determines the OAuth token endpoint used for client credentials grants',
41
41
  },
42
+ {
43
+ displayName: 'AWS Client Access Key',
44
+ name: 'awsAccessKeyId',
45
+ type: 'string',
46
+ default: '',
47
+ placeholder: 'your-aws-client-id',
48
+ description: 'AWS Client ID for authentication',
49
+ required: true,
50
+ },
51
+ {
52
+ displayName: 'AWS Client Secret',
53
+ name: 'awsSecretAccessKey',
54
+ type: 'string',
55
+ typeOptions: {
56
+ password: true,
57
+ },
58
+ default: '',
59
+ placeholder: 'your-aws-client-secret',
60
+ description: 'AWS Client Secret for authentication',
61
+ required: true,
62
+ },
63
+ {
64
+ displayName: 'AWS Region',
65
+ name: 'awsRegion',
66
+ type: 'string',
67
+ default: 'us-east-1',
68
+ placeholder: 'us-east-1',
69
+ description: 'AWS Region for authentication',
70
+ required: true,
71
+ },
42
72
  {
43
73
  displayName: 'Grant Type',
44
74
  name: 'grantType',
@@ -1 +1 @@
1
- {"version":3,"file":"CommerceToolsOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/CommerceToolsOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IAAnC;QACC,SAAI,GAAG,wBAAwB,CAAC;QAEhC,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,0BAA0B,CAAC;QAEzC,SAAI,GAAS,iCAAiC,CAAC;QAE/C,qBAAgB,GAAG,kDAAkD,CAAC;QAEtE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,oCAAoC;gBACjD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,yBAAyB;wBAC/B,KAAK,EAAE,0BAA0B;qBACjC;oBACD;wBACC,IAAI,EAAE,eAAe;wBACrB,KAAK,EAAE,kBAAkB;qBACzB;oBACD;wBACC,IAAI,EAAE,4BAA4B;wBAClC,KAAK,EAAE,iBAAiB;qBACxB;iBACD;gBACD,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EACV,mGAAmG;aACpG;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;aAC5B;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qEAAqE;gBAC9E,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,+BAA+B;aACxC;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,QAAQ;aACjB;SACD,CAAC;IACH,CAAC;CAAA;AA3ED,wDA2EC"}
1
+ {"version":3,"file":"CommerceToolsOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/CommerceToolsOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IAAnC;QACC,SAAI,GAAG,wBAAwB,CAAC;QAEhC,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,0BAA0B,CAAC;QAEzC,SAAI,GAAS,iCAAiC,CAAC;QAE/C,qBAAgB,GAAG,kDAAkD,CAAC;QAEtE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,oCAAoC;gBACjD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,yBAAyB;wBAC/B,KAAK,EAAE,0BAA0B;qBACjC;oBACD;wBACC,IAAI,EAAE,eAAe;wBACrB,KAAK,EAAE,kBAAkB;qBACzB;oBACD;wBACC,IAAI,EAAE,4BAA4B;wBAClC,KAAK,EAAE,iBAAiB;qBACxB;iBACD;gBACD,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EACV,mGAAmG;aACpG;YACD;gBACC,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,oBAAoB;gBACjC,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,wBAAwB;gBACrC,WAAW,EAAE,sCAAsC;gBACnD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,+BAA+B;gBAC5C,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;aAC5B;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qEAAqE;gBAC9E,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,+BAA+B;aACxC;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,QAAQ;aACjB;SACD,CAAC;IACH,CAAC;CAAA;AAzGD,wDAyGC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Commercetools.node.js","sourceRoot":"","sources":["../../../nodes/Commercetools/Commercetools.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Commercetools.node.js","sourceRoot":"","sources":["../../../nodes/Commercetools/Commercetools.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { IDataObject, INodeType, INodeTypeDescription, IWebhookFunctions, IWebhookResponseData } from 'n8n-workflow';
2
+ import { AWSResponse } from './utils/awsInfra.utils';
3
+ export type StaticSubscriptionData = IDataObject & {
4
+ subscriptionId?: string;
5
+ awsInfrastructure?: AWSResponse;
6
+ configHash?: string;
7
+ events?: string[];
8
+ };
9
+ export declare class CommercetoolsTrigger implements INodeType {
10
+ description: INodeTypeDescription;
11
+ webhookMethods: {
12
+ default: {
13
+ checkExists: (this: import("n8n-workflow").IHookFunctions) => Promise<boolean>;
14
+ create: (this: import("n8n-workflow").IHookFunctions) => Promise<boolean>;
15
+ delete: (this: import("n8n-workflow").IHookFunctions) => Promise<boolean>;
16
+ };
17
+ };
18
+ webhook(this: IWebhookFunctions): Promise<IWebhookResponseData>;
19
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommercetoolsTrigger = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const subscription_properties_1 = require("./properties/subscription.properties");
6
+ const webhookMethods_utils_1 = require("./utils/webhookMethods.utils");
7
+ class CommercetoolsTrigger {
8
+ constructor() {
9
+ this.description = {
10
+ displayName: 'Commercetools Trigger',
11
+ name: 'commercetoolsTrigger',
12
+ icon: 'file:Commercetools.svg',
13
+ group: ['trigger'],
14
+ version: 1,
15
+ description: 'Subscribe to Commercetools product events. Automatically creates AWS SQS + Lambda when AWS credentials are provided.',
16
+ defaults: {
17
+ name: 'Commercetools Trigger',
18
+ },
19
+ codex: {
20
+ categories: ['Commercetools', 'Integration', 'Product'],
21
+ subcategories: {
22
+ Commercetools: ['Product'],
23
+ },
24
+ alias: ['commercetools', 'Commercetools'],
25
+ },
26
+ inputs: [],
27
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
28
+ credentials: [
29
+ {
30
+ name: 'commerceToolsOAuth2Api',
31
+ required: true,
32
+ },
33
+ ],
34
+ webhooks: [
35
+ {
36
+ name: 'default',
37
+ httpMethod: 'POST',
38
+ responseMode: 'onReceived',
39
+ path: 'commercetools-product-events',
40
+ },
41
+ ],
42
+ usableAsTool: true,
43
+ properties: subscription_properties_1.triggerProperties,
44
+ };
45
+ this.webhookMethods = webhookMethods_utils_1.triggerMethods;
46
+ }
47
+ async webhook() {
48
+ this.getWorkflowStaticData('node');
49
+ const req = this.getRequestObject();
50
+ const body = req.body;
51
+ return {
52
+ workflowData: [this.helpers.returnJsonArray(body)],
53
+ };
54
+ }
55
+ }
56
+ exports.CommercetoolsTrigger = CommercetoolsTrigger;
57
+ //# sourceMappingURL=CommercetoolsTrigger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommercetoolsTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Commercetools/CommercetoolsTrigger.node.ts"],"names":[],"mappings":";;;AAOA,+CAAmD;AACnD,kFAAyE;AACzE,uEAA8D;AAU9D,MAAa,oBAAoB;IAAjC;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,sHAAsH;YACnI,QAAQ,EAAE;gBACT,IAAI,EAAE,uBAAuB;aAC7B;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;gBACvD,aAAa,EAAE;oBACd,aAAa,EAAE,CAAC,SAAS,CAAC;iBAC1B;gBACD,KAAK,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;aACzC;YACD,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,wBAAwB;oBAC9B,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,QAAQ,EAAE;gBACT;oBACC,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,8BAA8B;iBACpC;aACD;YACD,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,2CAAiB;SAC7B,CAAC;QAEF,mBAAc,GAAG,qCAAc,CAAC;IAcjC,CAAC;IAZA,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAA2B,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAmC,CAAC;QAKrD,OAAO;YACN,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAClD,CAAC;IACH,CAAC;CACD;AApDD,oDAoDC"}
@@ -0,0 +1,21 @@
1
+ {
2
+ "node": "n8n-nodes-commercetools",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Commercetools", "Integration", "Product"],
6
+ "subcategories": {
7
+ "Commercetools": ["Product"]
8
+ },
9
+ "resources": {
10
+ "primaryDocumentation": [
11
+ {
12
+ "url": "https://docs.commercetools.com/api"
13
+ }
14
+ ],
15
+ "credentialDocumentation": [
16
+ {
17
+ "url": ""
18
+ }
19
+ ]
20
+ }
21
+ }