@optima-chat/commerce-cli 1.15.0 → 1.16.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 (37) hide show
  1. package/dist/api/rest/commerce.d.ts +29 -0
  2. package/dist/api/rest/commerce.d.ts.map +1 -1
  3. package/dist/api/rest/commerce.js +29 -0
  4. package/dist/api/rest/commerce.js.map +1 -1
  5. package/dist/commands/product/create.d.ts.map +1 -1
  6. package/dist/commands/product/create.js +10 -0
  7. package/dist/commands/product/create.js.map +1 -1
  8. package/dist/commands/product/custom-fields/add.d.ts +3 -0
  9. package/dist/commands/product/custom-fields/add.d.ts.map +1 -0
  10. package/dist/commands/product/custom-fields/add.js +117 -0
  11. package/dist/commands/product/custom-fields/add.js.map +1 -0
  12. package/dist/commands/product/custom-fields/index.d.ts +3 -0
  13. package/dist/commands/product/custom-fields/index.d.ts.map +1 -0
  14. package/dist/commands/product/custom-fields/index.js +12 -0
  15. package/dist/commands/product/custom-fields/index.js.map +1 -0
  16. package/dist/commands/product/custom-fields/list.d.ts +3 -0
  17. package/dist/commands/product/custom-fields/list.d.ts.map +1 -0
  18. package/dist/commands/product/custom-fields/list.js +57 -0
  19. package/dist/commands/product/custom-fields/list.js.map +1 -0
  20. package/dist/commands/product/custom-fields/remove.d.ts +3 -0
  21. package/dist/commands/product/custom-fields/remove.d.ts.map +1 -0
  22. package/dist/commands/product/custom-fields/remove.js +36 -0
  23. package/dist/commands/product/custom-fields/remove.js.map +1 -0
  24. package/dist/commands/product/custom-fields/update.d.ts +3 -0
  25. package/dist/commands/product/custom-fields/update.d.ts.map +1 -0
  26. package/dist/commands/product/custom-fields/update.js +90 -0
  27. package/dist/commands/product/custom-fields/update.js.map +1 -0
  28. package/dist/commands/product/index.d.ts.map +1 -1
  29. package/dist/commands/product/index.js +3 -1
  30. package/dist/commands/product/index.js.map +1 -1
  31. package/dist/commands/product/update.d.ts.map +1 -1
  32. package/dist/commands/product/update.js +33 -1
  33. package/dist/commands/product/update.js.map +1 -1
  34. package/dist/utils/format.d.ts.map +1 -1
  35. package/dist/utils/format.js +3 -0
  36. package/dist/utils/format.js.map +1 -1
  37. package/package.json +1 -1
