n8n-nodes-shopify-custom 2.0.0

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 (139) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +68 -0
  3. package/dist/credentials/ShopifyCustomAdminApi.credentials.d.ts +10 -0
  4. package/dist/credentials/ShopifyCustomAdminApi.credentials.js +65 -0
  5. package/dist/credentials/ShopifyCustomAdminApi.credentials.js.map +1 -0
  6. package/dist/icons/shopify.dark.svg +12 -0
  7. package/dist/icons/shopify.svg +12 -0
  8. package/dist/nodes/ShopifyCustom/ShopifyCustom.node.d.ts +15 -0
  9. package/dist/nodes/ShopifyCustom/ShopifyCustom.node.js +358 -0
  10. package/dist/nodes/ShopifyCustom/ShopifyCustom.node.js.map +1 -0
  11. package/dist/nodes/ShopifyCustom/ShopifyCustom.node.json +18 -0
  12. package/dist/nodes/ShopifyCustom/config/operations/collection.d.ts +2 -0
  13. package/dist/nodes/ShopifyCustom/config/operations/collection.js +306 -0
  14. package/dist/nodes/ShopifyCustom/config/operations/collection.js.map +1 -0
  15. package/dist/nodes/ShopifyCustom/config/operations/common.d.ts +13 -0
  16. package/dist/nodes/ShopifyCustom/config/operations/common.js +222 -0
  17. package/dist/nodes/ShopifyCustom/config/operations/common.js.map +1 -0
  18. package/dist/nodes/ShopifyCustom/config/operations/customer.d.ts +2 -0
  19. package/dist/nodes/ShopifyCustom/config/operations/customer.js +107 -0
  20. package/dist/nodes/ShopifyCustom/config/operations/customer.js.map +1 -0
  21. package/dist/nodes/ShopifyCustom/config/operations/draftOrder.d.ts +2 -0
  22. package/dist/nodes/ShopifyCustom/config/operations/draftOrder.js +118 -0
  23. package/dist/nodes/ShopifyCustom/config/operations/draftOrder.js.map +1 -0
  24. package/dist/nodes/ShopifyCustom/config/operations/index.d.ts +7 -0
  25. package/dist/nodes/ShopifyCustom/config/operations/index.js +48 -0
  26. package/dist/nodes/ShopifyCustom/config/operations/index.js.map +1 -0
  27. package/dist/nodes/ShopifyCustom/config/operations/metafieldDefinition.d.ts +2 -0
  28. package/dist/nodes/ShopifyCustom/config/operations/metafieldDefinition.js +192 -0
  29. package/dist/nodes/ShopifyCustom/config/operations/metafieldDefinition.js.map +1 -0
  30. package/dist/nodes/ShopifyCustom/config/operations/metafieldValue.d.ts +2 -0
  31. package/dist/nodes/ShopifyCustom/config/operations/metafieldValue.js +125 -0
  32. package/dist/nodes/ShopifyCustom/config/operations/metafieldValue.js.map +1 -0
  33. package/dist/nodes/ShopifyCustom/config/operations/metaobject.d.ts +2 -0
  34. package/dist/nodes/ShopifyCustom/config/operations/metaobject.js +198 -0
  35. package/dist/nodes/ShopifyCustom/config/operations/metaobject.js.map +1 -0
  36. package/dist/nodes/ShopifyCustom/config/operations/order.d.ts +2 -0
  37. package/dist/nodes/ShopifyCustom/config/operations/order.js +111 -0
  38. package/dist/nodes/ShopifyCustom/config/operations/order.js.map +1 -0
  39. package/dist/nodes/ShopifyCustom/config/operations/product.d.ts +2 -0
  40. package/dist/nodes/ShopifyCustom/config/operations/product.js +118 -0
  41. package/dist/nodes/ShopifyCustom/config/operations/product.js.map +1 -0
  42. package/dist/nodes/ShopifyCustom/config/operations/productVariant.d.ts +2 -0
  43. package/dist/nodes/ShopifyCustom/config/operations/productVariant.js +109 -0
  44. package/dist/nodes/ShopifyCustom/config/operations/productVariant.js.map +1 -0
  45. package/dist/nodes/ShopifyCustom/config/operations/service.d.ts +2 -0
  46. package/dist/nodes/ShopifyCustom/config/operations/service.js +14 -0
  47. package/dist/nodes/ShopifyCustom/config/operations/service.js.map +1 -0
  48. package/dist/nodes/ShopifyCustom/config/operations/types.d.ts +13 -0
  49. package/dist/nodes/ShopifyCustom/config/operations/types.js +3 -0
  50. package/dist/nodes/ShopifyCustom/config/operations/types.js.map +1 -0
  51. package/dist/nodes/ShopifyCustom/config/resources.d.ts +9 -0
  52. package/dist/nodes/ShopifyCustom/config/resources.js +62 -0
  53. package/dist/nodes/ShopifyCustom/config/resources.js.map +1 -0
  54. package/dist/nodes/ShopifyCustom/shared/collections/ruleConditions.d.ts +17 -0
  55. package/dist/nodes/ShopifyCustom/shared/collections/ruleConditions.js +281 -0
  56. package/dist/nodes/ShopifyCustom/shared/collections/ruleConditions.js.map +1 -0
  57. package/dist/nodes/ShopifyCustom/shared/errors.d.ts +8 -0
  58. package/dist/nodes/ShopifyCustom/shared/errors.js +37 -0
  59. package/dist/nodes/ShopifyCustom/shared/errors.js.map +1 -0
  60. package/dist/nodes/ShopifyCustom/shared/graphql/client.d.ts +26 -0
  61. package/dist/nodes/ShopifyCustom/shared/graphql/client.js +73 -0
  62. package/dist/nodes/ShopifyCustom/shared/graphql/client.js.map +1 -0
  63. package/dist/nodes/ShopifyCustom/shared/graphql/registry.d.ts +17 -0
  64. package/dist/nodes/ShopifyCustom/shared/graphql/registry.js +962 -0
  65. package/dist/nodes/ShopifyCustom/shared/graphql/registry.js.map +1 -0
  66. package/dist/nodes/ShopifyCustom/shared/graphql/templates/collection.d.ts +5 -0
  67. package/dist/nodes/ShopifyCustom/shared/graphql/templates/collection.js +99 -0
  68. package/dist/nodes/ShopifyCustom/shared/graphql/templates/collection.js.map +1 -0
  69. package/dist/nodes/ShopifyCustom/shared/graphql/templates/commonFragments.d.ts +7 -0
  70. package/dist/nodes/ShopifyCustom/shared/graphql/templates/commonFragments.js +69 -0
  71. package/dist/nodes/ShopifyCustom/shared/graphql/templates/commonFragments.js.map +1 -0
  72. package/dist/nodes/ShopifyCustom/shared/graphql/templates/customer.d.ts +5 -0
  73. package/dist/nodes/ShopifyCustom/shared/graphql/templates/customer.js +94 -0
  74. package/dist/nodes/ShopifyCustom/shared/graphql/templates/customer.js.map +1 -0
  75. package/dist/nodes/ShopifyCustom/shared/graphql/templates/draftOrder.d.ts +5 -0
  76. package/dist/nodes/ShopifyCustom/shared/graphql/templates/draftOrder.js +91 -0
  77. package/dist/nodes/ShopifyCustom/shared/graphql/templates/draftOrder.js.map +1 -0
  78. package/dist/nodes/ShopifyCustom/shared/graphql/templates/metafields.d.ts +10 -0
  79. package/dist/nodes/ShopifyCustom/shared/graphql/templates/metafields.js +223 -0
  80. package/dist/nodes/ShopifyCustom/shared/graphql/templates/metafields.js.map +1 -0
  81. package/dist/nodes/ShopifyCustom/shared/graphql/templates/metaobject.d.ts +5 -0
  82. package/dist/nodes/ShopifyCustom/shared/graphql/templates/metaobject.js +92 -0
  83. package/dist/nodes/ShopifyCustom/shared/graphql/templates/metaobject.js.map +1 -0
  84. package/dist/nodes/ShopifyCustom/shared/graphql/templates/order.d.ts +5 -0
  85. package/dist/nodes/ShopifyCustom/shared/graphql/templates/order.js +95 -0
  86. package/dist/nodes/ShopifyCustom/shared/graphql/templates/order.js.map +1 -0
  87. package/dist/nodes/ShopifyCustom/shared/graphql/templates/product.d.ts +5 -0
  88. package/dist/nodes/ShopifyCustom/shared/graphql/templates/product.js +107 -0
  89. package/dist/nodes/ShopifyCustom/shared/graphql/templates/product.js.map +1 -0
  90. package/dist/nodes/ShopifyCustom/shared/graphql/templates/productVariant.d.ts +5 -0
  91. package/dist/nodes/ShopifyCustom/shared/graphql/templates/productVariant.js +99 -0
  92. package/dist/nodes/ShopifyCustom/shared/graphql/templates/productVariant.js.map +1 -0
  93. package/dist/nodes/ShopifyCustom/shared/metafields/definitions.d.ts +24 -0
  94. package/dist/nodes/ShopifyCustom/shared/metafields/definitions.js +65 -0
  95. package/dist/nodes/ShopifyCustom/shared/metafields/definitions.js.map +1 -0
  96. package/dist/nodes/ShopifyCustom/shared/metafields/ownerTypeMap.d.ts +3 -0
  97. package/dist/nodes/ShopifyCustom/shared/metafields/ownerTypeMap.js +19 -0
  98. package/dist/nodes/ShopifyCustom/shared/metafields/ownerTypeMap.js.map +1 -0
  99. package/dist/nodes/ShopifyCustom/shared/metafields/referenceLoaders.d.ts +2 -0
  100. package/dist/nodes/ShopifyCustom/shared/metafields/referenceLoaders.js +122 -0
  101. package/dist/nodes/ShopifyCustom/shared/metafields/referenceLoaders.js.map +1 -0
  102. package/dist/nodes/ShopifyCustom/shared/metafields/types.d.ts +17 -0
  103. package/dist/nodes/ShopifyCustom/shared/metafields/types.js +57 -0
  104. package/dist/nodes/ShopifyCustom/shared/metafields/types.js.map +1 -0
  105. package/dist/nodes/ShopifyCustom/shared/metafields/uiFactory.d.ts +2 -0
  106. package/dist/nodes/ShopifyCustom/shared/metafields/uiFactory.js +395 -0
  107. package/dist/nodes/ShopifyCustom/shared/metafields/uiFactory.js.map +1 -0
  108. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/constants.d.ts +20 -0
  109. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/constants.js +61 -0
  110. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/constants.js.map +1 -0
  111. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/index.d.ts +3 -0
  112. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/index.js +43 -0
  113. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/index.js.map +1 -0
  114. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/list.d.ts +2 -0
  115. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/list.js +103 -0
  116. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/list.js.map +1 -0
  117. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.d.ts +2 -0
  118. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.js +80 -0
  119. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/reference.js.map +1 -0
  120. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.d.ts +2 -0
  121. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.js +110 -0
  122. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/scalar.js.map +1 -0
  123. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.d.ts +2 -0
  124. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.js +64 -0
  125. package/dist/nodes/ShopifyCustom/shared/metafields/valueAdapters/structured.js.map +1 -0
  126. package/dist/nodes/ShopifyCustom/shared/metafields/valuePayload.d.ts +3 -0
  127. package/dist/nodes/ShopifyCustom/shared/metafields/valuePayload.js +89 -0
  128. package/dist/nodes/ShopifyCustom/shared/metafields/valuePayload.js.map +1 -0
  129. package/dist/nodes/ShopifyCustom/shared/output/outputMapper.d.ts +3 -0
  130. package/dist/nodes/ShopifyCustom/shared/output/outputMapper.js +82 -0
  131. package/dist/nodes/ShopifyCustom/shared/output/outputMapper.js.map +1 -0
  132. package/dist/nodes/ShopifyCustom/shared/themes/templateSuffixes.d.ts +2 -0
  133. package/dist/nodes/ShopifyCustom/shared/themes/templateSuffixes.js +83 -0
  134. package/dist/nodes/ShopifyCustom/shared/themes/templateSuffixes.js.map +1 -0
  135. package/dist/nodes/ShopifyCustom/shopify.dark.svg +12 -0
  136. package/dist/nodes/ShopifyCustom/shopify.svg +12 -0
  137. package/dist/package.json +62 -0
  138. package/dist/tsconfig.tsbuildinfo +1 -0
  139. package/package.json +62 -0
