cbs-4px-merchant-cli 0.0.7 → 0.0.9

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 (68) hide show
  1. package/README.4px.md +38 -5
  2. package/README.cainiao.md +38 -5
  3. package/README.md +38 -5
  4. package/dist/cli.js +269 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/address.js +6 -26
  7. package/dist/commands/address.js.map +1 -1
  8. package/dist/commands/claim.js +14 -34
  9. package/dist/commands/claim.js.map +1 -1
  10. package/dist/commands/config.d.ts +9 -2
  11. package/dist/commands/config.js +247 -0
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/country.js +6 -26
  14. package/dist/commands/country.js.map +1 -1
  15. package/dist/commands/custody.d.ts +38 -0
  16. package/dist/commands/custody.js +176 -0
  17. package/dist/commands/custody.js.map +1 -0
  18. package/dist/commands/customs.js +17 -65
  19. package/dist/commands/customs.js.map +1 -1
  20. package/dist/commands/finance.js +56 -204
  21. package/dist/commands/finance.js.map +1 -1
  22. package/dist/commands/label.js +6 -26
  23. package/dist/commands/label.js.map +1 -1
  24. package/dist/commands/notice.js +22 -86
  25. package/dist/commands/notice.js.map +1 -1
  26. package/dist/commands/onboarding.d.ts +79 -0
  27. package/dist/commands/onboarding.js +384 -0
  28. package/dist/commands/onboarding.js.map +1 -0
  29. package/dist/commands/order.d.ts +26 -0
  30. package/dist/commands/order.js +254 -58
  31. package/dist/commands/order.js.map +1 -1
  32. package/dist/commands/pickup.js +29 -97
  33. package/dist/commands/pickup.js.map +1 -1
  34. package/dist/commands/platform.d.ts +26 -0
  35. package/dist/commands/platform.js +254 -0
  36. package/dist/commands/platform.js.map +1 -0
  37. package/dist/commands/problem.js +57 -171
  38. package/dist/commands/problem.js.map +1 -1
  39. package/dist/commands/product.js +52 -155
  40. package/dist/commands/product.js.map +1 -1
  41. package/dist/commands/service.js +64 -186
  42. package/dist/commands/service.js.map +1 -1
  43. package/dist/commands/skill.d.ts +1 -1
  44. package/dist/commands/skill.js +1 -1
  45. package/dist/commands/track.js +20 -74
  46. package/dist/commands/track.js.map +1 -1
  47. package/dist/commands/update.js +1 -1
  48. package/dist/index.js +0 -0
  49. package/dist/services/api-client.d.ts +60 -1
  50. package/dist/services/api-client.js +316 -14
  51. package/dist/services/api-client.js.map +1 -1
  52. package/dist/types/index.d.ts +338 -1
  53. package/dist/utils/confirm.d.ts +18 -0
  54. package/dist/utils/confirm.js +50 -0
  55. package/dist/utils/confirm.js.map +1 -0
  56. package/dist/utils/run-command.d.ts +24 -0
  57. package/dist/utils/run-command.js +58 -0
  58. package/dist/utils/run-command.js.map +1 -0
  59. package/package.json +2 -1
  60. package/scripts/postinstall.js +1 -1
  61. package/skill/SKILL.md +118 -4
  62. package/skill/package.json +4 -1
  63. package/skill/reference/custody.md +193 -0
  64. package/skill/reference/index.md +34 -3
  65. package/skill/reference/onboarding.md +573 -0
  66. package/skill/reference/order.md +194 -0
  67. package/skill/reference/platform.md +317 -0
  68. package/skill/reference/update.md +1 -1
package/README.4px.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cbs-4px-merchant-cli
2
2
 
3
- > 跨境物流商家命令行工具(4PX 站点),支持物流轨迹查询、面单获取、订单详情查询、产品推荐、理赔查询。
3
+ > 跨境物流商家命令行工具(4PX 站点),支持物流轨迹查询、面单获取、普通下单与订单管理、产品推荐、理赔查询、平台拉单、商家入驻。
4
4
 
5
5
  ## 安装
6
6
 
@@ -25,11 +25,17 @@ fmc track get 4PX3000002316090CN
25
25
  # 4. 查看订单详情
26
26
  fmc order get 4PX3000002316090CN
27
27
 
28
- # 5. 产品推荐
28
+ # 5. 创建订单草稿(JSON 字段见 skill/reference/order.md)
29
+ fmc order create --file ./order.json --draft -y
30
+
31
+ # 6. 用户确认后提交预报
32
+ fmc order forecast --ids 1001 -y
33
+
34
+ # 7. 产品推荐
29
35
  fmc product recommend --country US
