@optima-chat/commerce-cli 1.6.0 → 1.7.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.
- package/.claude/skills/commerce-product/SKILL.md +47 -17
- package/.claude/skills/commerce-storefront/SKILL.md +9 -4
- package/dist/api/rest/commerce.d.ts +69 -1
- package/dist/api/rest/commerce.d.ts.map +1 -1
- package/dist/api/rest/commerce.js +81 -2
- package/dist/api/rest/commerce.js.map +1 -1
- package/dist/commands/product/add-videos.d.ts +3 -0
- package/dist/commands/product/add-videos.d.ts.map +1 -0
- package/dist/commands/product/add-videos.js +141 -0
- package/dist/commands/product/add-videos.js.map +1 -0
- package/dist/commands/product/index.d.ts.map +1 -1
- package/dist/commands/product/index.js +8 -0
- package/dist/commands/product/index.js.map +1 -1
- package/dist/commands/product/remove-videos.d.ts +3 -0
- package/dist/commands/product/remove-videos.d.ts.map +1 -0
- package/dist/commands/product/remove-videos.js +108 -0
- package/dist/commands/product/remove-videos.js.map +1 -0
- package/dist/commands/product/reorder-videos.d.ts +3 -0
- package/dist/commands/product/reorder-videos.d.ts.map +1 -0
- package/dist/commands/product/reorder-videos.js +111 -0
- package/dist/commands/product/reorder-videos.js.map +1 -0
- package/dist/commands/product/video-status.d.ts +3 -0
- package/dist/commands/product/video-status.d.ts.map +1 -0
- package/dist/commands/product/video-status.js +186 -0
- package/dist/commands/product/video-status.js.map +1 -0
- package/dist/commands/variant/add-images.d.ts.map +1 -1
- package/dist/commands/variant/add-images.js +47 -8
- package/dist/commands/variant/add-images.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-images.d.ts","sourceRoot":"","sources":["../../../src/commands/variant/add-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"add-images.d.ts","sourceRoot":"","sources":["../../../src/commands/variant/add-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEpC,eAAO,MAAM,uBAAuB,SAAM,CAAC"}
|
|
@@ -6,9 +6,10 @@ import { handleError, createApiError, ValidationError } from '../../utils/error.
|
|
|
6
6
|
import { output } from '../../utils/output.js';
|
|
7
7
|
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
8
8
|
const cmd = new Command('add-images')
|
|
9
|
-
.description('Add images to variant (supports local files or media IDs)')
|
|
9
|
+
.description('Add images to variant (supports URLs, local files, or media IDs)')
|
|
10
10
|
.option('--product-id <uuid>', 'Product ID (required)')
|
|
11
11
|
.option('--variant-id <uuid>', 'Variant ID (required)')
|
|
12
|
+
.option('--url <urls...>', 'Image URLs (multiple allowed, recommended)')
|
|
12
13
|
.option('--path <paths...>', 'Local image file paths (multiple allowed)')
|
|
13
14
|
.option('--media-id <ids...>', 'Media IDs from upload command (multiple allowed)')
|
|
14
15
|
.action(async (options) => {
|
|
@@ -21,13 +22,19 @@ const cmd = new Command('add-images')
|
|
|
21
22
|
});
|
|
22
23
|
addEnhancedHelp(cmd, {
|
|
23
24
|
examples: [
|
|
24
|
-
'#
|
|
25
|
+
'# Method 1: Use image URLs (RECOMMENDED - simplest)',
|
|
26
|
+
'$ commerce variant add-images \\',
|
|
27
|
+
' --product-id abc-123 \\',
|
|
28
|
+
' --variant-id var-456 \\',
|
|
29
|
+
' --url "https://images.unsplash.com/photo-xxx?w=800"',
|
|
30
|
+
'',
|
|
31
|
+
'# Method 2: Upload local files',
|
|
25
32
|
'$ commerce variant add-images \\',
|
|
26
33
|
' --product-id abc-123 \\',
|
|
27
34
|
' --variant-id var-456 \\',
|
|
28
35
|
' --path ./white-front.jpg ./white-back.jpg',
|
|
29
36
|
'',
|
|
30
|
-
'#
|
|
37
|
+
'# Method 3: Use media IDs',
|
|
31
38
|
'$ commerce upload image --path ./photo.jpg',
|
|
32
39
|
'# Copy media_id from response',
|
|
33
40
|
'$ commerce variant add-images \\',
|
|
@@ -56,8 +63,8 @@ addEnhancedHelp(cmd, {
|
|
|
56
63
|
],
|
|
57
64
|
notes: [
|
|
58
65
|
'product-id and variant-id are required',
|
|
59
|
-
'Provide
|
|
60
|
-
'Using --
|
|
66
|
+
'Provide one of: --url, --path, or --media-id',
|
|
67
|
+
'Using --url is recommended (backend downloads and processes automatically)',
|
|
61
68
|
'Multiple images can be added in one command',
|
|
62
69
|
]
|
|
63
70
|
});
|
|
@@ -72,9 +79,41 @@ async function addVariantImages(options) {
|
|
|
72
79
|
}
|
|
73
80
|
const productId = options.productId;
|
|
74
81
|
const variantId = options.variantId;
|
|
75
|
-
const { path: imagePaths = [], mediaId: mediaIds = [] } = options;
|
|
76
|
-
if (imagePaths.length === 0 && mediaIds.length === 0) {
|
|
77
|
-
throw new ValidationError('请至少提供一张图片(--path 或 --media-id)', 'images');
|
|
82
|
+
const { url: imageUrls = [], path: imagePaths = [], mediaId: mediaIds = [] } = options;
|
|
83
|
+
if (imageUrls.length === 0 && imagePaths.length === 0 && mediaIds.length === 0) {
|
|
84
|
+
throw new ValidationError('请至少提供一张图片(--url、--path 或 --media-id)', 'images');
|
|
85
|
+
}
|
|
86
|
+
// 优先使用 URL(最简单,后端自动处理)
|
|
87
|
+
if (imageUrls.length > 0) {
|
|
88
|
+
const spinner = output.spinner(`正在添加 ${imageUrls.length} 张图片...`);
|
|
89
|
+
try {
|
|
90
|
+
const result = await commerceApi.variants.addImageUrls(productId, variantId, imageUrls);
|
|
91
|
+
spinner.succeed(`图片添加成功!(${imageUrls.length} 张)`);
|
|
92
|
+
if (output.isJson()) {
|
|
93
|
+
output.success({
|
|
94
|
+
product_id: productId,
|
|
95
|
+
variant_id: variantId,
|
|
96
|
+
images: result.images || [],
|
|
97
|
+
count: (result.images || []).length
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.log();
|
|
102
|
+
if (result.images && result.images.length > 0) {
|
|
103
|
+
console.log(chalk.gray('已添加图片数量: ') + chalk.green(result.images.length.toString()));
|
|
104
|
+
console.log(chalk.gray('图片 URL:'));
|
|
105
|
+
result.images.forEach((url, index) => {
|
|
106
|
+
console.log(chalk.cyan(` ${index + 1}. ${url}`));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
console.log();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
spinner.fail('图片添加失败');
|
|
114
|
+
throw createApiError(error);
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
78
117
|
}
|
|
79
118
|
// 如果有 Media IDs,直接关联
|
|
80
119
|
if (mediaIds.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-images.js","sourceRoot":"","sources":["../../../src/commands/variant/add-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;KAClC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"add-images.js","sourceRoot":"","sources":["../../../src/commands/variant/add-images.ts"],"names":[],"mappings":"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"}
|