package/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2022 n8n
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # n8n-nodes-shopify-custom
2
+
3
+ Community n8n node for Shopify Admin GraphQL with resource-based actions and advanced metafield workflow.
4
+
5
+ ## Features
6
+
7
+ - Single node: `Shopify Custom`
8
+ - Resource/action split:
9
+ - Product
10
+ - Product Variant
11
+ - Collection
12
+ - Customer
13
+ - Order
14
+ - Draft Order
15
+ - Metafield Value
16
+ - Metafield Definition
17
+ - Service
18
+ - Metafield value operations:
19
+ - `Set`
20
+ - `Get`
21
+ - `Get Many`
22
+ - `Delete`
23
+ - Metafield definition operations:
24
+ - `List`
25
+ - `Get`
26
+ - `Create`
27
+ - `Update`
28
+ - `Delete`
29
+ - Dynamic loading:
30
+ - Metafield definitions by owner type/resource
31
+ - Metafield definition types
32
+ - Reference options with manual GID fallback
33
+ - Output modes:
34
+ - `Simplified`
35
+ - `Raw`
36
+ - `Selected fields`
37
+ - `usableAsTool: true` for AI/tool workflows
38
+
39
+ ## Credentials
40
+
41
+ Credential name: **Shopify Custom Admin API**
42
+
43
+ Required fields:
44
+ - `Shop Subdomain` (without `.myshopify.com`)
45
+ - `Admin API Version` (default `2025-10`)
46
+ - `Admin Access Token`
47
+
48
+ ## Install
49
+
50
+ ```bash
51
+ npm install n8n-nodes-shopify-custom
52
+ ```
53
+
54
+ ## Local development
55
+
56
+ ```bash
57
+ npm ci
58
+ npm run lint
59
+ npm run build
60
+ ```
61
+
62
+ Then link/build and load it in local n8n (community nodes path) as usual.
63
+
64
+ ## Notes
65
+
66
+ - Transport uses Shopify Admin GraphQL only.
67
+ - The node includes type-aware metafield serialization for scalar, list, reference and structured metafield types.
68
+ - For reference/list.reference metafields, you can use dynamic options or manual GIDs.
@@ -0,0 +1,10 @@
1
+ import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, Icon, INodeProperties } from 'n8n-workflow';
2
+ export declare class ShopifyCustomAdminApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ icon: Icon;
6
+ documentationUrl: string;
7
+ properties: INodeProperties[];
8
+ authenticate: IAuthenticateGeneric;
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShopifyCustomAdminApi = void 0;
4
+ class ShopifyCustomAdminApi {
5
+ constructor() {
6
+ this.name = 'shopifyCustomAdminApi';
7
+ this.displayName = 'Shopify Custom Admin API';
8
+ this.icon = {
9
+ light: 'file:../nodes/ShopifyCustom/shopify.svg',
10
+ dark: 'file:../nodes/ShopifyCustom/shopify.dark.svg',
11
+ };
12
+ this.documentationUrl = 'https://shopify.dev/docs/api/admin-graphql';
13
+ this.properties = [
14
+ {
15
+ displayName: 'Shop Subdomain',
16
+ name: 'shopSubdomain',
17
+ type: 'string',
18
+ placeholder: 'my-store',
19
+ default: '',
20
+ required: true,
21
+ description: 'Only subdomain without .myshopify.com suffix',
22
+ },
23
+ {
24
+ displayName: 'Admin API Version',
25
+ name: 'apiVersion',
26
+ type: 'string',
27
+ default: '2025-10',
28
+ required: true,
29
+ },
30
+ {
31
+ displayName: 'Admin Access Token',
32
+ name: 'accessToken',
33
+ type: 'string',
34
+ typeOptions: {
35
+ password: true,
36
+ },
37
+ default: '',
38
+ required: true,
39
+ },
40
+ ];
41
+ this.authenticate = {
42
+ type: 'generic',
43
+ properties: {
44
+ headers: {
45
+ 'X-Shopify-Access-Token': '={{$credentials.accessToken.trim()}}',
46
+ },
47
+ },
48
+ };
49
+ this.test = {
50
+ request: {
51
+ baseURL: '={{"https://" + $credentials.shopSubdomain.trim().replace(".myshopify.com", "") + ".myshopify.com"}}',
52
+ url: '=/admin/api/{{$credentials.apiVersion || "2025-10"}}/graphql.json',
53
+ method: 'POST',
54
+ headers: {
55
+ 'Content-Type': 'application/json',
56
+ },
57
+ body: {
58
+ query: 'query { shop { id name } }',
59
+ },
60
+ },
61
+ };
62
+ }
63
+ }
64
+ exports.ShopifyCustomAdminApi = ShopifyCustomAdminApi;
65
+ //# sourceMappingURL=ShopifyCustomAdminApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShopifyCustomAdminApi.credentials.js","sourceRoot":"","sources":["../../credentials/ShopifyCustomAdminApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,qBAAqB;IAAlC;QACC,SAAI,GAAG,uBAAuB,CAAC;QAE/B,gBAAW,GAAG,0BAA0B,CAAC;QAEzC,SAAI,GAAS;YACZ,KAAK,EAAE,yCAAyC;YAChD,IAAI,EAAE,8CAA8C;SACpD,CAAC;QAEF,qBAAgB,GAAG,4CAA4C,CAAC;QAEhE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,8CAA8C;aAC3D;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,wBAAwB,EAAE,sCAAsC;iBAChE;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EACN,sGAAsG;gBACvG,GAAG,EAAE,mEAAmE;gBACxE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACR,cAAc,EAAE,kBAAkB;iBAClC;gBACD,IAAI,EAAE;oBACL,KAAK,EAAE,4BAA4B;iBACnC;aACD;SACD,CAAC;IACH,CAAC;CAAA;AAhED,sDAgEC"}
@@ -0,0 +1,12 @@
1
+ <svg width="150" height="170" viewBox="0 0 150 170" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_45_2)">
3
+ <path d="M131.5 32.8C131.4 31.9 130.6 31.5 130 31.5C129.4 31.5 116.3 30.5 116.3 30.5C116.3 30.5 107.2 21.4 106.1 20.5C105.1 19.5 103.2 19.8 102.4 20C102.3 20 100.4 20.6 97.3 21.6C94.2 12.7 88.9 4.60001 79.4 4.60001H78.5C75.9 1.20001 72.5 -0.399994 69.7 -0.399994C47.7 -0.399994 37.1 27.1 33.8 41.1C25.2 43.8 19.1 45.6 18.4 45.9C13.6 47.4 13.5 47.5 12.9 52C12.4 55.4 -0.0999756 152.1 -0.0999756 152.1L97.2 170.3L150 158.9C150.1 158.7 131.6 33.7 131.5 32.8ZM91.9 23C89.5 23.7 86.6 24.6 83.7 25.6V23.8C83.7 18.4 83 14 81.7 10.5C86.7 11.1 89.8 16.6 91.9 23ZM75.6 11.6C76.9 15 77.8 19.8 77.8 26.4V27.4C72.4 29.1 66.7 30.8 60.8 32.7C64.1 20.1 70.4 13.9 75.6 11.6ZM69.2 5.39999C70.2 5.39999 71.2 5.79999 72 6.39999C64.9 9.69999 57.4 18 54.3 34.8C49.6 36.3 45.1 37.6 40.8 39C44.4 26.2 53.4 5.39999 69.2 5.39999Z" fill="white"/>
4
+ <path d="M130 31.3C129.4 31.3 116.3 30.3 116.3 30.3C116.3 30.3 107.2 21.2 106.1 20.3C105.7 19.9 105.2 19.7 104.8 19.7L97.5 170.3L150.3 158.9C150.3 158.9 131.8 33.7 131.7 32.8C131.3 31.9 130.6 31.5 130 31.3Z" fill="#8E3E3F"/>
5
+ <path d="M79.4 60.5L73 79.8C73 79.8 67.2 76.7 60.3 76.7C50 76.7 49.5 83.2 49.5 84.8C49.5 93.6 72.5 97 72.5 117.7C72.5 134 62.2 144.5 48.3 144.5C31.5 144.5 23.1 134.1 23.1 134.1L27.6 119.3C27.6 119.3 36.4 126.9 43.8 126.9C48.7 126.9 50.7 123.1 50.7 120.3C50.7 108.8 31.9 108.3 31.9 89.3C31.9 73.4 43.3 58 66.4 58C75 57.9 79.4 60.5 79.4 60.5Z" fill="#8E3E3F"/>
6
+ </g>
7
+ <defs>
8
+ <clipPath id="clip0_45_2">
9
+ <rect width="150" height="170" fill="white"/>
10
+ </clipPath>
11
+ </defs>
12
+ </svg>
@@ -0,0 +1,12 @@
1
+ <svg width="150" height="170" viewBox="0 0 150 170" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_28_2)">
3
+ <path d="M131.5 32.8C131.4 31.9 130.6 31.5 130 31.5C129.4 31.5 116.3 30.5 116.3 30.5C116.3 30.5 107.2 21.4 106.1 20.5C105.1 19.5 103.2 19.8 102.4 20C102.3 20 100.4 20.6 97.3 21.6C94.2 12.7 88.9 4.60001 79.4 4.60001H78.5C75.9 1.20001 72.5 -0.399994 69.7 -0.399994C47.7 -0.399994 37.1 27.1 33.8 41.1C25.2 43.8 19.1 45.6 18.4 45.9C13.6 47.4 13.5 47.5 12.9 52C12.4 55.4 -0.0999756 152.1 -0.0999756 152.1L97.2 170.3L150 158.9C150.1 158.7 131.6 33.7 131.5 32.8ZM91.9 23C89.5 23.7 86.6 24.6 83.7 25.6V23.8C83.7 18.4 83 14 81.7 10.5C86.7 11.1 89.8 16.6 91.9 23ZM75.6 11.6C76.9 15 77.8 19.8 77.8 26.4V27.4C72.4 29.1 66.7 30.8 60.8 32.7C64.1 20.1 70.4 13.9 75.6 11.6ZM69.2 5.39999C70.2 5.39999 71.2 5.79999 72 6.39999C64.9 9.69999 57.4 18 54.3 34.8C49.6 36.3 45.1 37.6 40.8 39C44.4 26.2 53.4 5.39999 69.2 5.39999Z" fill="#BF4749"/>
4
+ <path d="M130 31.3C129.4 31.3 116.3 30.3 116.3 30.3C116.3 30.3 107.2 21.2 106.1 20.3C105.7 19.9 105.2 19.7 104.8 19.7L97.5 170.3L150.3 158.9C150.3 158.9 131.8 33.7 131.7 32.8C131.3 31.9 130.6 31.5 130 31.3Z" fill="#8E3E3F"/>
5
+ <path d="M79.4 60.5L73 79.8C73 79.8 67.2 76.7 60.3 76.7C50 76.7 49.5 83.2 49.5 84.8C49.5 93.6 72.5 97 72.5 117.7C72.5 134 62.2 144.5 48.3 144.5C31.5 144.5 23.1 134.1 23.1 134.1L27.6 119.3C27.6 119.3 36.4 126.9 43.8 126.9C48.7 126.9 50.7 123.1 50.7 120.3C50.7 108.8 31.9 108.3 31.9 89.3C31.9 73.4 43.3 58 66.4 58C75 57.9 79.4 60.5 79.4 60.5Z" fill="white"/>
6
+ </g>
7
+ <defs>
8
+ <clipPath id="clip0_28_2">
9
+ <rect width="150" height="170" fill="white"/>
10
+ </clipPath>
11
+ </defs>
12
+ </svg>
@@ -0,0 +1,15 @@
1
+ import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodePropertyOptions, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class ShopifyCustom implements INodeType {
3
+ description: INodeTypeDescription;
4
+ methods: {
5
+ loadOptions: {
6
+ getMetafieldDefinitionTypes(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
7
+ getMetafieldDefinitionsForCurrentContext(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
8
+ getReferenceOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
9
+ getCollectionNativeRuleTypeOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
10
+ getCollectionMetafieldRuleOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
11
+ getCollectionRuleRelationOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
12
+ };
13
+ };
14
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
15
+ }
@@ -0,0 +1,358 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShopifyCustom = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const operations_1 = require("./config/operations");
6
+ const resources_1 = require("./config/resources");
7
+ const ruleConditions_1 = require("./shared/collections/ruleConditions");
8
+ const errors_1 = require("./shared/errors");
9
+ const client_1 = require("./shared/graphql/client");
10
+ const registry_1 = require("./shared/graphql/registry");
11
+ const definitions_1 = require("./shared/metafields/definitions");
12
+ const ownerTypeMap_1 = require("./shared/metafields/ownerTypeMap");
13
+ const referenceLoaders_1 = require("./shared/metafields/referenceLoaders");
14
+ const types_1 = require("./shared/metafields/types");
15
+ const uiFactory_1 = require("./shared/metafields/uiFactory");
16
+ const valuePayload_1 = require("./shared/metafields/valuePayload");
17
+ const outputMapper_1 = require("./shared/output/outputMapper");
18
+ function isObject(value) {
19
+ return !!value && typeof value === 'object' && !Array.isArray(value);
20
+ }
21
+ function getByPath(source, path) {
22
+ let current = source;
23
+ for (const chunk of path) {
24
+ if (Array.isArray(current)) {
25
+ const index = Number(chunk);
26
+ if (Number.isNaN(index)) {
27
+ return undefined;
28
+ }
29
+ current = current[index];
30
+ continue;
31
+ }
32
+ if (!isObject(current)) {
33
+ return undefined;
34
+ }
35
+ current = current[chunk];
36
+ }
37
+ return current;
38
+ }
39
+ function toArrayOfObjects(value) {
40
+ if (Array.isArray(value)) {
41
+ return value.filter(isObject);
42
+ }
43
+ if (isObject(value)) {
44
+ return [value];
45
+ }
46
+ return [];
47
+ }
48
+ function mergeDisplayOptions(baseDisplayOptions, fieldDisplayOptions) {
49
+ var _a, _b, _c, _d;
50
+ if (!fieldDisplayOptions) {
51
+ return baseDisplayOptions;
52
+ }
53
+ return {
54
+ show: {
55
+ ...((_a = baseDisplayOptions === null || baseDisplayOptions === void 0 ? void 0 : baseDisplayOptions.show) !== null && _a !== void 0 ? _a : {}),
56
+ ...((_b = fieldDisplayOptions.show) !== null && _b !== void 0 ? _b : {}),
57
+ },
58
+ hide: {
59
+ ...((_c = baseDisplayOptions === null || baseDisplayOptions === void 0 ? void 0 : baseDisplayOptions.hide) !== null && _c !== void 0 ? _c : {}),
60
+ ...((_d = fieldDisplayOptions.hide) !== null && _d !== void 0 ? _d : {}),
61
+ },
62
+ };
63
+ }
64
+ function buildProperties() {
65
+ var _a, _b, _c;
66
+ const properties = [];
67
+ const resourceOptions = resources_1.SHOPIFY_RESOURCE_DEFINITIONS.map((resourceDefinition) => ({
68
+ name: resourceDefinition.name,
69
+ value: resourceDefinition.value,
70
+ description: resourceDefinition.description,
71
+ }));
72
+ const resourceProperty = {
73
+ displayName: 'Resource',
74
+ name: 'resource',
75
+ type: 'options',
76
+ noDataExpression: true,
77
+ default: 'product',
78
+ options: [{ name: 'Product', value: 'product' }],
79
+ };
80
+ properties.push(resourceProperty);
81
+ resourceProperty.options.splice(0, 1, ...resourceOptions);
82
+ resourceProperty.default = (_b = (_a = resourceOptions[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 'product';
83
+ for (const resourceDefinition of resources_1.SHOPIFY_RESOURCE_DEFINITIONS) {
84
+ const operationConfigs = (_c = operations_1.OPERATION_BY_RESOURCE[resourceDefinition.value]) !== null && _c !== void 0 ? _c : [];
85
+ if (operationConfigs.length === 0) {
86
+ continue;
87
+ }
88
+ const operationProperty = {
89
+ displayName: 'Operation',
90
+ name: 'operation',
91
+ type: 'options',
92
+ noDataExpression: true,
93
+ displayOptions: {
94
+ show: {
95
+ resource: [resourceDefinition.value],
96
+ },
97
+ },
98
+ default: 'create',
99
+ options: [
100
+ {
101
+ name: 'Create',
102
+ value: 'create',
103
+ },
104
+ ],
105
+ };
106
+ properties.push(operationProperty);
107
+ operationProperty.options.splice(0, 1, ...operationConfigs.map((operationConfig) => ({
108
+ name: operationConfig.name,
109
+ value: operationConfig.value,
110
+ description: operationConfig.description,
111
+ action: `${operationConfig.name} ${resourceDefinition.name.toLowerCase()}`,
112
+ })));
113
+ operationProperty.default = operationConfigs[0].value;
114
+ for (const operationConfig of operationConfigs) {
115
+ const baseDisplayOptions = {
116
+ show: {
117
+ resource: [operationConfig.resource],
118
+ operation: [operationConfig.value],
119
+ },
120
+ };
121
+ for (const field of operationConfig.fields) {
122
+ properties.push({
123
+ ...field,
124
+ displayOptions: mergeDisplayOptions(baseDisplayOptions, field.displayOptions),
125
+ });
126
+ }
127
+ }
128
+ }
129
+ properties.push(...(0, uiFactory_1.buildStandaloneMetafieldValueFields)());
130
+ properties.push({
131
+ displayName: 'Output Mode',
132
+ name: 'outputMode',
133
+ type: 'options',
134
+ noDataExpression: true,
135
+ default: 'simplified',
136
+ options: [
137
+ { name: 'Simplified', value: 'simplified' },
138
+ { name: 'Raw', value: 'raw' },
139
+ { name: 'Selected Fields', value: 'selectedFields' },
140
+ ],
141
+ });
142
+ properties.push({
143
+ displayName: 'Selected Fields',
144
+ name: 'selectedFields',
145
+ type: 'string',
146
+ default: '',
147
+ placeholder: 'ID,title,status',
148
+ displayOptions: {
149
+ show: {
150
+ outputMode: ['selectedFields'],
151
+ },
152
+ },
153
+ });
154
+ return properties;
155
+ }
156
+ function asMetafieldOwnerType(value) {
157
+ if (value === 'PRODUCT' ||
158
+ value === 'PRODUCTVARIANT' ||
159
+ value === 'COLLECTION' ||
160
+ value === 'CUSTOMER' ||
161
+ value === 'ORDER' ||
162
+ value === 'DRAFTORDER') {
163
+ return value;
164
+ }
165
+ return undefined;
166
+ }
167
+ function getOperationParameters(executeFunctions, resource, operation, itemIndex) {
168
+ const operationConfig = (0, operations_1.getOperationConfig)(resource, operation);
169
+ if (!operationConfig) {
170
+ throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Unsupported operation "${operation}" for resource "${resource}"`, { itemIndex });
171
+ }
172
+ const parameters = {};
173
+ for (const field of operationConfig.fields) {
174
+ parameters[field.name] = executeFunctions.getNodeParameter(field.name, itemIndex, field.default);
175
+ }
176
+ return parameters;
177
+ }
178
+ async function runRegistryOperation(executeFunctions, operationKey, parameters, itemIndex) {
179
+ var _a, _b, _c, _d, _e, _f, _g;
180
+ const registryOperation = (0, registry_1.getRegistryOperation)(operationKey);
181
+ const getAll = Boolean(parameters.getAll);
182
+ const canPaginate = registryOperation.pagination !== undefined;
183
+ if (getAll && canPaginate) {
184
+ const aggregatedItems = [];
185
+ const rawPages = [];
186
+ const variables = registryOperation.buildVariables(parameters);
187
+ const firstVariableName = (_b = (_a = registryOperation.pagination) === null || _a === void 0 ? void 0 : _a.firstVariableName) !== null && _b !== void 0 ? _b : 'first';
188
+ const afterVariableName = (_d = (_c = registryOperation.pagination) === null || _c === void 0 ? void 0 : _c.afterVariableName) !== null && _d !== void 0 ? _d : 'after';
189
+ variables[firstVariableName] = 100;
190
+ delete variables[afterVariableName];
191
+ for (let page = 0; page < 250; page += 1) {
192
+ const response = await (0, client_1.executeShopifyGraphql)(executeFunctions, registryOperation.document, variables, itemIndex);
193
+ (0, client_1.assertNoGraphQLErrors)(executeFunctions, response, itemIndex);
194
+ const data = ((_e = response.data) !== null && _e !== void 0 ? _e : {});
195
+ rawPages.push(data);
196
+ if (registryOperation.getUserErrors) {
197
+ (0, errors_1.throwIfUserErrors)(executeFunctions, registryOperation.getUserErrors(data), itemIndex);
198
+ }
199
+ const mapped = registryOperation.mapSimplified(data);
200
+ aggregatedItems.push(...toArrayOfObjects(mapped));
201
+ const pageInfo = getByPath(data, [...registryOperation.pagination.connectionPath, 'pageInfo']);
202
+ if (!isObject(pageInfo) || !pageInfo.hasNextPage || !pageInfo.endCursor) {
203
+ break;
204
+ }
205
+ variables[afterVariableName] = String(pageInfo.endCursor);
206
+ }
207
+ return {
208
+ simplified: aggregatedItems,
209
+ raw: {
210
+ pages: rawPages,
211
+ },
212
+ };
213
+ }
214
+ const variables = registryOperation.buildVariables(parameters);
215
+ const response = await (0, client_1.executeShopifyGraphql)(executeFunctions, registryOperation.document, variables, itemIndex);
216
+ (0, client_1.assertNoGraphQLErrors)(executeFunctions, response, itemIndex);
217
+ const data = ((_f = response.data) !== null && _f !== void 0 ? _f : {});
218
+ if (registryOperation.getUserErrors) {
219
+ (0, errors_1.throwIfUserErrors)(executeFunctions, registryOperation.getUserErrors(data), itemIndex);
220
+ }
221
+ return {
222
+ simplified: registryOperation.mapSimplified(data),
223
+ raw: {
224
+ data,
225
+ extensions: ((_g = response.extensions) !== null && _g !== void 0 ? _g : {}),
226
+ },
227
+ };
228
+ }
229
+ class ShopifyCustom {
230
+ constructor() {
231
+ this.description = {
232
+ displayName: 'Shopify Custom',
233
+ name: 'shopifyCustom',
234
+ icon: { light: 'file:shopify.svg', dark: 'file:shopify.dark.svg' },
235
+ group: ['transform'],
236
+ version: 1,
237
+ subtitle: '={{$parameter["resource"] + ": " + $parameter["operation"]}}',
238
+ description: 'Shopify Admin GraphQL node with metafields and definitions support',
239
+ defaults: {
240
+ name: 'Shopify Custom',
241
+ },
242
+ usableAsTool: true,
243
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
244
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
245
+ credentials: [
246
+ {
247
+ name: 'shopifyCustomAdminApi',
248
+ required: true,
249
+ },
250
+ ],
251
+ properties: buildProperties(),
252
+ };
253
+ this.methods = {
254
+ loadOptions: {
255
+ async getMetafieldDefinitionTypes() {
256
+ return await (0, types_1.getMetafieldDefinitionTypeOptions)(this);
257
+ },
258
+ async getMetafieldDefinitionsForCurrentContext() {
259
+ let resource = 'product';
260
+ try {
261
+ resource = this.getCurrentNodeParameter('resource');
262
+ }
263
+ catch {
264
+ resource = 'product';
265
+ }
266
+ const ownerTypeFromResource = (0, ownerTypeMap_1.getOwnerTypeFromResource)(resource);
267
+ let ownerTypeFromParameter;
268
+ try {
269
+ ownerTypeFromParameter = asMetafieldOwnerType(this.getCurrentNodeParameter('ownerType'));
270
+ }
271
+ catch {
272
+ ownerTypeFromParameter = undefined;
273
+ }
274
+ const ownerType = ownerTypeFromResource !== null && ownerTypeFromResource !== void 0 ? ownerTypeFromResource : (ownerTypeFromParameter || undefined);
275
+ if (!ownerType) {
276
+ return [];
277
+ }
278
+ return await (0, definitions_1.getMetafieldDefinitionOptions)(this, ownerType);
279
+ },
280
+ async getReferenceOptions() {
281
+ return await (0, referenceLoaders_1.getReferenceOptions)(this);
282
+ },
283
+ async getCollectionNativeRuleTypeOptions() {
284
+ return await (0, ruleConditions_1.getCollectionNativeRuleTypeOptions)(this);
285
+ },
286
+ async getCollectionMetafieldRuleOptions() {
287
+ return await (0, ruleConditions_1.getCollectionMetafieldRuleOptions)(this);
288
+ },
289
+ async getCollectionRuleRelationOptions() {
290
+ return await (0, ruleConditions_1.getCollectionRuleRelationOptions)(this);
291
+ },
292
+ },
293
+ };
294
+ }
295
+ async execute() {
296
+ var _a;
297
+ const items = this.getInputData();
298
+ const returnData = [];
299
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex += 1) {
300
+ try {
301
+ const resource = this.getNodeParameter('resource', itemIndex);
302
+ const operation = this.getNodeParameter('operation', itemIndex);
303
+ const outputMode = this.getNodeParameter('outputMode', itemIndex, 'simplified');
304
+ const selectedFields = this.getNodeParameter('selectedFields', itemIndex, '');
305
+ const operationConfig = (0, operations_1.getOperationConfig)(resource, operation);
306
+ if (!operationConfig) {
307
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unsupported operation "${operation}" for resource "${resource}"`, {
308
+ itemIndex,
309
+ });
310
+ }
311
+ const operationParameters = getOperationParameters(this, resource, operation, itemIndex);
312
+ if (resource === 'metafieldValue') {
313
+ const ownerId = String((_a = operationParameters.ownerId) !== null && _a !== void 0 ? _a : '');
314
+ if ((operation === 'set' || operation === 'delete') && !ownerId) {
315
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Owner ID is required', { itemIndex });
316
+ }
317
+ if (operation === 'set') {
318
+ const collection = this.getNodeParameter('metafieldsSetItems', itemIndex, {});
319
+ operationParameters.metafieldsPayload = (0, valuePayload_1.buildMetafieldsSetPayload)('Shopify Custom', ownerId, collection);
320
+ }
321
+ else if (operation === 'delete') {
322
+ const collection = this.getNodeParameter('metafieldsDeleteItems', itemIndex, {});
323
+ operationParameters.metafieldsPayload = (0, valuePayload_1.buildMetafieldsDeletePayload)('Shopify Custom', ownerId, collection);
324
+ }
325
+ }
326
+ if (resource === 'metafieldValue' && operation === 'getMany') {
327
+ operationParameters.afterCursor = '';
328
+ }
329
+ if (resource === 'metafieldDefinition' && operation === 'list') {
330
+ operationParameters.afterCursor = '';
331
+ }
332
+ const mainResult = await runRegistryOperation(this, operationConfig.registryKey, operationParameters, itemIndex);
333
+ const outputItems = (0, outputMapper_1.mapOutputItems)(outputMode, mainResult.simplified, mainResult.raw, selectedFields);
334
+ returnData.push(...this.helpers.returnJsonArray(outputItems));
335
+ }
336
+ catch (error) {
337
+ if (this.continueOnFail()) {
338
+ returnData.push({
339
+ json: {
340
+ error: (0, errors_1.getErrorData)(error),
341
+ },
342
+ pairedItem: {
343
+ item: itemIndex,
344
+ },
345
+ });
346
+ continue;
347
+ }
348
+ if (error instanceof n8n_workflow_1.NodeOperationError) {
349
+ throw error;
350
+ }
351
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
352
+ }
353
+ }
354
+ return [returnData];
355
+ }
356
+ }
357
+ exports.ShopifyCustom = ShopifyCustom;
358
+ //# sourceMappingURL=ShopifyCustom.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShopifyCustom.node.js","sourceRoot":"","sources":["../../../nodes/ShopifyCustom/ShopifyCustom.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "n8n-nodes-shopify-custom",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Sales", "Ecommerce"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://shopify.dev/docs/api/admin-graphql"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://shopify.dev/docs/api/admin-graphql"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ import type { IShopifyOperationConfig } from './types';
2
+ export declare const COLLECTION_OPERATION_CONFIGS: IShopifyOperationConfig[];