30
36
 
31
- # 6. 查询理赔
32
- fmc claim list --biz-no 4PX3000002316090CN
37
+ # 8. 查询理赔
38
+ fmc service claim list --biz-no 4PX3000002316090CN
33
39
  ```
34
40
 
35
41
  ## 命令列表
@@ -43,11 +49,38 @@ fmc claim list --biz-no 4PX3000002316090CN
43
49
  | `fmc track get <orderNo>` | 查询物流轨迹 |
44
50
  | `fmc label get <orderNo>` | 获取面单打印信息(PDF 链接) |
45
51
  | `fmc order get <orderNo>` | 获取订单详情 |
52
+ | `fmc order create --file <json> --draft -y` | 创建物流订单草稿(写操作) |
53
+ | `fmc order edit --order-id <id> --file <json> --draft -y` | 编辑草稿/已取消订单(写操作) |
54
+ | `fmc order forecast --ids <ids> -y` | 草稿提交预报(写操作) |
55
+ | `fmc order cancel --ids <ids> --reason <text> -y` | 取消订单(写操作) |
56
+ | `fmc order intercept --ids <ids> -y` | 申请拦截订单(写操作) |
46
57
  | `fmc product recommend --country <code>` | 产品推荐(按目的国查询) |
47
- | `fmc claim list` | 查询理赔列表 |
58
+ | `fmc problem list` | 查询异常件 / 问题件列表 |
59
+ | `fmc service claim list` | 查询理赔列表 |
60
+ | `fmc service repair list` | 查询售后工单列表 |
61
+ | `fmc finance balance` | 查询账户余额 |
62
+ | `fmc finance bill list` | 查询账单列表 |
63
+ | `fmc pickup material list` | 查询物料申请单列表 |
64
+ | `fmc notice list` | 查询系统公告列表 |
65
+ | `fmc customs commodity list` | 查询商品备案列表 |
66
+ | `fmc customs hscode search` | 查询海关编码 |
67
+ | `fmc platform account list` | 查询已授权的卖家账号 |
68
+ | `fmc platform order list` | 查询平台订单列表 |
69
+ | `fmc platform sync` | 从卖家账号拉取平台订单(写操作) |
70
+ | `fmc platform order push` | 推送平台订单履约(写操作) |
71
+ | `fmc onboarding progress` | 查询入驻进度 |
72
+ | `fmc onboarding auth indiv` | 发起个人实名认证(写操作) |
73
+ | `fmc onboarding brand open` | 开通物流品牌并申请合同(写操作) |
74
+ | `fmc onboarding contract list` | 查询合同列表 |
48
75
  | `fmc update` | 更新到最新版本 |
49
76
  | `fmc update --check` | 检查是否有新版本 |
50
77
 
78
+ 完整命令清单见 `fmc --help` 或 skill 中的 `reference/index.md`。
79
+
80
+ ### 写操作
81
+
82
+ `order create/edit/forecast/cancel/intercept`、`platform sync`、`platform order push`、`onboarding auth *`、`onboarding brand open` 会真实改变数据,默认在终端二次确认;非交互环境(管道、CI、AI Agent)必须显式加 `-y`,否则会拒绝执行。先用 `--dry-run` 可查看将发送的请求。普通下单默认先用 `order create --draft` 保存草稿,用户核对后再 `order forecast`。
83
+
51
84
  ## 全局选项
52
85
 
53
86
  | 选项 | 说明 |
package/README.cainiao.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cbs-cainiao-merchant-cli
2
2
 
3
- > 跨境物流商家命令行工具(菜鸟站点),支持物流轨迹查询、面单获取、订单详情查询、产品推荐、理赔查询。
3
+ > 跨境物流商家命令行工具(菜鸟站点),支持物流轨迹查询、面单获取、普通下单与订单管理、产品推荐、理赔查询、平台拉单、商家入驻。
4
4
 
5
5
  ## 安装
6
6
 
@@ -25,11 +25,17 @@ cmc track get 4PX3000002316090CN
25
25
  # 4. 查看订单详情
26
26
  cmc order get 4PX3000002316090CN
27
27
 
28
- # 5. 产品推荐
28
+ # 5. 创建订单草稿(JSON 字段见 skill/reference/order.md)
29
+ cmc order create --file ./order.json --draft -y
30
+
31
+ # 6. 用户确认后提交预报
32
+ cmc order forecast --ids 1001 -y
33
+
34
+ # 7. 产品推荐
29
35
  cmc product recommend --country US
30
36
 
31
- # 6. 查询理赔
32
- cmc claim list --biz-no 4PX3000002316090CN
37
+ # 8. 查询理赔
38
+ cmc service claim list --biz-no 4PX3000002316090CN
33
39
  ```