@@ -0,0 +1,117 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { commerceApi } from '../../../api/rest/commerce.js';
4
+ import { handleError, ValidationError, createApiError } from '../../../utils/error.js';
5
+ import { output } from '../../../utils/output.js';
6
+ import { addEnhancedHelp } from '../../../utils/helpText.js';
7
+ const cmd = new Command('add')
8
+ .description('Add a custom field to a product')
9
+ .requiredOption('--product-id <uuid>', 'Product ID')
10
+ .requiredOption('--name <string>', 'Field internal name (e.g., "birthday")')
11
+ .option('--label <string>', 'Display label (defaults to name)')
12
+ .requiredOption('--type <string>', 'Field type: text, textarea, or file')
13
+ .option('--required', 'Mark field as required')
14
+ .option('--placeholder <string>', 'Placeholder text')
15
+ .option('--max-length <number>', 'Max length for text/textarea fields')
16
+ .option('--allowed-file-types <types>', 'Allowed MIME types for file fields (comma-separated, e.g., "image/jpeg,image/png")')
17
+ .option('--max-file-size-mb <number>', 'Max file size in MB for file fields')
18
+ .option('--position <number>', 'Display order position (default: 1)')
19
+ .action(async (options) => {
20
+ try {
21
+ // Validate field type
22
+ if (!['text', 'textarea', 'file'].includes(options.type)) {
23
+ throw new ValidationError('Field type must be text, textarea, or file', 'type');
24
+ }
25
+ const data = {
26
+ name: options.name,
27
+ label: options.label || options.name,
28
+ field_type: options.type,
29
+ required: options.required || false,
30
+ };
31
+ if (options.placeholder)
32
+ data.placeholder = options.placeholder;
33
+ if (options.maxLength) {
34
+ const maxLength = parseInt(options.maxLength, 10);
35
+ if (isNaN(maxLength) || maxLength <= 0) {
36
+ throw new ValidationError('max-length must be a positive number', 'max-length');
37
+ }
38
+ data.max_length = maxLength;
39
+ }
40
+ if (options.allowedFileTypes) {
41
+ data.allowed_file_types = options.allowedFileTypes.split(',').map((t) => t.trim());
42
+ }
43
+ if (options.maxFileSizeMb) {
44
+ const maxSize = parseInt(options.maxFileSizeMb, 10);
45
+ if (isNaN(maxSize) || maxSize <= 0) {
46
+ throw new ValidationError('max-file-size-mb must be a positive number', 'max-file-size-mb');
47
+ }
48
+ data.max_file_size_mb = maxSize;
49
+ }
50
+ if (options.position) {
51
+ data.position = parseInt(options.position, 10);
52
+ }
53
+ const spinner = output.spinner('正在添加自定义字段...');
54
+ try {
55
+ const field = await commerceApi.customFields.create(options.productId, data);
56
+ spinner.succeed('自定义字段添加成功!');
57
+ if (output.isJson()) {
58
+ output.success(field);
59
+ }
60
+ else {
61
+ console.log();
62
+ console.log(chalk.gray('ID:') + ' ' + field.id);
63
+ console.log(chalk.gray('Name:') + ' ' + field.name);
64
+ console.log(chalk.gray('Label:') + ' ' + (field.label || field.name));
65
+ console.log(chalk.gray('Type:') + ' ' + field.field_type);
66
+ console.log(chalk.gray('Required:') + ' ' + (field.required ? chalk.red('Yes') : chalk.gray('No')));
67
+ if (field.placeholder)
68
+ console.log(chalk.gray('Placeholder:') + ' ' + field.placeholder);
69
+ if (field.max_length)
70
+ console.log(chalk.gray('Max Length:') + ' ' + field.max_length);
71
+ if (field.allowed_file_types)
72
+ console.log(chalk.gray('File Types:') + ' ' + field.allowed_file_types.join(', '));
73
+ if (field.max_file_size_mb)
74
+ console.log(chalk.gray('Max Size:') + ' ' + field.max_file_size_mb + 'MB');
75
+ console.log();
76
+ }
77
+ }
78
+ catch (error) {
79
+ spinner.fail('自定义字段添加失败');
80
+ throw createApiError(error);
81
+ }
82
+ }
83
+ catch (error) {
84
+ handleError(error);
85
+ }
86
+ });
87
+ addEnhancedHelp(cmd, {
88
+ examples: [
89
+ '# Add a text field',
90
+ '$ commerce product custom-fields add \\',
91
+ ' --product-id abc-123 \\',
92
+ ' --name "engraving" --label "Engraving Text" \\',
93
+ ' --type text --required --max-length 50',
94
+ '',
95
+ '# Add a file upload field',
96
+ '$ commerce product custom-fields add \\',
97
+ ' --product-id abc-123 \\',
98
+ ' --name "reference_photo" --label "Reference Photo" \\',
99
+ ' --type file \\',
100
+ ' --allowed-file-types "image/jpeg,image/png" \\',
101
+ ' --max-file-size-mb 10',
102
+ '',
103
+ '# Add an optional textarea field',
104
+ '$ commerce product custom-fields add \\',
105
+ ' --product-id abc-123 \\',
106
+ ' --name "special_instructions" --label "Special Instructions" \\',
107
+ ' --type textarea --max-length 500',
108
+ ],
109
+ notes: [
110
+ 'Field types: text (single line), textarea (multi-line), file (file upload)',
111
+ '--required flag makes the field mandatory for buyers at checkout',
112
+ 'For file fields, use --allowed-file-types to restrict MIME types',
113
+ 'Position determines display order (lower = higher priority)',
114
+ ],
115
+ });
116
+ export const addCustomFieldCommand = cmd;
117
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const customFieldsCommand: Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,mBAAmB,SAKO,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ import { listCustomFieldsCommand } from './list.js';
3
+ import { addCustomFieldCommand } from './add.js';
4
+ import { updateCustomFieldCommand } from './update.js';
5
+ import { removeCustomFieldCommand } from './remove.js';
6
+ export const customFieldsCommand = new Command('custom-fields')
7
+ .description('Manage custom fields for products (buyer input fields)')
8
+ .addCommand(listCustomFieldsCommand)
9
+ .addCommand(addCustomFieldCommand)
10
+ .addCommand(updateCustomFieldCommand)
11
+ .addCommand(removeCustomFieldCommand);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KAC5D,WAAW,CAAC,wDAAwD,CAAC;KACrE,UAAU,CAAC,uBAAuB,CAAC;KACnC,UAAU,CAAC,qBAAqB,CAAC;KACjC,UAAU,CAAC,wBAAwB,CAAC;KACpC,UAAU,CAAC,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const listCustomFieldsCommand: Command;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,eAAO,MAAM,uBAAuB,SAAM,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { commerceApi } from '../../../api/rest/commerce.js';
4
+ import { handleError } from '../../../utils/error.js';
5
+ import { output } from '../../../utils/output.js';
6
+ import { addEnhancedHelp } from '../../../utils/helpText.js';
7
+ import Table from 'cli-table3';
8
+ const cmd = new Command('list')
9
+ .description('List custom fields for a product')
10
+ .requiredOption('--product-id <uuid>', 'Product ID')
11
+ .action(async (options) => {
12
+ try {
13
+ const fields = await commerceApi.customFields.list(options.productId);
14
+ if (output.isJson()) {
15
+ output.success({ fields, total: fields.length });
16
+ return;
17
+ }
18
+ if (!fields || fields.length === 0) {
19
+ console.log(chalk.yellow('\n暂无自定义字段'));
20
+ return;
21
+ }
22
+ const table = new Table({
23
+ head: [
24
+ chalk.cyan('ID'),
25
+ chalk.cyan('Name'),
26
+ chalk.cyan('Label'),
27
+ chalk.cyan('Type'),
28
+ chalk.cyan('Required'),
29
+ chalk.cyan('Position'),
30
+ ],
31
+ colWidths: [38, 20, 20, 10, 10, 10],
32
+ });
33
+ for (const field of fields) {
34
+ table.push([
35
+ field.id,
36
+ field.name,
37
+ field.label || field.name,
38
+ field.field_type,
39
+ field.required ? chalk.red('Yes') : chalk.gray('No'),
40
+ String(field.position || 0),
41
+ ]);
42
+ }
43
+ console.log(`\n${chalk.cyan.bold('自定义字段')} (${fields.length})`);
44
+ console.log(table.toString());
45
+ }
46
+ catch (error) {
47
+ handleError(error);
48
+ }
49
+ });
50
+ addEnhancedHelp(cmd, {
51
+ examples: [
52
+ '# List custom fields for a product',
53
+ '$ commerce product custom-fields list --product-id abc-123',
54
+ ],
55
+ });
56
+ export const listCustomFieldsCommand = cmd;
57
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,MAAM,YAAY,CAAC;AAM/B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC5B,WAAW,CAAC,kCAAkC,CAAC;KAC/C,cAAc,CAAC,qBAAqB,EAAE,YAAY,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtE,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,IAAI,EAAE;gBACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;aACvB;YACD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;SACpC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI;gBACzB,KAAK,CAAC,UAAU;gBAChB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe,CAAC,GAAG,EAAE;IACnB,QAAQ,EAAE;QACR,oCAAoC;QACpC,4DAA4D;KAC7D;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const removeCustomFieldCommand: Command;
3
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CpC,eAAO,MAAM,wBAAwB,SAAM,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Command } from 'commander';
2
+ import { commerceApi } from '../../../api/rest/commerce.js';
3
+ import { handleError, createApiError } from '../../../utils/error.js';
4
+ import { output } from '../../../utils/output.js';
5
+ import { addEnhancedHelp } from '../../../utils/helpText.js';
6
+ const cmd = new Command('remove')
7
+ .description('Remove a custom field from a product')
8
+ .requiredOption('--product-id <uuid>', 'Product ID')
9
+ .requiredOption('--field-id <uuid>', 'Custom field ID')
10
+ .action(async (options) => {
11
+ try {
12
+ const spinner = output.spinner('正在删除自定义字段...');
13
+ try {
14
+ await commerceApi.customFields.delete(options.productId, options.fieldId);
15
+ spinner.succeed('自定义字段已删除');
16
+ if (output.isJson()) {
17
+ output.success({ deleted: true, field_id: options.fieldId });
18
+ }
19
+ }
20
+ catch (error) {
21
+ spinner.fail('自定义字段删除失败');
22
+ throw createApiError(error);
23
+ }
24
+ }
25
+ catch (error) {
26
+ handleError(error);
27
+ }
28
+ });
29
+ addEnhancedHelp(cmd, {
30
+ examples: [
31
+ '# Remove a custom field',
32
+ '$ commerce product custom-fields remove --product-id abc-123 --field-id def-456',
33
+ ],
34
+ });
35
+ export const removeCustomFieldCommand = cmd;
36
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC9B,WAAW,CAAC,sCAAsC,CAAC;KACnD,cAAc,CAAC,qBAAqB,EAAE,YAAY,CAAC;KACnD,cAAc,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1E,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE5B,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe,CAAC,GAAG,EAAE;IACnB,QAAQ,EAAE;QACR,yBAAyB;QACzB,iFAAiF;KAClF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const updateCustomFieldCommand: Command;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0GpC,eAAO,MAAM,wBAAwB,SAAM,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { commerceApi } from '../../../api/rest/commerce.js';
4
+ import { handleError, ValidationError, createApiError } from '../../../utils/error.js';
5
+ import { output } from '../../../utils/output.js';
6
+ import { addEnhancedHelp } from '../../../utils/helpText.js';
7
+ const cmd = new Command('update')
8
+ .description('Update a custom field')
9
+ .requiredOption('--product-id <uuid>', 'Product ID')
10
+ .requiredOption('--field-id <uuid>', 'Custom field ID')
11
+ .option('--label <string>', 'Display label')
12
+ .option('--required', 'Mark as required')
13
+ .option('--no-required', 'Mark as optional')
14
+ .option('--placeholder <string>', 'Placeholder text')
15
+ .option('--max-length <number>', 'Max length for text fields')
16
+ .option('--allowed-file-types <types>', 'Allowed MIME types (comma-separated)')
17
+ .option('--max-file-size-mb <number>', 'Max file size in MB')
18
+ .option('--position <number>', 'Display order position')
19
+ .action(async (options) => {
20
+ try {
21
+ const data = {};
22
+ if (options.label)
23
+ data.label = options.label;
24
+ if (options.required === true)
25
+ data.required = true;
26
+ if (options.noRequired === true)
27
+ data.required = false;
28
+ if (options.placeholder)
29
+ data.placeholder = options.placeholder;
30
+ if (options.maxLength) {
31
+ const maxLength = parseInt(options.maxLength, 10);
32
+ if (isNaN(maxLength) || maxLength <= 0) {
33
+ throw new ValidationError('max-length must be a positive number', 'max-length');
34
+ }
35
+ data.max_length = maxLength;
36
+ }
37
+ if (options.allowedFileTypes) {
38
+ data.allowed_file_types = options.allowedFileTypes.split(',').map((t) => t.trim());
39
+ }
40
+ if (options.maxFileSizeMb) {
41
+ const maxSize = parseInt(options.maxFileSizeMb, 10);
42
+ if (isNaN(maxSize) || maxSize <= 0) {
43
+ throw new ValidationError('max-file-size-mb must be a positive number', 'max-file-size-mb');
44
+ }
45
+ data.max_file_size_mb = maxSize;
46
+ }
47
+ if (options.position) {
48
+ data.position = parseInt(options.position, 10);
49
+ }
50
+ if (Object.keys(data).length === 0) {
51
+ throw new ValidationError('请至少提供一个要更新的字段');
52
+ }
53
+ const spinner = output.spinner('正在更新自定义字段...');
54
+ try {
55
+ const field = await commerceApi.customFields.update(options.productId, options.fieldId, data);
56
+ spinner.succeed('自定义字段更新成功!');
57
+ if (output.isJson()) {
58
+ output.success(field);
59
+ }
60
+ else {
61
+ console.log();
62
+ console.log(chalk.gray('ID:') + ' ' + field.id);
63
+ console.log(chalk.gray('Name:') + ' ' + field.name);
64
+ console.log(chalk.gray('Label:') + ' ' + (field.label || field.name));
65
+ console.log(chalk.gray('Required:') + ' ' + (field.required ? chalk.red('Yes') : chalk.gray('No')));
66
+ console.log();
67
+ }
68
+ }
69
+ catch (error) {
70
+ spinner.fail('自定义字段更新失败');
71
+ throw createApiError(error);
72
+ }
73
+ }
74
+ catch (error) {
75
+ handleError(error);
76
+ }
77
+ });
78
+ addEnhancedHelp(cmd, {
79
+ examples: [
80
+ '# Make a field required',
81
+ '$ commerce product custom-fields update --product-id abc-123 --field-id def-456 --required',
82
+ '',
83
+ '# Update label and placeholder',
84
+ '$ commerce product custom-fields update \\',
85
+ ' --product-id abc-123 --field-id def-456 \\',
86
+ ' --label "Your Message" --placeholder "Enter your message here"',
87
+ ],
88
+ });
89
+ export const updateCustomFieldCommand = cmd;
90
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/product/custom-fields/update.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,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,eAAO,MAAM,cAAc,SAcF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,eAAO,MAAM,cAAc,SAeO,CAAC"}
@@ -12,6 +12,7 @@ import { removeVideosCommand } from './remove-videos.js';
12
12
  import { reorderVideosCommand } from './reorder-videos.js';
