ecomcoder-cli 1.3.6 → 1.3.8
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/dist/commands/product/add-options.d.ts +8 -0
- package/dist/commands/product/add-options.d.ts.map +1 -0
- package/dist/commands/product/add-options.js +171 -0
- package/dist/commands/product/add-options.js.map +1 -0
- package/dist/commands/product/create.d.ts.map +1 -1
- package/dist/commands/product/create.js +13 -7
- package/dist/commands/product/create.js.map +1 -1
- package/dist/commands/product/index.d.ts.map +1 -1
- package/dist/commands/product/index.js +16 -0
- package/dist/commands/product/index.js.map +1 -1
- package/dist/commands/product/queries.d.ts +22 -2
- package/dist/commands/product/queries.d.ts.map +1 -1
- package/dist/commands/product/queries.js +163 -3
- package/dist/commands/product/queries.js.map +1 -1
- package/dist/commands/product/service.d.ts +30 -1
- package/dist/commands/product/service.d.ts.map +1 -1
- package/dist/commands/product/service.js +222 -24
- package/dist/commands/product/service.js.map +1 -1
- package/dist/commands/product/types.d.ts +74 -0
- package/dist/commands/product/types.d.ts.map +1 -1
- package/dist/commands/product/update-options.d.ts +8 -0
- package/dist/commands/product/update-options.d.ts.map +1 -0
- package/dist/commands/product/update-options.js +235 -0
- package/dist/commands/product/update-options.js.map +1 -0
- package/package.json +2 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-options.d.ts","sourceRoot":"","sources":["../../../src/commands/product/add-options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyEH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,iBAsG/D"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add Product Options Command
|
|
3
|
+
*
|
|
4
|
+
* Following Command Pattern - thin orchestration layer
|
|
5
|
+
* Delegates business logic to ProductService
|
|
6
|
+
*/
|
|
7
|
+
import { getCredentials, getSessionId } from '../../lib/api-client.js';
|
|
8
|
+
import { parseArgs, hasHelpFlag } from '../../lib/args-parser.js';
|
|
9
|
+
import { ProductService } from './service.js';
|
|
10
|
+
function showHelp() {
|
|
11
|
+
console.log(`
|
|
12
|
+
Add Product Options
|
|
13
|
+
|
|
14
|
+
USAGE:
|
|
15
|
+
ecomcoder product add-options [OPTIONS]
|
|
16
|
+
|
|
17
|
+
REQUIRED OPTIONS:
|
|
18
|
+
--id <id> Product ID (numeric or GID format)
|
|
19
|
+
--options <json> JSON array of option objects
|
|
20
|
+
|
|
21
|
+
OPTIONAL OPTIONS:
|
|
22
|
+
--variant-strategy <strategy> Variant creation strategy
|
|
23
|
+
Values: LEAVE_AS_IS (default), CREATE
|
|
24
|
+
--session-id <id> Session ID (auto-provided)
|
|
25
|
+
--help, -h Show this help message
|
|
26
|
+
|
|
27
|
+
OPTION OBJECT FORMAT:
|
|
28
|
+
{
|
|
29
|
+
"name": "Size", // Required: Option name
|
|
30
|
+
"position": 1, // Optional: Display order (1-3)
|
|
31
|
+
"values": [ // Required: Array of value names
|
|
32
|
+
"Small",
|
|
33
|
+
"Medium",
|
|
34
|
+
"Large"
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
EXAMPLES:
|
|
39
|
+
# Add single option
|
|
40
|
+
ecomcoder product add-options \\
|
|
41
|
+
--id=123 \\
|
|
42
|
+
--options='[{"name":"Size","values":["S","M","L"]}]'
|
|
43
|
+
|
|
44
|
+
# Add multiple options (German example)
|
|
45
|
+
ecomcoder product add-options \\
|
|
46
|
+
--id=123 \\
|
|
47
|
+
--options='[
|
|
48
|
+
{"name":"Farbe","position":1,"values":["Rot","Blau","Grün"]},
|
|
49
|
+
{"name":"Größe","position":2,"values":["S","M","L","XL"]}
|
|
50
|
+
]'
|
|
51
|
+
|
|
52
|
+
# Add options and auto-create variants
|
|
53
|
+
ecomcoder product add-options \\
|
|
54
|
+
--id=123 \\
|
|
55
|
+
--variant-strategy=CREATE \\
|
|
56
|
+
--options='[{"name":"Color","values":["Red","Blue"]}]'
|
|
57
|
+
|
|
58
|
+
VARIANT STRATEGIES:
|
|
59
|
+
LEAVE_AS_IS Don't create variants automatically (default)
|
|
60
|
+
CREATE Auto-generate variants for all option combinations
|
|
61
|
+
|
|
62
|
+
CONSTRAINTS:
|
|
63
|
+
- Maximum 3 options per product
|
|
64
|
+
- Maximum 2,048 variants per product
|
|
65
|
+
- Option names must be unique within product
|
|
66
|
+
- Position values must be sequential (1, 2, 3)
|
|
67
|
+
|
|
68
|
+
NOTES:
|
|
69
|
+
- Use LEAVE_AS_IS strategy to add options without creating variants
|
|
70
|
+
- Use CREATE strategy to auto-generate all variant combinations
|
|
71
|
+
- After adding options, use 'create-variants' to add specific variants
|
|
72
|
+
- Option positions determine display order in Shopify admin
|
|
73
|
+
`);
|
|
74
|
+
process.exit(0);
|
|
75
|
+
}
|
|
76
|
+
export async function run(argv = process.argv.slice(2)) {
|
|
77
|
+
if (hasHelpFlag(argv)) {
|
|
78
|
+
showHelp();
|
|
79
|
+
}
|
|
80
|
+
const args = parseArgs(argv);
|
|
81
|
+
// Validate required arguments
|
|
82
|
+
if (!args.id) {
|
|
83
|
+
console.error(JSON.stringify({
|
|
84
|
+
success: false,
|
|
85
|
+
error: 'Missing required argument: --id'
|
|
86
|
+
}));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
if (!args.options) {
|
|
90
|
+
console.error(JSON.stringify({
|
|
91
|
+
success: false,
|
|
92
|
+
error: 'Missing required argument: --options'
|
|
93
|
+
}));
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
// Parse options JSON
|
|
98
|
+
let options;
|
|
99
|
+
try {
|
|
100
|
+
options = JSON.parse(args.options);
|
|
101
|
+
if (!Array.isArray(options)) {
|
|
102
|
+
console.error(JSON.stringify({
|
|
103
|
+
success: false,
|
|
104
|
+
error: 'Options must be a JSON array'
|
|
105
|
+
}));
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (parseError) {
|
|
110
|
+
console.error(JSON.stringify({
|
|
111
|
+
success: false,
|
|
112
|
+
error: `Invalid JSON format: ${parseError.message}`
|
|
113
|
+
}));
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
// Validate each option has required fields
|
|
117
|
+
for (let i = 0; i < options.length; i++) {
|
|
118
|
+
if (!options[i].name) {
|
|
119
|
+
console.error(JSON.stringify({
|
|
120
|
+
success: false,
|
|
121
|
+
error: `Option at index ${i} is missing required field: name`
|
|
122
|
+
}));
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
if (!options[i].values || !Array.isArray(options[i].values)) {
|
|
126
|
+
console.error(JSON.stringify({
|
|
127
|
+
success: false,
|
|
128
|
+
error: `Option at index ${i} is missing required field: values (must be array)`
|
|
129
|
+
}));
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
if (options[i].values.length === 0) {
|
|
133
|
+
console.error(JSON.stringify({
|
|
134
|
+
success: false,
|
|
135
|
+
error: `Option at index ${i} must have at least one value`
|
|
136
|
+
}));
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Validate variant strategy if provided
|
|
141
|
+
if (args.variantStrategy && !['LEAVE_AS_IS', 'CREATE'].includes(args.variantStrategy)) {
|
|
142
|
+
console.error(JSON.stringify({
|
|
143
|
+
success: false,
|
|
144
|
+
error: 'Invalid variant strategy. Must be LEAVE_AS_IS or CREATE'
|
|
145
|
+
}));
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
// Get credentials
|
|
149
|
+
const sessionId = getSessionId(args.sessionId);
|
|
150
|
+
const credentials = await getCredentials(sessionId, args.backendUrl, args.jwt);
|
|
151
|
+
// Execute via service
|
|
152
|
+
const result = await ProductService.addOptions(credentials, {
|
|
153
|
+
id: args.id,
|
|
154
|
+
options,
|
|
155
|
+
variantStrategy: args.variantStrategy
|
|
156
|
+
});
|
|
157
|
+
// Output result
|
|
158
|
+
console.log(JSON.stringify(result, null, 2));
|
|
159
|
+
if (!result.success) {
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
console.error(JSON.stringify({
|
|
165
|
+
success: false,
|
|
166
|
+
error: error.message || 'Unknown error occurred'
|
|
167
|
+
}));
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=add-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-options.js","sourceRoot":"","sources":["../../../src/commands/product/add-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/product/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/product/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2EH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,iBAiH/D"}
|
|
@@ -58,14 +58,20 @@ EXAMPLES:
|
|
|
58
58
|
--status=DRAFT
|
|
59
59
|
|
|
60
60
|
IMPORTANT NOTES:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
✅ Auto-Published: Products are automatically published to ALL sales channels.
|
|
62
|
+
The product will be immediately available on your storefront and all
|
|
63
|
+
connected sales channels.
|
|
64
|
+
|
|
65
|
+
✅ Inventory Tracking Disabled: Products are created with inventory tracking OFF.
|
|
66
|
+
This allows unlimited sales without managing stock levels.
|
|
67
|
+
You can enable tracking later in Shopify Admin if needed:
|
|
68
|
+
Products → [Product Name] → Variants → Track quantity
|
|
69
|
+
|
|
70
|
+
✅ Default Images: 6 product images are automatically added to every product.
|
|
71
|
+
These default images will be visible on your storefront immediately.
|
|
64
72
|
|
|
65
73
|
⚠️ Single Variant: Creates only 1 initial variant.
|
|
66
74
|
Use 'product create-variants' to add more variants.
|
|
67
|
-
|
|
68
|
-
⚠️ No Images: Product images must be added separately.
|
|
69
75
|
`);
|
|
70
76
|
process.exit(0);
|
|
71
77
|
}
|
|
@@ -147,9 +153,9 @@ export async function run(argv = process.argv.slice(2)) {
|
|
|
147
153
|
const result = await ProductService.createProduct(credentials, input);
|
|
148
154
|
// Output result
|
|
149
155
|
console.log(JSON.stringify(result, null, 2));
|
|
150
|
-
// Show
|
|
156
|
+
// Show success message if successful
|
|
151
157
|
if (result.success) {
|
|
152
|
-
console.error('\n
|
|
158
|
+
console.error('\n✅ Product created and published to all sales channels. Inventory tracking is disabled. 6 default images added.\n');
|
|
153
159
|
}
|
|
154
160
|
if (!result.success) {
|
|
155
161
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/product/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/product/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAwH9C"}
|
|
@@ -85,6 +85,22 @@ export function registerProductCommands() {
|
|
|
85
85
|
category: 'Updates',
|
|
86
86
|
handler: async () => await import('./update-template.js')
|
|
87
87
|
});
|
|
88
|
+
registry.register({
|
|
89
|
+
command: 'product',
|
|
90
|
+
subcommand: 'add-options',
|
|
91
|
+
description: 'Add product options (Size, Color, etc.)',
|
|
92
|
+
category: 'Updates',
|
|
93
|
+
quickExample: 'ecomcoder product add-options --id=123 --options=\'[{"name":"Size","values":["S","M","L"]}]\'',
|
|
94
|
+
handler: async () => await import('./add-options.js')
|
|
95
|
+
});
|
|
96
|
+
registry.register({
|
|
97
|
+
command: 'product',
|
|
98
|
+
subcommand: 'update-options',
|
|
99
|
+
description: 'Update existing product options',
|
|
100
|
+
category: 'Updates',
|
|
101
|
+
quickExample: 'ecomcoder product update-options --id=123 --option-id=456 --name="Tint"',
|
|
102
|
+
handler: async () => await import('./update-options.js')
|
|
103
|
+
});
|
|
88
104
|
registry.register({
|
|
89
105
|
command: 'product',
|
|
90
106
|
subcommand: 'create-variants',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,yBAAyB;IACzB,QAAQ,CAAC,aAAa,CAAC;QACrB,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;IAEH,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,qEAAqE;QACnF,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC;KACjD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,gCAAgC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC;KAC9C,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC;KACxD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE,4GAA4G;QAC1H,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC;KACxD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC;KACvD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,oBAAoB;QAChC,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC;KAC7D,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,cAAc;QAC1B,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,uDAAuD;QACrE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC;KACvD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC;KACxD,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC;KAC1D,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC;KAC1D,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,27 @@ export declare const GET_PRODUCT_METAFIELDS = "\n query getProductMetafields($i
|
|
|
55
55
|
export declare const METAFIELDS_SET = "\n mutation metafieldsSet($metafields: [MetafieldsSetInput!]!) {\n metafieldsSet(metafields: $metafields) {\n metafields {\n id\n namespace\n key\n value\n type\n createdAt\n updatedAt\n }\n userErrors {\n field\n message\n code\n }\n }\n }\n";
|
|
56
56
|
/**
|
|
57
57
|
* Create a new product from scratch
|
|
58
|
-
* Creates product with 1 initial variant
|
|
58
|
+
* Creates product with 1 initial variant and optional media
|
|
59
59
|
*/
|
|
60
|
-
export declare const PRODUCT_CREATE = "\n mutation productCreate($input: ProductInput!) {\n productCreate(input: $input) {\n product {\n id\n title\n description\n descriptionHtml\n handle\n status\n productType\n vendor\n tags\n templateSuffix\n options {\n id\n name\n position\n values\n }\n variants(first: 10) {\n edges {\n node {\n id\n title\n sku\n price\n compareAtPrice\n inventoryQuantity\n availableForSale\n }\n }\n }\n priceRangeV2 {\n minVariantPrice {\n amount\n currencyCode\n }\n maxVariantPrice {\n amount\n currencyCode\n }\n }\n }\n userErrors {\n field\n message\n }\n }\n }\n";
|
|
60
|
+
export declare const PRODUCT_CREATE = "\n mutation productCreate($input: ProductInput!, $media: [CreateMediaInput!]) {\n productCreate(input: $input, media: $media) {\n product {\n id\n title\n description\n descriptionHtml\n handle\n status\n productType\n vendor\n tags\n templateSuffix\n options {\n id\n name\n position\n values\n }\n variants(first: 10) {\n edges {\n node {\n id\n title\n sku\n price\n compareAtPrice\n inventoryQuantity\n availableForSale\n }\n }\n }\n media(first: 10) {\n edges {\n node {\n alt\n mediaContentType\n preview {\n image {\n url\n }\n }\n }\n }\n }\n priceRangeV2 {\n minVariantPrice {\n amount\n currencyCode\n }\n maxVariantPrice {\n amount\n currencyCode\n }\n }\n }\n userErrors {\n field\n message\n }\n }\n }\n";
|
|
61
|
+
/**
|
|
62
|
+
* Add options to a product
|
|
63
|
+
* Maximum 3 options per product, 2,048 variants per product
|
|
64
|
+
*/
|
|
65
|
+
export declare const PRODUCT_OPTIONS_CREATE = "\n mutation productOptionsCreate(\n $productId: ID!\n $options: [OptionCreateInput!]!\n $variantStrategy: ProductOptionCreateVariantStrategy\n ) {\n productOptionsCreate(\n productId: $productId\n options: $options\n variantStrategy: $variantStrategy\n ) {\n product {\n id\n title\n options {\n id\n name\n position\n values\n optionValues {\n id\n name\n }\n }\n variants(first: 100) {\n edges {\n node {\n id\n title\n sku\n price\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n }\n";
|
|
66
|
+
/**
|
|
67
|
+
* Update existing product option
|
|
68
|
+
* Can rename, reorder, add/update/delete values
|
|
69
|
+
*/
|
|
70
|
+
export declare const PRODUCT_OPTION_UPDATE = "\n mutation productOptionUpdate(\n $productId: ID!\n $option: OptionUpdateInput!\n $optionValuesToAdd: [OptionValueCreateInput!]\n $optionValuesToUpdate: [OptionValueUpdateInput!]\n $optionValuesToDelete: [ID!]\n $variantStrategy: ProductOptionUpdateVariantStrategy\n ) {\n productOptionUpdate(\n productId: $productId\n option: $option\n optionValuesToAdd: $optionValuesToAdd\n optionValuesToUpdate: $optionValuesToUpdate\n optionValuesToDelete: $optionValuesToDelete\n variantStrategy: $variantStrategy\n ) {\n product {\n id\n title\n options {\n id\n name\n position\n values\n optionValues {\n id\n name\n }\n }\n variants(first: 100) {\n edges {\n node {\n id\n title\n sku\n price\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n }\n";
|
|
71
|
+
/**
|
|
72
|
+
* Query all available publications (sales channels)
|
|
73
|
+
* Used to publish products to all channels
|
|
74
|
+
*/
|
|
75
|
+
export declare const GET_PUBLICATIONS = "\n query getPublications($first: Int!) {\n publications(first: $first) {\n edges {\n node {\n id\n name\n }\n }\n }\n }\n";
|
|
76
|
+
/**
|
|
77
|
+
* Publish a product to specified publications (sales channels)
|
|
78
|
+
* Makes product available on selected channels
|
|
79
|
+
*/
|
|
80
|
+
export declare const PUBLISHABLE_PUBLISH = "\n mutation publishablePublish($id: ID!, $input: [PublicationInput!]!) {\n publishablePublish(id: $id, input: $input) {\n publishable {\n availablePublicationsCount {\n count\n }\n publicationCount\n }\n shop {\n id\n }\n userErrors {\n field\n message\n }\n }\n }\n";
|
|
61
81
|
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/commands/product/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,87BAuD7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,gaAqBpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,89BAuDjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,kSAgB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,gRAc1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,oVAcxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,oeAuBxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,2YAiBxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,+SAejC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yYAmBlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,yVAmB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/commands/product/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,87BAuD7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,gaAqBpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,89BAuDjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,kSAgB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,gRAc1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,oVAcxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,oeAuBxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,2YAiBxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,+SAejC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yYAmBlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,yVAmB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,2vCA+D1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,03BA8ClC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,gpCAoDjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,gLAW5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,wWAkB/B,CAAC"}
|
|
@@ -323,11 +323,11 @@ export const METAFIELDS_SET = `
|
|
|
323
323
|
`;
|
|
324
324
|
/**
|
|
325
325
|
* Create a new product from scratch
|
|
326
|
-
* Creates product with 1 initial variant
|
|
326
|
+
* Creates product with 1 initial variant and optional media
|
|
327
327
|
*/
|
|
328
328
|
export const PRODUCT_CREATE = `
|
|
329
|
-
mutation productCreate($input: ProductInput!) {
|
|
330
|
-
productCreate(input: $input) {
|
|
329
|
+
mutation productCreate($input: ProductInput!, $media: [CreateMediaInput!]) {
|
|
330
|
+
productCreate(input: $input, media: $media) {
|
|
331
331
|
product {
|
|
332
332
|
id
|
|
333
333
|
title
|
|
@@ -358,6 +358,19 @@ export const PRODUCT_CREATE = `
|
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
|
+
media(first: 10) {
|
|
362
|
+
edges {
|
|
363
|
+
node {
|
|
364
|
+
alt
|
|
365
|
+
mediaContentType
|
|
366
|
+
preview {
|
|
367
|
+
image {
|
|
368
|
+
url
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
361
374
|
priceRangeV2 {
|
|
362
375
|
minVariantPrice {
|
|
363
376
|
amount
|
|
@@ -376,4 +389,151 @@ export const PRODUCT_CREATE = `
|
|
|
376
389
|
}
|
|
377
390
|
}
|
|
378
391
|
`;
|
|
392
|
+
/**
|
|
393
|
+
* Add options to a product
|
|
394
|
+
* Maximum 3 options per product, 2,048 variants per product
|
|
395
|
+
*/
|
|
396
|
+
export const PRODUCT_OPTIONS_CREATE = `
|
|
397
|
+
mutation productOptionsCreate(
|
|
398
|
+
$productId: ID!
|
|
399
|
+
$options: [OptionCreateInput!]!
|
|
400
|
+
$variantStrategy: ProductOptionCreateVariantStrategy
|
|
401
|
+
) {
|
|
402
|
+
productOptionsCreate(
|
|
403
|
+
productId: $productId
|
|
404
|
+
options: $options
|
|
405
|
+
variantStrategy: $variantStrategy
|
|
406
|
+
) {
|
|
407
|
+
product {
|
|
408
|
+
id
|
|
409
|
+
title
|
|
410
|
+
options {
|
|
411
|
+
id
|
|
412
|
+
name
|
|
413
|
+
position
|
|
414
|
+
values
|
|
415
|
+
optionValues {
|
|
416
|
+
id
|
|
417
|
+
name
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
variants(first: 100) {
|
|
421
|
+
edges {
|
|
422
|
+
node {
|
|
423
|
+
id
|
|
424
|
+
title
|
|
425
|
+
sku
|
|
426
|
+
price
|
|
427
|
+
selectedOptions {
|
|
428
|
+
name
|
|
429
|
+
value
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
userErrors {
|
|
436
|
+
field
|
|
437
|
+
message
|
|
438
|
+
code
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
`;
|
|
443
|
+
/**
|
|
444
|
+
* Update existing product option
|
|
445
|
+
* Can rename, reorder, add/update/delete values
|
|
446
|
+
*/
|
|
447
|
+
export const PRODUCT_OPTION_UPDATE = `
|
|
448
|
+
mutation productOptionUpdate(
|
|
449
|
+
$productId: ID!
|
|
450
|
+
$option: OptionUpdateInput!
|
|
451
|
+
$optionValuesToAdd: [OptionValueCreateInput!]
|
|
452
|
+
$optionValuesToUpdate: [OptionValueUpdateInput!]
|
|
453
|
+
$optionValuesToDelete: [ID!]
|
|
454
|
+
$variantStrategy: ProductOptionUpdateVariantStrategy
|
|
455
|
+
) {
|
|
456
|
+
productOptionUpdate(
|
|
457
|
+
productId: $productId
|
|
458
|
+
option: $option
|
|
459
|
+
optionValuesToAdd: $optionValuesToAdd
|
|
460
|
+
optionValuesToUpdate: $optionValuesToUpdate
|
|
461
|
+
optionValuesToDelete: $optionValuesToDelete
|
|
462
|
+
variantStrategy: $variantStrategy
|
|
463
|
+
) {
|
|
464
|
+
product {
|
|
465
|
+
id
|
|
466
|
+
title
|
|
467
|
+
options {
|
|
468
|
+
id
|
|
469
|
+
name
|
|
470
|
+
position
|
|
471
|
+
values
|
|
472
|
+
optionValues {
|
|
473
|
+
id
|
|
474
|
+
name
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
variants(first: 100) {
|
|
478
|
+
edges {
|
|
479
|
+
node {
|
|
480
|
+
id
|
|
481
|
+
title
|
|
482
|
+
sku
|
|
483
|
+
price
|
|
484
|
+
selectedOptions {
|
|
485
|
+
name
|
|
486
|
+
value
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
userErrors {
|
|
493
|
+
field
|
|
494
|
+
message
|
|
495
|
+
code
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
`;
|
|
500
|
+
/**
|
|
501
|
+
* Query all available publications (sales channels)
|
|
502
|
+
* Used to publish products to all channels
|
|
503
|
+
*/
|
|
504
|
+
export const GET_PUBLICATIONS = `
|
|
505
|
+
query getPublications($first: Int!) {
|
|
506
|
+
publications(first: $first) {
|
|
507
|
+
edges {
|
|
508
|
+
node {
|
|
509
|
+
id
|
|
510
|
+
name
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
`;
|
|
516
|
+
/**
|
|
517
|
+
* Publish a product to specified publications (sales channels)
|
|
518
|
+
* Makes product available on selected channels
|
|
519
|
+
*/
|
|
520
|
+
export const PUBLISHABLE_PUBLISH = `
|
|
521
|
+
mutation publishablePublish($id: ID!, $input: [PublicationInput!]!) {
|
|
522
|
+
publishablePublish(id: $id, input: $input) {
|
|
523
|
+
publishable {
|
|
524
|
+
availablePublicationsCount {
|
|
525
|
+
count
|
|
526
|
+
}
|
|
527
|
+
publicationCount
|
|
528
|
+
}
|
|
529
|
+
shop {
|
|
530
|
+
id
|
|
531
|
+
}
|
|
532
|
+
userErrors {
|
|
533
|
+
field
|
|
534
|
+
message
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
`;
|
|
379
539
|
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/commands/product/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDhC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDpC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgB7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;CAc7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;CAc3C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuB3C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;CAiB3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;CAepC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;CAmBrC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/commands/product/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDhC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDpC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgB7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;CAc7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;CAc3C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuB3C,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;CAiB3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;CAepC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;CAmBrC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;CAmB7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D7B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CrC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDpC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAW/B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;CAkBlC,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Follows Dependency Injection - accepts dependencies as parameters
|
|
6
6
|
*/
|
|
7
7
|
import type { ShopifyCredentials } from '../../lib/types.js';
|
|
8
|
-
import type { ShopifyProduct, FormattedProduct, UpdateDescriptionInput, UpdateTitleInput, UpdateStatusInput, UpdatePriceInput, UpdateTemplateInput, SetMetafieldInput, GetMetafieldInput, DeleteVariantsInput, CreateVariantsInput, CreateProductInput, CommandResult } from './types.js';
|
|
8
|
+
import type { ShopifyProduct, FormattedProduct, UpdateDescriptionInput, UpdateTitleInput, UpdateStatusInput, UpdatePriceInput, UpdateTemplateInput, SetMetafieldInput, GetMetafieldInput, DeleteVariantsInput, CreateVariantsInput, CreateProductInput, AddOptionsInput, UpdateOptionInput, CommandResult } from './types.js';
|
|
9
9
|
/**
|
|
10
10
|
* Product Service
|
|
11
11
|
*
|
|
@@ -121,5 +121,34 @@ export declare class ProductService {
|
|
|
121
121
|
createdCount: number;
|
|
122
122
|
createdVariants: any[];
|
|
123
123
|
}>>;
|
|
124
|
+
/**
|
|
125
|
+
* Add options to a product
|
|
126
|
+
*
|
|
127
|
+
* IMPORTANT:
|
|
128
|
+
* - Maximum 3 options per product
|
|
129
|
+
* - Maximum 2,048 variants per product
|
|
130
|
+
* - Option names must be unique within product
|
|
131
|
+
* - Position values must be sequential (1, 2, 3)
|
|
132
|
+
*
|
|
133
|
+
* @returns Formatted result with updated product data
|
|
134
|
+
*/
|
|
135
|
+
static addOptions(credentials: ShopifyCredentials, input: AddOptionsInput): Promise<CommandResult<{
|
|
136
|
+
product: FormattedProduct;
|
|
137
|
+
}>>;
|
|
138
|
+
/**
|
|
139
|
+
* Update existing product option
|
|
140
|
+
*
|
|
141
|
+
* Can rename, reorder, add/update/delete values
|
|
142
|
+
*
|
|
143
|
+
* IMPORTANT:
|
|
144
|
+
* - Position values must be sequential (1, 2, 3)
|
|
145
|
+
* - Option names must remain unique within product
|
|
146
|
+
* - Deleting option values may affect existing variants
|
|
147
|
+
*
|
|
148
|
+
* @returns Formatted result with updated product data
|
|
149
|
+
*/
|
|
150
|
+
static updateOption(credentials: ShopifyCredentials, input: UpdateOptionInput): Promise<CommandResult<{
|
|
151
|
+
product: FormattedProduct;
|
|
152
|
+
}>>;
|
|
124
153
|
}
|
|
125
154
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/commands/product/service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/commands/product/service.ts"],"names":[],"mappings":"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"}
|