34
40
 
35
41
  ## 命令列表
@@ -43,11 +49,38 @@ cmc claim list --biz-no 4PX3000002316090CN
43
49
  | `cmc track get <orderNo>` | 查询物流轨迹 |
44
50
  | `cmc label get <orderNo>` | 获取面单打印信息(PDF 链接) |
45
51
  | `cmc order get <orderNo>` | 获取订单详情 |
52
+ | `cmc order create --file <json> --draft -y` | 创建物流订单草稿(写操作) |
53
+ | `cmc order edit --order-id <id> --file <json> --draft -y` | 编辑草稿/已取消订单(写操作) |
54
+ | `cmc order forecast --ids <ids> -y` | 草稿提交预报(写操作) |
55
+ | `cmc order cancel --ids <ids> --reason <text> -y` | 取消订单(写操作) |
56
+ | `cmc order intercept --ids <ids> -y` | 申请拦截订单(写操作) |
46
57
  | `cmc product recommend --country <code>` | 产品推荐(按目的国查询) |
47
- | `cmc claim list` | 查询理赔列表 |
58
+ | `cmc problem list` | 查询异常件 / 问题件列表 |
59
+ | `cmc service claim list` | 查询理赔列表 |
60
+ | `cmc service repair list` | 查询售后工单列表 |
61
+ | `cmc finance balance` | 查询账户余额 |
62
+ | `cmc finance bill list` | 查询账单列表 |
63
+ | `cmc pickup material list` | 查询物料申请单列表 |
64
+ | `cmc notice list` | 查询系统公告列表 |
65
+ | `cmc customs commodity list` | 查询商品备案列表 |
66
+ | `cmc customs hscode search` | 查询海关编码 |
67
+ | `cmc platform account list` | 查询已授权的卖家账号 |
68
+ | `cmc platform order list` | 查询平台订单列表 |
69
+ | `cmc platform sync` | 从卖家账号拉取平台订单(写操作) |
70
+ | `cmc platform order push` | 推送平台订单履约(写操作) |
71
+ | `cmc onboarding progress` | 查询入驻进度 |
72
+ | `cmc onboarding auth indiv` | 发起个人实名认证(写操作) |
73
+ | `cmc onboarding brand open` | 开通物流品牌并申请合同(写操作) |
74
+ | `cmc onboarding contract list` | 查询合同列表 |
48
75
  | `cmc update` | 更新到最新版本 |
49
76
  | `cmc update --check` | 检查是否有新版本 |
50
77
 
78
+ 完整命令清单见 `cmc --help` 或 skill 中的 `reference/index.md`。
79
+
80
+ ### 写操作
81
+
82
+ `order create/edit/forecast/cancel/intercept`、`platform sync`、`platform order push`、`onboarding auth *`、`onboarding brand open` 会真实改变数据,默认在终端二次确认;非交互环境(管道、CI、AI Agent)必须显式加 `-y`,否则会拒绝执行。先用 `--dry-run` 可查看将发送的请求。普通下单默认先用 `order create --draft` 保存草稿,用户核对后再 `order forecast`。
83
+
51
84
  ## 全局选项
52
85
 
53
86
  | 选项 | 说明 |
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cbs-4px-merchant-cli
2
2
 
3
- > 跨境物流商家命令行工具(4PX 站点),支持物流轨迹查询、面单获取、订单详情查询、产品推荐、理赔查询。
3
+ > 跨境物流商家命令行工具(4PX 站点),支持物流轨迹查询、面单获取、普通下单与订单管理、产品推荐、理赔查询、平台拉单、商家入驻。
4
4
 
5
5
  ## 安装
6
6
 
@@ -25,11 +25,17 @@ fmc track get 4PX3000002316090CN
25
25
  # 4. 查看订单详情
26
26
  fmc order get 4PX3000002316090CN
27
27
 
28
- # 5. 产品推荐
28
+ # 5. 创建订单草稿(JSON 字段见 skill/reference/order.md)
29
+ fmc order create --file ./order.json --draft -y
30
+
31
+ # 6. 用户确认后提交预报
32
+ fmc order forecast --ids 1001 -y
33
+
34
+ # 7. 产品推荐
29
35
  fmc product recommend --country US
