ecomcoder-cli 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -23
- package/dist/cli.js +32 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/product/__tests__/update-description.test.js +1 -0
- package/dist/commands/product/__tests__/update-description.test.js.map +1 -1
- package/dist/commands/product/create-variants.d.ts +8 -0
- package/dist/commands/product/create-variants.d.ts.map +1 -0
- package/dist/commands/product/create-variants.js +160 -0
- package/dist/commands/product/create-variants.js.map +1 -0
- package/dist/commands/product/create.d.ts +8 -0
- package/dist/commands/product/create.d.ts.map +1 -0
- package/dist/commands/product/create.js +166 -0
- package/dist/commands/product/create.js.map +1 -0
- package/dist/commands/product/delete-variants.d.ts +8 -0
- package/dist/commands/product/delete-variants.d.ts.map +1 -0
- package/dist/commands/product/delete-variants.js +105 -0
- package/dist/commands/product/delete-variants.js.map +1 -0
- package/dist/commands/product/get-metafield.d.ts +8 -0
- package/dist/commands/product/get-metafield.d.ts.map +1 -0
- package/dist/commands/product/get-metafield.js +131 -0
- package/dist/commands/product/get-metafield.js.map +1 -0
- package/dist/commands/product/index.d.ts.map +1 -1
- package/dist/commands/product/index.js +62 -0
- package/dist/commands/product/index.js.map +1 -1
- package/dist/commands/product/queries.d.ts +31 -2
- package/dist/commands/product/queries.d.ts.map +1 -1
- package/dist/commands/product/queries.js +184 -0
- package/dist/commands/product/queries.js.map +1 -1
- package/dist/commands/product/service.d.ts +67 -1
- package/dist/commands/product/service.d.ts.map +1 -1
- package/dist/commands/product/service.js +363 -1
- package/dist/commands/product/service.js.map +1 -1
- package/dist/commands/product/set-metafield.d.ts +8 -0
- package/dist/commands/product/set-metafield.d.ts.map +1 -0
- package/dist/commands/product/set-metafield.js +174 -0
- package/dist/commands/product/set-metafield.js.map +1 -0
- package/dist/commands/product/types.d.ts +162 -0
- package/dist/commands/product/types.d.ts.map +1 -1
- package/dist/commands/product/update-status.d.ts +8 -0
- package/dist/commands/product/update-status.d.ts.map +1 -0
- package/dist/commands/product/update-status.js +105 -0
- package/dist/commands/product/update-status.js.map +1 -0
- package/dist/commands/product/utils.d.ts.map +1 -1
- package/dist/commands/product/utils.js +1 -0
- package/dist/commands/product/utils.js.map +1 -1
- package/dist/commands/products/index.d.ts.map +1 -1
- package/dist/commands/products/index.js +0 -10
- package/dist/commands/products/index.js.map +1 -1
- package/dist/commands/shop/get-metafield.d.ts +8 -0
- package/dist/commands/shop/get-metafield.d.ts.map +1 -0
- package/dist/commands/shop/get-metafield.js +117 -0
- package/dist/commands/shop/get-metafield.js.map +1 -0
- package/dist/commands/shop/index.d.ts +10 -0
- package/dist/commands/shop/index.d.ts.map +1 -0
- package/dist/commands/shop/index.js +61 -0
- package/dist/commands/shop/index.js.map +1 -0
- package/dist/commands/shop/queries.d.ts +24 -0
- package/dist/commands/shop/queries.d.ts.map +1 -0
- package/dist/commands/shop/queries.js +83 -0
- package/dist/commands/shop/queries.js.map +1 -0
- package/dist/commands/shop/service.d.ts +30 -0
- package/dist/commands/shop/service.d.ts.map +1 -0
- package/dist/commands/shop/service.js +131 -0
- package/dist/commands/shop/service.js.map +1 -0
- package/dist/commands/shop/set-metafield.d.ts +8 -0
- package/dist/commands/shop/set-metafield.d.ts.map +1 -0
- package/dist/commands/shop/set-metafield.js +174 -0
- package/dist/commands/shop/set-metafield.js.map +1 -0
- package/dist/commands/shop/types.d.ts +84 -0
- package/dist/commands/shop/types.d.ts.map +1 -0
- package/dist/commands/shop/types.js +6 -0
- package/dist/commands/shop/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Follows Dependency Injection - accepts dependencies as parameters
|
|
6
6
|
*/
|
|
7
7
|
import { shopifyGraphQL } from '../../lib/shopify-client.js';
|
|
8
|
-
import { GET_PRODUCT_BY_ID, UPDATE_PRODUCT, PRODUCT_VARIANTS_BULK_UPDATE } from './queries.js';
|
|
8
|
+
import { GET_PRODUCT_BY_ID, UPDATE_PRODUCT, PRODUCT_VARIANTS_BULK_UPDATE, PRODUCT_VARIANTS_BULK_DELETE, PRODUCT_VARIANTS_BULK_CREATE, PRODUCT_CREATE, GET_PRODUCT_METAFIELD, GET_PRODUCT_METAFIELDS, METAFIELDS_SET } from './queries.js';
|
|
9
9
|
import { normalizeProductId, normalizeVariantId, normalizeTemplateName, formatProduct, isValidPrice, formatUserErrors, hasGraphQLErrors, extractGraphQLErrors } from './utils.js';
|
|
10
10
|
/**
|
|
11
11
|
* Product Service
|
|
@@ -31,6 +31,106 @@ export class ProductService {
|
|
|
31
31
|
}
|
|
32
32
|
return product;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a new product from scratch
|
|
36
|
+
*
|
|
37
|
+
* @returns Formatted result with created product data
|
|
38
|
+
*/
|
|
39
|
+
static async createProduct(credentials, input) {
|
|
40
|
+
// Title is required
|
|
41
|
+
if (!input.title || input.title.trim().length === 0) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: 'Product title is required'
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// Build GraphQL input
|
|
48
|
+
const productInput = {
|
|
49
|
+
title: input.title.trim()
|
|
50
|
+
};
|
|
51
|
+
// Add optional fields if provided
|
|
52
|
+
if (input.descriptionHtml) {
|
|
53
|
+
productInput.descriptionHtml = input.descriptionHtml;
|
|
54
|
+
}
|
|
55
|
+
if (input.productType) {
|
|
56
|
+
productInput.productType = input.productType;
|
|
57
|
+
}
|
|
58
|
+
if (input.vendor) {
|
|
59
|
+
productInput.vendor = input.vendor;
|
|
60
|
+
}
|
|
61
|
+
if (input.status) {
|
|
62
|
+
productInput.status = input.status;
|
|
63
|
+
}
|
|
64
|
+
if (input.handle) {
|
|
65
|
+
productInput.handle = input.handle;
|
|
66
|
+
}
|
|
67
|
+
if (input.tags && input.tags.length > 0) {
|
|
68
|
+
productInput.tags = input.tags;
|
|
69
|
+
}
|
|
70
|
+
// Note: Shopify's ProductInput does not support variants field
|
|
71
|
+
// Variant price/SKU will be updated after product creation if provided
|
|
72
|
+
// Execute mutation
|
|
73
|
+
const response = await shopifyGraphQL(credentials, PRODUCT_CREATE, { input: productInput });
|
|
74
|
+
if (hasGraphQLErrors(response)) {
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const { product, userErrors } = response.data.productCreate;
|
|
81
|
+
if (userErrors && userErrors.length > 0) {
|
|
82
|
+
return {
|
|
83
|
+
success: false,
|
|
84
|
+
error: formatUserErrors(userErrors)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
if (!product) {
|
|
88
|
+
return {
|
|
89
|
+
success: false,
|
|
90
|
+
error: 'Product creation failed'
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// If variant pricing/SKU was provided, update the initial variant
|
|
94
|
+
if (input.variants && input.variants.length > 0) {
|
|
95
|
+
const variantUpdate = input.variants[0];
|
|
96
|
+
const firstVariant = product.variants.edges[0]?.node;
|
|
97
|
+
if (firstVariant && (variantUpdate.price || variantUpdate.compareAtPrice || variantUpdate.inventoryItem?.sku)) {
|
|
98
|
+
// Build variant update input
|
|
99
|
+
const variantInput = {
|
|
100
|
+
id: firstVariant.id
|
|
101
|
+
};
|
|
102
|
+
if (variantUpdate.price) {
|
|
103
|
+
variantInput.price = variantUpdate.price;
|
|
104
|
+
}
|
|
105
|
+
if (variantUpdate.compareAtPrice) {
|
|
106
|
+
variantInput.compareAtPrice = variantUpdate.compareAtPrice;
|
|
107
|
+
}
|
|
108
|
+
if (variantUpdate.inventoryItem?.sku) {
|
|
109
|
+
variantInput.inventoryItem = {
|
|
110
|
+
sku: variantUpdate.inventoryItem.sku
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Update variant using bulk update mutation
|
|
114
|
+
const updateResponse = await shopifyGraphQL(credentials, PRODUCT_VARIANTS_BULK_UPDATE, {
|
|
115
|
+
productId: product.id,
|
|
116
|
+
variants: [variantInput]
|
|
117
|
+
});
|
|
118
|
+
if (updateResponse.errors || (updateResponse.data?.productVariantsBulkUpdate?.userErrors && updateResponse.data.productVariantsBulkUpdate.userErrors.length > 0)) {
|
|
119
|
+
// Variant update failed, but product was created
|
|
120
|
+
// Continue and return product with warning
|
|
121
|
+
console.error('⚠️ Product created but variant update failed. Use update-price command to set pricing.');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Fetch full product details to return complete data
|
|
126
|
+
const fullProduct = await this.getProductById(credentials, product.id);
|
|
127
|
+
return {
|
|
128
|
+
success: true,
|
|
129
|
+
data: {
|
|
130
|
+
product: formatProduct(fullProduct)
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
34
134
|
/**
|
|
35
135
|
* Update product description
|
|
36
136
|
*
|
|
@@ -109,6 +209,146 @@ export class ProductService {
|
|
|
109
209
|
}
|
|
110
210
|
};
|
|
111
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Update product status
|
|
214
|
+
*
|
|
215
|
+
* @returns Formatted result with updated product data
|
|
216
|
+
*/
|
|
217
|
+
static async updateStatus(credentials, input) {
|
|
218
|
+
const { gid } = normalizeProductId(input.id);
|
|
219
|
+
// Build GraphQL input
|
|
220
|
+
const productInput = {
|
|
221
|
+
id: gid,
|
|
222
|
+
status: input.status
|
|
223
|
+
};
|
|
224
|
+
// Execute mutation
|
|
225
|
+
const response = await shopifyGraphQL(credentials, UPDATE_PRODUCT, { input: productInput });
|
|
226
|
+
if (hasGraphQLErrors(response)) {
|
|
227
|
+
return {
|
|
228
|
+
success: false,
|
|
229
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
const { product, userErrors } = response.data.productUpdate;
|
|
233
|
+
if (userErrors && userErrors.length > 0) {
|
|
234
|
+
return {
|
|
235
|
+
success: false,
|
|
236
|
+
error: formatUserErrors(userErrors)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
// Fetch full product details to return complete data
|
|
240
|
+
const fullProduct = await this.getProductById(credentials, product.id);
|
|
241
|
+
return {
|
|
242
|
+
success: true,
|
|
243
|
+
data: {
|
|
244
|
+
product: formatProduct(fullProduct)
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Set product metafield value
|
|
250
|
+
*
|
|
251
|
+
* @returns Formatted result with metafield data
|
|
252
|
+
*/
|
|
253
|
+
static async setMetafield(credentials, input) {
|
|
254
|
+
const { gid } = normalizeProductId(input.id);
|
|
255
|
+
// Build metafield input
|
|
256
|
+
const metafieldInput = {
|
|
257
|
+
ownerId: gid,
|
|
258
|
+
namespace: input.namespace,
|
|
259
|
+
key: input.key,
|
|
260
|
+
value: input.value,
|
|
261
|
+
type: input.type
|
|
262
|
+
};
|
|
263
|
+
// Execute mutation
|
|
264
|
+
const response = await shopifyGraphQL(credentials, METAFIELDS_SET, { metafields: [metafieldInput] });
|
|
265
|
+
if (hasGraphQLErrors(response)) {
|
|
266
|
+
return {
|
|
267
|
+
success: false,
|
|
268
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
const { metafields, userErrors } = response.data.metafieldsSet;
|
|
272
|
+
if (userErrors && userErrors.length > 0) {
|
|
273
|
+
const errorMessages = userErrors.map(e => e.message).join(', ');
|
|
274
|
+
return {
|
|
275
|
+
success: false,
|
|
276
|
+
error: `Metafield error: ${errorMessages}`
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
if (!metafields || metafields.length === 0) {
|
|
280
|
+
return {
|
|
281
|
+
success: false,
|
|
282
|
+
error: 'Metafield not created'
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
return {
|
|
286
|
+
success: true,
|
|
287
|
+
data: {
|
|
288
|
+
metafield: metafields[0]
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Get product metafield(s)
|
|
294
|
+
*
|
|
295
|
+
* @returns Formatted result with metafield data
|
|
296
|
+
*/
|
|
297
|
+
static async getMetafield(credentials, input) {
|
|
298
|
+
const { gid } = normalizeProductId(input.id);
|
|
299
|
+
// If both namespace and key provided, get specific metafield
|
|
300
|
+
if (input.namespace && input.key) {
|
|
301
|
+
const response = await shopifyGraphQL(credentials, GET_PRODUCT_METAFIELD, {
|
|
302
|
+
id: gid,
|
|
303
|
+
namespace: input.namespace,
|
|
304
|
+
key: input.key
|
|
305
|
+
});
|
|
306
|
+
if (hasGraphQLErrors(response)) {
|
|
307
|
+
return {
|
|
308
|
+
success: false,
|
|
309
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
if (!response.data?.product) {
|
|
313
|
+
return {
|
|
314
|
+
success: false,
|
|
315
|
+
error: 'Product not found'
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
return {
|
|
319
|
+
success: true,
|
|
320
|
+
data: {
|
|
321
|
+
metafield: response.data.product.metafield
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
// Otherwise, get multiple metafields (by namespace or all)
|
|
326
|
+
const response = await shopifyGraphQL(credentials, GET_PRODUCT_METAFIELDS, {
|
|
327
|
+
id: gid,
|
|
328
|
+
namespace: input.namespace || undefined,
|
|
329
|
+
first: 250
|
|
330
|
+
});
|
|
331
|
+
if (hasGraphQLErrors(response)) {
|
|
332
|
+
return {
|
|
333
|
+
success: false,
|
|
334
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
if (!response.data?.product) {
|
|
338
|
+
return {
|
|
339
|
+
success: false,
|
|
340
|
+
error: 'Product not found'
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
const metafields = response.data.product.metafields.edges.map(edge => edge.node);
|
|
344
|
+
return {
|
|
345
|
+
success: true,
|
|
346
|
+
data: {
|
|
347
|
+
metafields,
|
|
348
|
+
count: metafields.length
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
}
|
|
112
352
|
/**
|
|
113
353
|
* Update product variant price
|
|
114
354
|
* Uses productVariantsBulkUpdate mutation (current Shopify API)
|
|
@@ -269,5 +509,127 @@ export class ProductService {
|
|
|
269
509
|
}
|
|
270
510
|
};
|
|
271
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Delete product variants in bulk
|
|
514
|
+
* Uses productVariantsBulkDelete mutation (current Shopify API)
|
|
515
|
+
*
|
|
516
|
+
* IMPORTANT:
|
|
517
|
+
* - Cannot delete the last variant of a product
|
|
518
|
+
* - All variants must belong to the specified product
|
|
519
|
+
* - Cannot delete variants with active/unfulfilled orders
|
|
520
|
+
*
|
|
521
|
+
* @returns Formatted result with remaining variants
|
|
522
|
+
*/
|
|
523
|
+
static async deleteVariants(credentials, input) {
|
|
524
|
+
const { gid: productGid } = normalizeProductId(input.productId);
|
|
525
|
+
// Normalize variant IDs
|
|
526
|
+
const variantGids = input.variantIds.map(id => {
|
|
527
|
+
const { gid } = normalizeVariantId(id);
|
|
528
|
+
return gid;
|
|
529
|
+
});
|
|
530
|
+
if (variantGids.length === 0) {
|
|
531
|
+
return {
|
|
532
|
+
success: false,
|
|
533
|
+
error: 'No variant IDs provided'
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
// Execute bulk delete mutation
|
|
537
|
+
const response = await shopifyGraphQL(credentials, PRODUCT_VARIANTS_BULK_DELETE, {
|
|
538
|
+
productId: productGid,
|
|
539
|
+
variantsIds: variantGids
|
|
540
|
+
});
|
|
541
|
+
if (hasGraphQLErrors(response)) {
|
|
542
|
+
return {
|
|
543
|
+
success: false,
|
|
544
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
const { product, userErrors } = response.data.productVariantsBulkDelete;
|
|
548
|
+
if (userErrors && userErrors.length > 0) {
|
|
549
|
+
return {
|
|
550
|
+
success: false,
|
|
551
|
+
error: formatUserErrors(userErrors)
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
if (!product) {
|
|
555
|
+
return {
|
|
556
|
+
success: false,
|
|
557
|
+
error: 'Product not found or no variants deleted'
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
// Fetch full product details to return complete data
|
|
561
|
+
const fullProduct = await this.getProductById(credentials, product.id);
|
|
562
|
+
const remainingVariants = fullProduct.variants.edges.length;
|
|
563
|
+
const deletedCount = variantGids.length;
|
|
564
|
+
return {
|
|
565
|
+
success: true,
|
|
566
|
+
data: {
|
|
567
|
+
product: formatProduct(fullProduct),
|
|
568
|
+
deletedCount,
|
|
569
|
+
remainingVariants
|
|
570
|
+
}
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Create product variants in bulk
|
|
575
|
+
* Uses productVariantsBulkCreate mutation (current Shopify API)
|
|
576
|
+
*
|
|
577
|
+
* IMPORTANT:
|
|
578
|
+
* - Maximum 2,048 variants per product
|
|
579
|
+
* - SKU must be unique across all products (if provided)
|
|
580
|
+
* - Option values must match product options
|
|
581
|
+
*
|
|
582
|
+
* @returns Formatted result with created variants
|
|
583
|
+
*/
|
|
584
|
+
static async createVariants(credentials, input) {
|
|
585
|
+
const { gid: productGid } = normalizeProductId(input.productId);
|
|
586
|
+
if (input.variants.length === 0) {
|
|
587
|
+
return {
|
|
588
|
+
success: false,
|
|
589
|
+
error: 'No variants provided'
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
if (input.variants.length > 2048) {
|
|
593
|
+
return {
|
|
594
|
+
success: false,
|
|
595
|
+
error: 'Maximum 2,048 variants can be created per operation'
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
// Execute bulk create mutation
|
|
599
|
+
const response = await shopifyGraphQL(credentials, PRODUCT_VARIANTS_BULK_CREATE, {
|
|
600
|
+
productId: productGid,
|
|
601
|
+
variants: input.variants
|
|
602
|
+
});
|
|
603
|
+
if (hasGraphQLErrors(response)) {
|
|
604
|
+
return {
|
|
605
|
+
success: false,
|
|
606
|
+
error: `GraphQL error: ${extractGraphQLErrors(response)}`
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
const { productVariants, userErrors } = response.data.productVariantsBulkCreate;
|
|
610
|
+
if (userErrors && userErrors.length > 0) {
|
|
611
|
+
return {
|
|
612
|
+
success: false,
|
|
613
|
+
error: formatUserErrors(userErrors)
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
if (!productVariants || productVariants.length === 0) {
|
|
617
|
+
return {
|
|
618
|
+
success: false,
|
|
619
|
+
error: 'No variants were created'
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
// Fetch full product details to return complete data
|
|
623
|
+
const fullProduct = await this.getProductById(credentials, productGid);
|
|
624
|
+
const createdCount = productVariants.length;
|
|
625
|
+
return {
|
|
626
|
+
success: true,
|
|
627
|
+
data: {
|
|
628
|
+
product: formatProduct(fullProduct),
|
|
629
|
+
createdCount,
|
|
630
|
+
createdVariants: productVariants
|
|
631
|
+
}
|
|
632
|
+
};
|
|
633
|
+
}
|
|
272
634
|
}
|
|
273
635
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/commands/product/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/commands/product/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-metafield.d.ts","sourceRoot":"","sources":["../../../src/commands/product/set-metafield.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwGH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,iBA2E/D"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Set Product Metafield 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
|
+
Set Product Metafield
|
|
13
|
+
|
|
14
|
+
USAGE:
|
|
15
|
+
ecomcoder product set-metafield [OPTIONS]
|
|
16
|
+
|
|
17
|
+
REQUIRED OPTIONS:
|
|
18
|
+
--id <id> Product ID (numeric or GID)
|
|
19
|
+
--namespace <namespace> Metafield namespace (grouping category)
|
|
20
|
+
--key <key> Metafield key (identifier)
|
|
21
|
+
--value <value> Metafield value
|
|
22
|
+
--type <type> Metafield type
|
|
23
|
+
|
|
24
|
+
OPTIONAL:
|
|
25
|
+
--session-id Session ID (auto-provided via SESSION_ID env var)
|
|
26
|
+
--help, -h Show this help message
|
|
27
|
+
|
|
28
|
+
COMMON METAFIELD TYPES:
|
|
29
|
+
single_line_text_field Simple text
|
|
30
|
+
multi_line_text_field Text with newlines
|
|
31
|
+
number_integer Integer number
|
|
32
|
+
number_decimal Decimal number
|
|
33
|
+
boolean true or false
|
|
34
|
+
json JSON object/array
|
|
35
|
+
product_reference Single product GID
|
|
36
|
+
list.product_reference Array of product GIDs (for bundles)
|
|
37
|
+
|
|
38
|
+
EXAMPLES:
|
|
39
|
+
# Set text metafield
|
|
40
|
+
ecomcoder product set-metafield \\
|
|
41
|
+
--id=123 \\
|
|
42
|
+
--namespace=custom \\
|
|
43
|
+
--key=subtitle \\
|
|
44
|
+
--value="Premium Quality" \\
|
|
45
|
+
--type=single_line_text_field
|
|
46
|
+
|
|
47
|
+
# Set number metafield
|
|
48
|
+
ecomcoder product set-metafield \\
|
|
49
|
+
--id=123 \\
|
|
50
|
+
--namespace=inventory \\
|
|
51
|
+
--key=min_stock \\
|
|
52
|
+
--value="50" \\
|
|
53
|
+
--type=number_integer
|
|
54
|
+
|
|
55
|
+
# Set boolean metafield
|
|
56
|
+
ecomcoder product set-metafield \\
|
|
57
|
+
--id=123 \\
|
|
58
|
+
--namespace=features \\
|
|
59
|
+
--key=featured \\
|
|
60
|
+
--value="true" \\
|
|
61
|
+
--type=boolean
|
|
62
|
+
|
|
63
|
+
# Set product reference (single product)
|
|
64
|
+
ecomcoder product set-metafield \\
|
|
65
|
+
--id=123 \\
|
|
66
|
+
--namespace=upsell \\
|
|
67
|
+
--key=recommended_product \\
|
|
68
|
+
--value="gid://shopify/Product/456" \\
|
|
69
|
+
--type=product_reference
|
|
70
|
+
|
|
71
|
+
# Set product list (CRITICAL for AI bundle automation)
|
|
72
|
+
ecomcoder product set-metafield \\
|
|
73
|
+
--id=123 \\
|
|
74
|
+
--namespace=bundles \\
|
|
75
|
+
--key=products \\
|
|
76
|
+
--value='["gid://shopify/Product/456","gid://shopify/Product/789"]' \\
|
|
77
|
+
--type=list.product_reference
|
|
78
|
+
|
|
79
|
+
# Set JSON metafield
|
|
80
|
+
ecomcoder product set-metafield \\
|
|
81
|
+
--id=123 \\
|
|
82
|
+
--namespace=specs \\
|
|
83
|
+
--key=dimensions \\
|
|
84
|
+
--value='{"width":10,"height":20}' \\
|
|
85
|
+
--type=json
|
|
86
|
+
|
|
87
|
+
AI BUNDLE AUTOMATION:
|
|
88
|
+
The AI can automatically manage bundle products using list.product_reference:
|
|
89
|
+
|
|
90
|
+
1. AI searches for products matching criteria
|
|
91
|
+
2. AI collects product IDs
|
|
92
|
+
3. AI sets metafield with product list
|
|
93
|
+
4. Bundle displays instantly on storefront
|
|
94
|
+
|
|
95
|
+
Example:
|
|
96
|
+
--value='["gid://shopify/Product/123","gid://shopify/Product/456"]'
|
|
97
|
+
|
|
98
|
+
NOTES:
|
|
99
|
+
- Creates metafield if it doesn't exist, updates if it does
|
|
100
|
+
- Maximum 25 metafields per request (this command sets 1)
|
|
101
|
+
- Operation is atomic (all succeed or all fail)
|
|
102
|
+
- Maximum 10MB total payload size
|
|
103
|
+
- All values are strings (numbers/booleans as quoted strings)
|
|
104
|
+
`);
|
|
105
|
+
process.exit(0);
|
|
106
|
+
}
|
|
107
|
+
export async function run(argv = process.argv.slice(2)) {
|
|
108
|
+
if (hasHelpFlag(argv)) {
|
|
109
|
+
showHelp();
|
|
110
|
+
}
|
|
111
|
+
const args = parseArgs(argv);
|
|
112
|
+
// Validate required arguments
|
|
113
|
+
if (!args.id) {
|
|
114
|
+
console.error(JSON.stringify({
|
|
115
|
+
success: false,
|
|
116
|
+
error: 'Missing required argument: --id'
|
|
117
|
+
}));
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
if (!args.namespace) {
|
|
121
|
+
console.error(JSON.stringify({
|
|
122
|
+
success: false,
|
|
123
|
+
error: 'Missing required argument: --namespace'
|
|
124
|
+
}));
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
if (!args.key) {
|
|
128
|
+
console.error(JSON.stringify({
|
|
129
|
+
success: false,
|
|
130
|
+
error: 'Missing required argument: --key'
|
|
131
|
+
}));
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
if (!args.value) {
|
|
135
|
+
console.error(JSON.stringify({
|
|
136
|
+
success: false,
|
|
137
|
+
error: 'Missing required argument: --value'
|
|
138
|
+
}));
|
|
139
|
+
process.exit(1);
|
|
140
|
+
}
|
|
141
|
+
if (!args.type) {
|
|
142
|
+
console.error(JSON.stringify({
|
|
143
|
+
success: false,
|
|
144
|
+
error: 'Missing required argument: --type'
|
|
145
|
+
}));
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
// Get credentials
|
|
150
|
+
const sessionId = getSessionId(args.sessionId);
|
|
151
|
+
const credentials = await getCredentials(sessionId, args.backendUrl, args.jwt);
|
|
152
|
+
// Execute set metafield via service
|
|
153
|
+
const result = await ProductService.setMetafield(credentials, {
|
|
154
|
+
id: args.id,
|
|
155
|
+
namespace: args.namespace,
|
|
156
|
+
key: args.key,
|
|
157
|
+
value: args.value,
|
|
158
|
+
type: args.type
|
|
159
|
+
});
|
|
160
|
+
// Output result
|
|
161
|
+
console.log(JSON.stringify(result, null, 2));
|
|
162
|
+
if (!result.success) {
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
console.error(JSON.stringify({
|
|
168
|
+
success: false,
|
|
169
|
+
error: error.message || 'Unknown error occurred'
|
|
170
|
+
}));
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=set-metafield.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-metafield.js","sourceRoot":"","sources":["../../../src/commands/product/set-metafield.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Fb,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE7B,8BAA8B;IAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,iCAAiC;SACzC,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wCAAwC;SAChD,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,kCAAkC;SAC1C,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oCAAoC;SAC5C,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mCAAmC;SAC3C,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,kBAAkB;QAClB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/E,oCAAoC;QACpC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE;YAC5D,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,wBAAwB;SACjD,CAAC,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|