13
13
  import { videoStatusCommand } from './video-status.js';
14
14
  import { urlCommand } from './url.js';
15
+ import { customFieldsCommand } from './custom-fields/index.js';
15
16
  export const productCommand = new Command('product')
16
17
  .description('商品管理')
17
18
  .addCommand(createProductCommand)
@@ -26,5 +27,6 @@ export const productCommand = new Command('product')
26
27
  .addCommand(removeVideosCommand)
27
28
  .addCommand(reorderVideosCommand)
28
29
  .addCommand(videoStatusCommand)
29
- .addCommand(urlCommand);
30
+ .addCommand(urlCommand)
31
+ .addCommand(customFieldsCommand);
30
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,MAAM,CAAC;KACnB,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,iBAAiB,CAAC;KAC7B,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/product/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,MAAM,CAAC;KACnB,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,iBAAiB,CAAC;KAC7B,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,mBAAmB,CAAC;KAC/B,UAAU,CAAC,oBAAoB,CAAC;KAChC,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,UAAU,CAAC;KACtB,UAAU,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/product/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6HpC,eAAO,MAAM,oBAAoB,SAAM,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/product/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+IpC,eAAO,MAAM,oBAAoB,SAAM,CAAC"}
@@ -11,6 +11,7 @@ const cmd = new Command('update')
11
11
  .option('--name <string>', 'Product name')