30
36
 
31
- # 6. 查询理赔
32
- fmc claim list --biz-no 4PX3000002316090CN
37
+ # 8. 查询理赔
38
+ fmc service claim list --biz-no 4PX3000002316090CN
33
39
  ```
34
40
 
35
41
  ## 命令列表
@@ -43,11 +49,38 @@ fmc claim list --biz-no 4PX3000002316090CN
43
49
  | `fmc track get <orderNo>` | 查询物流轨迹 |
44
50
  | `fmc label get <orderNo>` | 获取面单打印信息(PDF 链接) |
45
51
  | `fmc order get <orderNo>` | 获取订单详情 |
52
+ | `fmc order create --file <json> --draft -y` | 创建物流订单草稿(写操作) |
53
+ | `fmc order edit --order-id <id> --file <json> --draft -y` | 编辑草稿/已取消订单(写操作) |
54
+ | `fmc order forecast --ids <ids> -y` | 草稿提交预报(写操作) |
55
+ | `fmc order cancel --ids <ids> --reason <text> -y` | 取消订单(写操作) |
56
+ | `fmc order intercept --ids <ids> -y` | 申请拦截订单(写操作) |
46
57
  | `fmc product recommend --country <code>` | 产品推荐(按目的国查询) |
47
- | `fmc claim list` | 查询理赔列表 |
58
+ | `fmc problem list` | 查询异常件 / 问题件列表 |
59
+ | `fmc service claim list` | 查询理赔列表 |
60
+ | `fmc service repair list` | 查询售后工单列表 |
61
+ | `fmc finance balance` | 查询账户余额 |
62
+ | `fmc finance bill list` | 查询账单列表 |
63
+ | `fmc pickup material list` | 查询物料申请单列表 |
64
+ | `fmc notice list` | 查询系统公告列表 |
65
+ | `fmc customs commodity list` | 查询商品备案列表 |
66
+ | `fmc customs hscode search` | 查询海关编码 |
67
+ | `fmc platform account list` | 查询已授权的卖家账号 |
68
+ | `fmc platform order list` | 查询平台订单列表 |
69
+ | `fmc platform sync` | 从卖家账号拉取平台订单(写操作) |
70
+ | `fmc platform order push` | 推送平台订单履约(写操作) |
71
+ | `fmc onboarding progress` | 查询入驻进度 |
72
+ | `fmc onboarding auth indiv` | 发起个人实名认证(写操作) |
73
+ | `fmc onboarding brand open` | 开通物流品牌并申请合同(写操作) |
74
+ | `fmc onboarding contract list` | 查询合同列表 |
48
75
  | `fmc update` | 更新到最新版本 |
49
76
  | `fmc update --check` | 检查是否有新版本 |
50
77
 
78
+ 完整命令清单见 `fmc --help` 或 skill 中的 `reference/index.md`。
79
+
80
+ ### 写操作
81
+
82
+ `order create/edit/forecast/cancel/intercept`、`platform sync`、`platform order push`、`onboarding auth *`、`onboarding brand open` 会真实改变数据,默认在终端二次确认;非交互环境(管道、CI、AI Agent)必须显式加 `-y`,否则会拒绝执行。先用 `--dry-run` 可查看将发送的请求。普通下单默认先用 `order create --draft` 保存草稿,用户核对后再 `order forecast`。
83
+
51
84
  ## 全局选项
52
85
 
53
86
  | 选项 | 说明 |
package/dist/cli.js CHANGED
@@ -5,10 +5,11 @@ import { authLogin, authStatus } from './commands/auth.js';
5
5
  import { configSet, configList, configExportSchema } from './commands/config.js';
6
6
  import { trackCommand, trackSubscriptionOrderCommand, trackSubscriptionProductCommand } from './commands/track.js';
7
7
  import { labelCommand } from './commands/label.js';
8
- import { orderCommand, orderListCommand } from './commands/order.js';
8
+ import { orderCommand, orderListCommand, orderCreateCommand, orderEditCommand, orderForecastCommand, orderCancelCommand, orderInterceptCommand, } from './commands/order.js';
9
9
  import { productCommand, productListCommand, productDetailCommand, productDeliveryTimeCommand, productSearchCommand } from './commands/product.js';
10
10
  import { claimCommand } from './commands/claim.js'; // re-homed under `service`
11
11
  import { problemListCommand, problemSuggestCommand, problemNotifyCommand, problemLastmileCommand, problemArrearCommand, problemInterceptedCommand, problemNotifyTypeCommand } from './commands/problem.js';
12
+ import { custodyElectricCommand, custodyRecommendCommand, custodyChangeCommand } from './commands/custody.js';
12
13
  import { serviceRepairCommand, serviceCheckCommand, serviceComplaintCommand, serviceDetailCommand, serviceRecordCommand, serviceClaimDetailCommand, serviceClaimReasonCommand } from './commands/service.js';
13
14
  import { financeBalanceCommand, financeBillCommand, financeDailyFeeCommand, financeUnbilledDetailCommand, financeUnbilledCommand, financeRechargeCommand, financeRechargeOfflineCommand, financeFeeDetailCommand, financeFrozenCommand } from './commands/finance.js';
14
15
  import { addressListCommand } from './commands/address.js';
@@ -19,6 +20,8 @@ import { buildUpdateCommand } from './commands/update.js';
19
20
  import { buildSkillCommand } from './commands/skill.js';
20
21
  import { buildCompletionCommand } from './commands/completion.js';
21
22
  import { customsCargoListCommand, customsCommodityListCommand, customsCommodityDetailCommand, customsHsCodeCommand, customsRegistrationInfoCommand } from './commands/customs.js';
23
+ import { platformAccountListCommand, platformSyncCommand, platformSyncRecordListCommand, platformOrderListCommand, platformOrderDetailCommand, platformOrderPushCommand } from './commands/platform.js';
24
+ import { onboardingProgressCommand, onboardingAuthScheduleCommand, onboardingAuthIndivCommand, onboardingAuthCodeCommand, onboardingAuthOrganCommand, onboardingAuthGatCommand, onboardingAuthRemitCommand, onboardingCustomerTypeCommand, onboardingBrandListCommand, onboardingBrandOpenCommand, onboardingContractListCommand, onboardingContractUrlCommand } from './commands/onboarding.js';
22
25
  import { checkCachedSync, refreshCache } from './services/update-checker.js';
23
26
  import { listSkillDirs, readInstalledVersion } from './services/skill-installer.js';
24
27
  import { PACKAGE_NAME, BIN_NAME } from './generated/site.js';
@@ -285,6 +288,50 @@ export function buildProgram() {
285
288
  .action(async (keyword, opts, cmd) => {
286
289
  await countrySearchCommand(keyword, { ...globals(cmd), ...opts });
287
290
  });
291
+ order
292
+ .command('create')
293
+ .description('创建物流订单(写)—— 订单字段从 JSON 文件读取')
294
+ .requiredOption('--file <path>', '订单 JSON 文件路径,- 表示从标准输入读取')
295
+ .option('--draft', '保存为草稿(status=D),不直接提交预报')
296
+ .option('-y, --yes', '跳过交互确认(非交互环境必传)')
297
+ .action(async (opts, cmd) => {
298
+ await orderCreateCommand({ ...globals(cmd), ...opts });
299
+ });
300
+ order
301
+ .command('edit')
302
+ .description('编辑草稿或已取消订单(写)')
303
+ .requiredOption('--order-id <id>', '要编辑的订单 ID')
304
+ .requiredOption('--file <path>', '订单 JSON 文件路径,- 表示从标准输入读取')
305
+ .option('--draft', '保持草稿状态(status=D)')
306
+ .option('-y, --yes', '跳过交互确认(非交互环境必传)')
307
+ .action(async (opts, cmd) => {
308
+ await orderEditCommand({ ...globals(cmd), ...opts });
309
+ });
310
+ order
311
+ .command('forecast')
312
+ .description('将草稿订单提交为预报(写)')
313
+ .requiredOption('--ids <ids>', '草稿订单 ID,多个用逗号分隔')
314
+ .option('-y, --yes', '跳过交互确认(非交互环境必传)')
315
+ .action(async (opts, cmd) => {
316
+ await orderForecastCommand({ ...globals(cmd), ...opts });
317
+ });
318
+ order
319
+ .command('cancel')
320
+ .description('取消已预报或草稿订单(写)')
321
+ .requiredOption('--ids <ids>', '订单 ID,多个用逗号分隔')
322
+ .requiredOption('--reason <text>', '取消原因')
323
+ .option('-y, --yes', '跳过交互确认(非交互环境必传)')
324
+ .action(async (opts, cmd) => {
325
+ await orderCancelCommand({ ...globals(cmd), ...opts });
326
+ });
327
+ order
328
+ .command('intercept')
329
+ .description('对已预报订单申请拦截(写)')
330
+ .requiredOption('--ids <ids>', '订单 ID,多个用逗号分隔')
331
+ .option('-y, --yes', '跳过交互确认(非交互环境必传)')
332
+ .action(async (opts, cmd) => {
333
+ await orderInterceptCommand({ ...globals(cmd), ...opts });
334
+ });
288
335
  program.addCommand(order);
289
336
  // mc product recommend / list / detail / fee / delivery-time / search
290
337
  const product = new Command('product').description('产品与报价');
@@ -406,6 +453,32 @@ export function buildProgram() {
406
453
  });
407
454
  problem.addCommand(problemIntercepted);
408
455
  program.addCommand(problem);
456
+ // mc custody electric / recommend / change
457
+ const custody = new Command('custody').description('异常托管(改带电/改产品)');
458
+ custody
459
+ .command('electric <orderNo>')
460
+ .description('查询可改带电产品列表及差价')
461
+ .action(async (orderNo, opts, cmd) => {
462
+ await custodyElectricCommand(orderNo, globals(cmd));
463
+ });
464
+ custody
465
+ .command('recommend <orderNo>')
466
+ .description('获取 AI 推荐改产品方案')
467
+ .requiredOption('--reason <code>', '异常原因编码,如 NC(无渠道)')
468
+ .action(async (orderNo, opts, cmd) => {
469
+ await custodyRecommendCommand(orderNo, { ...globals(cmd), ...opts });
470
+ });
471
+ custody
472
+ .command('change')
473
+ .description('批量提交改带电/改产品(写操作)')
474
+ .requiredOption('--order-nos <nos>', '物流单号,多个用逗号分隔')
475
+ .requiredOption('--pk-code <code>', '目标产品编码')
476
+ .requiredOption('--reason <code>', '异常原因编码:NZDC(内电)/CXW(磁性物品)/NC(无渠道)')
477
+ .option('-y, --yes', '跳过确认')
478
+ .action(async (opts, cmd) => {
479
+ await custodyChangeCommand({ ...globals(cmd), ...opts });
480
+ });
481
+ program.addCommand(custody);
409
482
  // mc service repair list / check list / complaint list / detail / record / claim list|detail|reason
410
483
  const service = new Command('service').description('服务中心');
411
484
  const serviceRepair = new Command('repair').description('售后工单');
@@ -733,6 +806,201 @@ export function buildProgram() {
733
806
  });
734
807
  customs.addCommand(registration);
735
808
  program.addCommand(customs);
809
+ // mc platform account list / sync / sync-record list / order list|detail|push
810
+ const platform = new Command('platform').description('平台拉单');
811
+ const platformAccount = new Command('account').description('卖家账号');
812
+ platformAccount
813
+ .command('list')
814
+ .description('查询已授权的卖家账号列表')
815
+ .option('--page <num>', '页码,默认 1')
816
+ .option('--size <num>', '每页数量,默认 10,最大 100')
817
+ .action(async (opts, cmd) => {
818
+ await platformAccountListCommand({ ...globals(cmd), ...opts });
819
+ });
820
+ platform.addCommand(platformAccount);
821
+ platform
822
+ .command('sync')
823
+ .description('从卖家账号拉取平台订单(异步,写操作)')
824
+ .requiredOption('--seller-account-id <id>', '卖家账号 ID(从 account list 获取)')
825
+ .requiredOption('--time-from <time>', '订单起始时间 (yyyy-MM-dd HH:mm:ss)')
826
+ .requiredOption('--time-to <time>', '订单截止时间 (yyyy-MM-dd HH:mm:ss)')
827
+ .option('-y, --yes', '跳过交互式确认')
828
+ .action(async (opts, cmd) => {
829
+ await platformSyncCommand({ ...globals(cmd), ...opts });
830
+ });
831
+ const platformSyncRecord = new Command('sync-record').description('拉单记录');
832
+ platformSyncRecord
833
+ .command('list')
834
+ .description('查询平台订单拉取/同步记录(用于轮询拉单结果)')
835
+ .option('--page <num>', '页码,默认 1')
836
+ .option('--size <num>', '每页数量,默认 10,最大 100')
837
+ .action(async (opts, cmd) => {
838
+ await platformSyncRecordListCommand({ ...globals(cmd), ...opts });
839
+ });
840
+ platform.addCommand(platformSyncRecord);
841
+ const platformOrder = new Command('order').description('平台订单');
842
+ platformOrder
843
+ .command('list')
844
+ .description('查询已拉取的平台订单列表')
845
+ .option('--status <code>', '订单状态:0 待推送、1 已推送,不传查全部')
846
+ .option('--keyword <word>', '关键字(平台订单号/客户订单号)')
847
+ .option('--page <num>', '页码,默认 1')
848
+ .option('--size <num>', '每页数量,默认 10,最大 100')
849
+ .action(async (opts, cmd) => {
850
+ await platformOrderListCommand({ ...globals(cmd), ...opts });
851
+ });
852
+ platformOrder
853
+ .command('detail <id>')
854
+ .description('查询平台订单详情(含收件人、报关物品)')
855
+ .action(async (id, _opts, cmd) => {
856
+ await platformOrderDetailCommand(id, globals(cmd));
857
+ });
858
+ platformOrder
859
+ .command('push')
860
+ .description('将待推送的平台订单推送到物流服务商(写操作)')
861
+ .requiredOption('--ids <ids>', '订单 ID,多个用逗号分隔')
862
+ .option('-y, --yes', '跳过交互式确认')
863
+ .action(async (opts, cmd) => {
864
+ await platformOrderPushCommand({ ...globals(cmd), ...opts });
865
+ });
866
+ platform.addCommand(platformOrder);
867
+ program.addCommand(platform);
868
+ // mc onboarding progress / customer-type / auth ... / brand ... / contract ...
869
+ const onboarding = new Command('onboarding').description('商家入驻');
870
+ onboarding
871
+ .command('progress')
872
+ .description('查询入驻进度(实名/合同申请/合同签署/品牌开通)')
873
+ .action(async (_opts, cmd) => {
874
+ await onboardingProgressCommand(globals(cmd));
875
+ });
876
+ onboarding
877
+ .command('customer-type')
878
+ .description('查询可选客户类型(0 大陆、1 港澳台、2 海外)')
879
+ .action(async (_opts, cmd) => {
880
+ await onboardingCustomerTypeCommand(globals(cmd));
881
+ });
882
+ const onboardingAuth = new Command('auth').description('实名认证');
883
+ onboardingAuth
884
+ .command('schedule')
885
+ .description('查询实名认证进度')
886
+ .action(async (_opts, cmd) => {
887
+ await onboardingAuthScheduleCommand(globals(cmd));
888
+ });
889
+ onboardingAuth
890
+ .command('indiv')
891
+ .description('发起个人实名认证(写操作,返回 flowId)')
892
+ .requiredOption('--name <name>', '姓名')
893
+ .requiredOption('--cert-number <no>', '身份证号')
894
+ .requiredOption('--mobile <mobile>', '手机号')
895
+ .requiredOption('--auth-type <type>', '认证方式:0 手机号验证、1 银行卡验证')
896
+ .option('--bank-card <no>', '银行卡号(--auth-type 1 时必填)')
897
+ .option('--agent', '作为企业认证中的经办人实名认证')
898
+ .option('-y, --yes', '跳过交互式确认')
899
+ .action(async (opts, cmd) => {
900
+ await onboardingAuthIndivCommand({ ...globals(cmd), ...opts });
901
+ });
902
+ onboardingAuth
903
+ .command('code')
904
+ .description('提交短信/银行卡验证码完成个人实名认证(写操作)')
905
+ .requiredOption('--auth-code <code>', '验证码')
906
+ .requiredOption('--flow-id <id>', 'auth indiv 返回的 flowId')
907
+ .option('--auth-type <type>', '认证方式:0 手机号、1 银行卡')
908
+ .option('--agent', '经办人认证')
909
+ .option('-y, --yes', '跳过交互式确认')
910
+ .action(async (opts, cmd) => {
911
+ await onboardingAuthCodeCommand({ ...globals(cmd), ...opts });
912
+ });
913
+ onboardingAuth
914
+ .command('organ')
915
+ .description('发起企业实名认证(写操作,需经办人已完成个人实名)')
916
+ .requiredOption('--name <name>', '企业名称')
917
+ .requiredOption('--cert-number <no>', '统一社会信用代码')
918
+ .option('--cert-type <type>', '证件类型')
919
+ .option('--agent-account-id <id>', '经办人账号 ID')
920
+ .option('-y, --yes', '跳过交互式确认')
921
+ .action(async (opts, cmd) => {
922
+ await onboardingAuthOrganCommand({ ...globals(cmd), ...opts });
923
+ });
924
+ onboardingAuth
925
+ .command('gat')
926
+ .description('提交港澳台/海外客户实名资料(写操作,人工审核)')
927
+ .requiredOption('--customer-profile <code>', '客户类型:1 港澳台、2 海外(大陆客户用 auth indiv)')
928
+ .requiredOption('--entity <code>', '经济主体:1 个人、2 企业')
929
+ .requiredOption('--name <name>', '个人姓名或企业名称')
930
+ .requiredOption('--mobile <mobile>', '手机号')
931
+ .requiredOption('--email <email>', '邮箱')
932
+ .option('--contact-name <name>', '联系人姓名(企业)')
933
+ .option('--legal-person <name>', '法人姓名(企业)')
934
+ .option('--cert-number <no>', '企业证件号(企业)')
935
+ .option('--country <name>', '国家名称')
936
+ .option('--country-code <code>', '国家编码')
937
+ .option('--alpha2-code <code>', '国家二字码')
938
+ .option('--state <name>', '省')
939
+ .option('--state-code <code>', '省编码')
940
+ .option('--city <name>', '市')
941
+ .option('--city-code <code>', '市编码')
942
+ .option('--county <name>', '区/县')
943
+ .option('--county-code <code>', '区/县编码')
944
+ .option('--address <address>', '详细地址')
945
+ .option('-y, --yes', '跳过交互式确认')
946
+ .action(async (opts, cmd) => {
947
+ await onboardingAuthGatCommand({ ...globals(cmd), ...opts });
948
+ });
949
+ onboardingAuth
950
+ .command('remit')
951
+ .description('校验企业对公打款金额(写操作,有重试次数限制)')
952
+ .requiredOption('--flow-id <id>', '认证流程 ID')
953
+ .requiredOption('--amount <cents>', '打款金额(单位:分)')
954
+ .option('-y, --yes', '跳过交互式确认')
955
+ .action(async (opts, cmd) => {
956
+ await onboardingAuthRemitCommand({ ...globals(cmd), ...opts });
957
+ });
958
+ onboarding.addCommand(onboardingAuth);
959
+ const onboardingBrand = new Command('brand').description('品牌开通');
960
+ onboardingBrand
961
+ .command('list')
962
+ .description('查询可开通品牌及支持的认证方式')
963
+ .option('--customer-type <code>', '客户类型(0 大陆、1 港澳台、2 海外),默认当前客户类型')
964
+ .action(async (opts, cmd) => {
965
+ await onboardingBrandListCommand({ ...globals(cmd), ...opts });
966
+ });
967
+ onboardingBrand
968
+ .command('open')
969
+ .description('开通物流品牌并申请合同(写操作,仅大陆已实名客户)')
970
+ .requiredOption('--service-code <code>', '品牌编码(如 DSS,从 brand list 获取)')
971
+ .requiredOption('--country <name>', '国家(如:中国)')
972
+ .requiredOption('--address <address>', '详细地址')
973
+ .requiredOption('--customer-name <name>', '客户名称')
974
+ .requiredOption('--contact-name <name>', '联系人姓名')
975
+ .requiredOption('--mobile <mobile>', '手机号')
976
+ .requiredOption('--email <email>', '邮箱')
977
+ .option('--customer-type <code>', '客户类型')
978
+ .option('--state <name>', '省')
979
+ .option('--city <name>', '市')
980
+ .option('--county <name>', '区/县')
981
+ .option('--legal-name <name>', '企业法人姓名(企业客户必填)')
982
+ .option('-y, --yes', '跳过交互式确认')
983
+ .action(async (opts, cmd) => {
984
+ await onboardingBrandOpenCommand({ ...globals(cmd), ...opts });
985
+ });
986
+ onboarding.addCommand(onboardingBrand);
987
+ const onboardingContract = new Command('contract').description('合同管理');
988
+ onboardingContract
989
+ .command('list')
990
+ .description('查询 DSS 直发品牌的合同列表')
991
+ .option('--page <num>', '页码,默认 1')
992
+ .option('--size <num>', '每页数量,默认 10,最大 100')
993
+ .action(async (opts, cmd) => {
994
+ await onboardingContractListCommand({ ...globals(cmd), ...opts });
995
+ });
996
+ onboardingContract
997
+ .command('url <contractCode>')
998
+ .description('获取合同签署链接或下载链接(请勿频繁调用)')
999
+ .action(async (contractCode, _opts, cmd) => {
1000
+ await onboardingContractUrlCommand(contractCode, globals(cmd));
1001
+ });
1002
+ onboarding.addCommand(onboardingContract);
1003
+ program.addCommand(onboarding);
736
1004
  // mc update [--check] [--tag] [--force] [-y] [--output json]
737
1005
  program.addCommand(buildUpdateCommand());
738
1006
  // mc skill install | status | uninstall (roadmap ext-1)