12
12
  .option('--handle <string>', 'URL-friendly slug for product page')
13
13
  .option('--price <number>', 'Product price')
14
+ .option('--original-price <number>', 'Original price for showing discounts (must be > price)')
14
15
  .option('--description <string>', 'Product description')
15
16
  .option('--stock <number>', 'Stock quantity')
16
17
  .option('--sku <string>', 'SKU code')
@@ -25,6 +26,8 @@ const cmd = new Command('update')
25
26
  .option('--hs-code <string>', 'Harmonized System code for customs')
26
27
  .option('--country-of-origin <string>', 'Country of origin (ISO 2-letter code, e.g., CN, US)')
27
28
  .option('--customs-description <string>', 'Customs description for international shipping')
29
+ .option('--digital', 'Mark as digital product (no shipping required)')
30
+ .option('--requires-shipping', 'Mark as physical product (requires shipping)')
28
31
  .action(async (options) => {
29
32
  try {
30
33
  if (!options.id) {
@@ -48,6 +51,9 @@ addEnhancedHelp(cmd, {
48
51
  ' --price 39.99 \\',
49
52
  ' --stock 150',
50
53
  '',
54
+ '# Set discount (original price > sale price)',
55
+ '$ commerce product update --id abc-123-def --price 29.99 --original-price 39.99',
56
+ '',
51
57
  '# Update shipping attributes (for Easyship)',
52
58
  '$ commerce product update --id abc-123-def \\',
53
59
  ' --weight 0.35 \\',
@@ -56,6 +62,13 @@ addEnhancedHelp(cmd, {
56
62
  ' --country-of-origin CN \\',
57
63
  ' --customs-description "Ceramic mug for beverages"',
58
64
  '',
65
+ '',
66
+ '# Mark product as digital (no shipping)',
67
+ '$ commerce product update --id abc-123-def --digital',
68
+ '',
69
+ '# Revert to physical product',
70
+ '$ commerce product update --id abc-123-def --requires-shipping',
71
+ '',
59
72
  '# Change product status',
60
73
  '$ commerce product update --id abc-123-def --status inactive',
61
74
  '',
@@ -85,11 +98,13 @@ addEnhancedHelp(cmd, {
85
98
  notes: [
86
99
  'Product ID is required, use \'commerce product list\' to find IDs',
87
100
  'Only specified fields will be updated, others remain unchanged',
101
+ '--original-price sets the strikethrough price for showing discounts (must be > price)',
88
102
  'Status values: active (live), inactive (hidden), draft (unpublished), archived',
89
103
  'handle must be unique and URL-safe (lowercase, hyphens only)',
90
104
  'Weight is in kg, dimensions (length/width/height) are in cm',
91
105
  'HS code format: "6912.00" (for ceramics), country code: ISO 2-letter (CN, US, etc.)',
92
106
  'Customs description is used for international shipping declarations',
107
+ '--digital and --requires-shipping toggle the shipping requirement for the product',
93
108
  ],
94
109
  });
95
110
  export const updateProductCommand = cmd;
@@ -102,6 +117,7 @@ async function updateProduct(productId, options) {
102
117
  const hasUpdates = !!(options.name ||
103
118
  options.handle ||
104
119
  options.price ||
120
+ options.originalPrice ||
105
121
  options.description !== undefined ||
106
122
  options.stock ||
107
123
  options.sku ||
@@ -115,7 +131,9 @@ async function updateProduct(productId, options) {
115
131
  options.height ||
116
132
  options.hsCode ||
117
133
  options.countryOfOrigin ||
118
- options.customsDescription);
134
+ options.customsDescription ||
135
+ options.digital ||
136
+ options.requiresShipping);
119
137
  if (!hasUpdates) {
120
138
  throw new ValidationError('请至少提供一个要更新的字段');
121
139
  }
@@ -134,6 +152,13 @@ async function updateProduct(productId, options) {
134
152
  }
135
153
  updateData.price = price;
136
154
  }
155
+ if (options.originalPrice) {
156
+ const originalPrice = parseFloat(options.originalPrice);
157
+ if (isNaN(originalPrice) || originalPrice <= 0) {
158
+ throw new ValidationError('原价必须是大于 0 的数字', 'original-price');
159
+ }
160
+ updateData.original_price = originalPrice;
161
+ }
137
162
  if (options.description !== undefined) {
138
163
  updateData.description = options.description;
139
164
  }
@@ -194,6 +219,13 @@ async function updateProduct(productId, options) {
194
219
  if (options.customsDescription) {
195
220
  updateData.customs_description = options.customsDescription;
196
221
  }
222
+ // Digital product flag (Issue #98)
223
+ if (options.digital) {
224
+ updateData.requires_shipping = false;
225
+ }
226
+ else if (options.requiresShipping) {
227
+ updateData.requires_shipping = true;
228
+ }
197
229
  // 添加 tags(如果提供)
198
230
  if (options.tags) {
199
231
  const tags = options.tags.split(',').map((tag) => tag.trim()).filter((tag) => tag.length > 0);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/product/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/product/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE,MAAc,GAAG,MAAM,CAGpF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAGlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAetD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAU,GAAG,MAAM,CAQtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAyClD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CA8BrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CA8G9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CA6BxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,CA4B5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAyBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAoCzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CA2ClD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAgCvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAqEhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAkCpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CA4BvD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE,MAAc,GAAG,MAAM,CAGpF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAGlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAetD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAU,GAAG,MAAM,CAQtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CA6ClD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CA8BrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CA8G9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CA6BxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,CA4B5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAyBpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAoCzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CA2ClD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAgCvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAqEhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAkCpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CA4BvD"}
@@ -146,6 +146,9 @@ export function formatProduct(product) {
146
146
  lines.push(`${chalk.gray('价格:')} ${chalk.green(formatPrice(product.price || 0, product.currency || 'USD'))}`);
147
147
  lines.push(`${chalk.gray('库存:')} ${formatStockStatus(product.stock_quantity || product.stock || product.quantity || 0)}`);
148
148
  lines.push(`${chalk.gray('状态:')} ${formatProductStatus(product.status || 'active')}`);
149
+ if (product.requires_shipping === false) {
150
+ lines.push(`${chalk.gray('类型:')} ${chalk.blue('数字产品 (Digital)')}`);
151
+ }
149
152
  if (product.description) {
150
153
  lines.push(`${chalk.gray('描述:')} ${product.description}`);
151
154
  }