siluzan-tso-cli 1.1.21 → 1.1.22-beta.11
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 +3 -2
- package/dist/index.js +632 -535
- package/dist/skill/AGENTS.md +45 -0
- package/dist/skill/SKILL.md +55 -347
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/assets/campaign-create-template.json +1 -1
- package/dist/skill/assets/campaign-create-template.md +5 -5
- package/dist/skill/assets/pmax-create-template.md +6 -5
- package/dist/skill/docs/skill-guide.md +44 -0
- package/dist/skill/references/README.md +73 -0
- package/dist/skill/references/{accounts.md → accounts/accounts.md} +37 -37
- package/dist/skill/references/{currency.md → accounts/currency.md} +7 -7
- package/dist/skill/references/{finance.md → accounts/finance.md} +18 -18
- package/dist/skill/references/accounts/open-account-by-media.md +153 -0
- package/dist/skill/references/{open-account-google-ui.md → accounts/open-account-google-ui.md} +2 -2
- package/dist/skill/references/{write-audit-restore.md → accounts/write-audit-restore.md} +4 -4
- package/dist/skill/references/{account-analytics.md → analytics/account-analytics.md} +62 -33
- package/dist/skill/references/{google-analysis-batch.md → analytics/google-analysis-batch.md} +2 -2
- package/dist/skill/references/{keyword-planner-workflows.md → analytics/keyword-planner-workflows.md} +17 -17
- package/dist/skill/references/{rag.md → analytics/rag.md} +11 -11
- package/dist/skill/references/{reporting.md → analytics/reporting.md} +16 -16
- package/dist/skill/references/core/agent-conventions.md +180 -0
- package/dist/skill/references/core/playbooks.md +141 -0
- package/dist/skill/references/{setup.md → core/setup.md} +5 -5
- package/dist/skill/references/core/skill-authoring.md +192 -0
- package/dist/skill/references/{tips.md → core/tips.md} +5 -6
- package/dist/skill/references/{workflows.md → core/workflows.md} +63 -65
- package/dist/skill/references/{google-ads-campaign-plan.md → google-ads/google-ads-campaign-plan.md} +25 -25
- package/dist/skill/references/{google-ads.md → google-ads/google-ads.md} +63 -67
- package/dist/skill/references/{pmax-api.md → google-ads/pmax-api.md} +0 -2
- package/dist/skill/references/google-ads/rules/README.md +21 -0
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-account-audit.md +19 -19
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-campaign-optimization.md +1 -1
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-optimization.md +1 -1
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-strategy.md +3 -3
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-keyword-taxonomy.md +2 -2
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-launch-plan-template.md +8 -8
- package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-pmax-guide.md +2 -2
- package/dist/skill/references/{tso-home.md → misc/tso-home.md} +5 -5
- package/dist/skill/references/{clue.md → operations/clue.md} +7 -7
- package/dist/skill/references/{forewarning.md → operations/forewarning.md} +6 -6
- package/dist/skill/references/{hosted-automation-monitoring-json.md → operations/hosted-automation-monitoring-json.md} +14 -14
- package/dist/skill/references/{hosted-automation-optimize-ab-winner.md → operations/hosted-automation-optimize-ab-winner.md} +4 -4
- package/dist/skill/references/{hosted-automation-optimize-index.md → operations/hosted-automation-optimize-index.md} +6 -6
- package/dist/skill/references/{hosted-automation-optimize-scale.md → operations/hosted-automation-optimize-scale.md} +8 -8
- package/dist/skill/references/{hosted-automation-optimize-weak-downbid.md → operations/hosted-automation-optimize-weak-downbid.md} +9 -9
- package/dist/skill/references/operations/hosted-automation-scenarios.md +23 -0
- package/dist/skill/references/{hosted-automation-self-control.md → operations/hosted-automation-self-control.md} +28 -28
- package/{assets/siluzan-ads/references → dist/skill/references/operations}/hosted-automation-user-catalog.md +13 -13
- package/dist/skill/references/{optimize.md → operations/optimize.md} +5 -5
- package/dist/skill/report-templates/README.md +2 -1
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +2 -2
- package/dist/skill/report-templates/google-ads-diagnosis.md +2 -2
- package/dist/skill/report-templates/google-inquiry-analysis.md +11 -12
- package/dist/skill/report-templates/google-period-report.md +2 -2
- package/dist/skill/report-templates/okki-weekly-google-client.md +12 -12
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +4 -4
- package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +3 -3
- package/eval/cases/accounts-single-balance-not-bulk.scenario.json +3 -3
- package/eval/cases/budget-display-not-raw-micros.scenario.json +3 -3
- package/eval/cases/clue-meta-leads-json.scenario.json +4 -4
- package/eval/cases/clue-tiktok-leads-json.scenario.json +3 -3
- package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +1 -1
- package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +1 -1
- package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +1 -1
- package/eval/cases/finance-invoice-info-list.scenario.json +3 -3
- package/eval/cases/forewarning-list-google.scenario.json +3 -3
- package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +3 -3
- package/eval/cases/google-analysis-keywords-route.scenario.json +2 -2
- package/eval/cases/hosted-sop-cpa-spike-downbid.scenario.json +6 -6
- package/eval/cases/hosted-sop-daily-budget-circuit-breaker.scenario.json +4 -4
- package/eval/cases/hosted-sop-empty-spend-pause-p1.scenario.json +5 -5
- package/eval/cases/human-p1-multiturn.scenario.json +1 -1
- package/eval/cases/meta-single-balance-not-bulk.scenario.json +4 -4
- package/eval/cases/no-legacy-json-flag.scenario.json +12 -0
- package/eval/cases/open-account-bing-noninteractive.scenario.json +3 -3
- package/eval/cases/open-account-google-noninteractive.scenario.json +2 -2
- package/eval/cases/open-account-tiktok-license-file.scenario.json +2 -2
- package/eval/cases/optimize-list-by-account.scenario.json +3 -3
- package/eval/cases/p1-single-account-profile.scenario.json +2 -2
- package/eval/cases/p2-balance-scan-bulk.scenario.json +1 -1
- package/eval/cases/p4-period-report-window.scenario.json +1 -1
- package/eval/cases/rag-before-keyword-expand.scenario.json +3 -3
- package/eval/cases/rag-list-then-query.scenario.json +5 -5
- package/eval/cases/report-list-google.scenario.json +3 -3
- package/eval/cases/report-push-list-google.scenario.json +3 -3
- package/eval/cases/reporting-vs-account-analytics-routing.scenario.json +4 -4
- package/eval/cases/setup-login-or-env.scenario.json +2 -2
- package/eval/cases/setup-siluzan-data-permission-env.scenario.json +2 -2
- package/eval/cases/skill-optimize-vs-google-ads-distinction.scenario.json +4 -4
- package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +2 -2
- package/eval/cases/time-range-user-delegates-default.scenario.json +2 -2
- package/eval/cases/tips-json-out-filtering.scenario.json +12 -0
- package/eval/cases/tips-large-json-pagination.scenario.json +3 -3
- package/eval/cases/uj-ad-bluetooth-keywords-exclude-cheap-free.scenario.json +1 -1
- package/eval/cases/uj-ad-campaign-validate-before-create-stub.scenario.json +3 -3
- package/eval/cases/uj-ad-keywords-camping-tent-outdoor-plan.scenario.json +1 -1
- package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +3 -3
- package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +2 -2
- package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +3 -3
- package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +4 -4
- package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +3 -3
- package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +4 -4
- package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +2 -2
- package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +4 -4
- package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +5 -5
- package/eval/cases/uj-ops-open-google-b2c-usd-shenzhen.scenario.json +3 -3
- package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +2 -2
- package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +4 -4
- package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +3 -3
- package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +3 -3
- package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +4 -4
- package/eval/cases/uj-patrol-google-balances-low.scenario.json +3 -3
- package/eval/cases/uj-roi-full-google-account-diagnosis.scenario.json +1 -1
- package/eval/cases/uj-roi-keywords-high-cpa-low-cvr-triage.scenario.json +1 -1
- package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +4 -4
- package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +2 -2
- package/package.json +4 -3
- package/dist/skill/references/hosted-automation-scenarios.md +0 -23
- package/dist/skill/references/hosted-automation-user-catalog.md +0 -38
- package/eval/cases/tips-json-filtering.scenario.json +0 -12
- /package/dist/skill/references/{geo-continents.json → analytics/geo-continents.json} +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-audience-strategy.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-compliance.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-conversion-architecture.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-creative-optimization.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/google-ads-landing-page-discovery-via-webfetch.md +0 -0
- /package/dist/skill/references/{google-ads-rules → google-ads/rules}/sensitive-industries.md +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# References 索引
|
|
2
|
+
|
|
3
|
+
> Agent 按 `SKILL.md`「任务 → 文档」表 Read 对应文件;维护者见 `core/skill-authoring.md`。
|
|
4
|
+
|
|
5
|
+
## 基础与纪律
|
|
6
|
+
|
|
7
|
+
| 文件 | 用途 |
|
|
8
|
+
| ---- | ---- |
|
|
9
|
+
| `core/setup.md` | 安装、登录(手机验证码优先)、配置、更新 |
|
|
10
|
+
| `core/agent-conventions.md` | **Agent 必读**:加载纪律、硬规范、数据转换、时间/币种/批量 |
|
|
11
|
+
| `core/tips.md` | `--json-out` 协议、outline→JSON 处理顺序 |
|
|
12
|
+
| `core/playbooks.md` | P1–P7 高频任务标准动作 |
|
|
13
|
+
| `core/workflows.md` | 多命令串联业务流程 |
|
|
14
|
+
| `core/skill-authoring.md` | Skill 文档维护最佳实践(维护者) |
|
|
15
|
+
|
|
16
|
+
## 账户与财务
|
|
17
|
+
|
|
18
|
+
| 文件 | 用途 |
|
|
19
|
+
| ---- | ---- |
|
|
20
|
+
| `accounts/accounts.md` | 列表、余额、消耗、分享、MCC/BC/BM、balance-scan、accounts-digest |
|
|
21
|
+
| `accounts/currency.md` | CNY/USD 字段来源、符号、跨币种禁止求和 |
|
|
22
|
+
| `accounts/open-account-by-media.md` | 各媒体开户命令与参数 |
|
|
23
|
+
| `accounts/open-account-google-ui.md` | Google 开户网页 ↔ CLI 字段对照 |
|
|
24
|
+
| `accounts/finance.md` | 转账、开票、充值 |
|
|
25
|
+
| `accounts/write-audit-restore.md` | 写审计、`--commit`、restore |
|
|
26
|
+
|
|
27
|
+
## Google 广告
|
|
28
|
+
|
|
29
|
+
| 文件 | 用途 |
|
|
30
|
+
| ---- | ---- |
|
|
31
|
+
| `google-ads/google-ads.md` | Google Ads CRUD、batch、拒审字段 |
|
|
32
|
+
| `google-ads/google-ads-campaign-plan.md` | 搜索系列 7 步流水线、validate/create |
|
|
33
|
+
| `google-ads/pmax-api.md` | PMax 网关路径、金额口径 |
|
|
34
|
+
| `analytics/keyword-planner-workflows.md` | keyword / google-analysis 拓词 |
|
|
35
|
+
| `google-ads/rules/README.md` | 优化/合规 SOP 索引 |
|
|
36
|
+
|
|
37
|
+
## 分析与报告
|
|
38
|
+
|
|
39
|
+
| 文件 | 用途 |
|
|
40
|
+
| ---- | ---- |
|
|
41
|
+
| `analytics/account-analytics.md` | 拉数、数据时效性、诊断模板 |
|
|
42
|
+
| `analytics/google-analysis-batch.md` | 多账户批处理 run/resume/status |
|
|
43
|
+
| `analytics/reporting.md` | TSO 优化报告生成与推送 |
|
|
44
|
+
| `analytics/rag.md` | 知识库 list/query |
|
|
45
|
+
| `analytics/geo-continents.json` | 国家→大洲映射(询盘分析) |
|
|
46
|
+
|
|
47
|
+
## 运营工具
|
|
48
|
+
|
|
49
|
+
| 文件 | 用途 |
|
|
50
|
+
| ---- | ---- |
|
|
51
|
+
| `operations/optimize.md` | AI 优化建议记录 |
|
|
52
|
+
| `operations/forewarning.md` | 智能预警 |
|
|
53
|
+
| `operations/clue.md` | TikTok / Meta 线索表单 |
|
|
54
|
+
| `operations/hosted-automation-user-catalog.md` | 高阶自动化能力目录 |
|
|
55
|
+
| `operations/hosted-automation-self-control.md` | 预算/CPA/空耗自控 SOP |
|
|
56
|
+
| `operations/hosted-automation-monitoring-json.md` | 异常监控 JSON 键名 |
|
|
57
|
+
| `operations/hosted-automation-optimize-index.md` | 自动优化 SOP 索引 |
|
|
58
|
+
| `operations/hosted-automation-scenarios.md` | 宿主编排场景索引 |
|
|
59
|
+
|
|
60
|
+
## Assets 模板(`../assets/`)
|
|
61
|
+
|
|
62
|
+
| 文件 | 用途 |
|
|
63
|
+
| ---- | ---- |
|
|
64
|
+
| `campaign-create-template.md` / `.json` | 搜索系列 batch 契约 |
|
|
65
|
+
| `pmax-create-template.md` / `.json` | PMax 新建契约 |
|
|
66
|
+
| `pmax-asset-group-template.json` | PMax 素材组 |
|
|
67
|
+
| `pmax-signals-template.json` | PMax 信号 |
|
|
68
|
+
| `pmax-assets-update-template.json` | PMax 素材更新 |
|
|
69
|
+
| `pmax-patch-campaign-template.json` | PMax 系列 patch |
|
|
70
|
+
|
|
71
|
+
## 报告模板(`../report-templates/`)
|
|
72
|
+
|
|
73
|
+
见 `report-templates/README.md`。
|
|
@@ -15,7 +15,7 @@ siluzan-tso list-accounts [选项]
|
|
|
15
15
|
| `-s, --status <status>` | 账户状态:`normal \| invalid \| all`(默认 all) |
|
|
16
16
|
| `-p, --page <n>` | 页码(默认 1) |
|
|
17
17
|
| `--page-size <n>` | 每页数量(默认 20) |
|
|
18
|
-
| `--json` | 输出原始 JSON |
|
|
18
|
+
| `--json-out` | 输出原始 JSON |
|
|
19
19
|
| `--unicode` | 表格使用 Unicode 线框;**默认**为 ASCII `+- | ` 线框(兼容各类终端) |
|
|
20
20
|
| `--plain` | 已默认 ASCII,无需再传;保留兼容旧脚本 |
|
|
21
21
|
|
|
@@ -29,7 +29,7 @@ siluzan-tso list-accounts -m Google
|
|
|
29
29
|
siluzan-tso list-accounts -k "品牌A"
|
|
30
30
|
|
|
31
31
|
# 只看正常状态,输出 JSON 供后续处理
|
|
32
|
-
siluzan-tso list-accounts -m TikTok -s normal --json
|
|
32
|
+
siluzan-tso list-accounts -m TikTok -s normal --json-out ./snap
|
|
33
33
|
|
|
34
34
|
# 分页获取(第 2 页,每页 50 条)
|
|
35
35
|
siluzan-tso list-accounts --page 2 --page-size 50
|
|
@@ -41,7 +41,7 @@ siluzan-tso list-accounts --page 2 --page-size 50
|
|
|
41
41
|
| ----------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
42
42
|
| `entityId` | 丝路赞内部 ID,`delink`/`share`、**`account-active-bills`** 等操作使用此 ID(**不是** `mediaCustomerId`) |
|
|
43
43
|
| `mediaCustomerId` | 媒体平台账户数字 ID(Google Customer ID 等) |
|
|
44
|
-
| `currencyCode` | 账户主币种:`CNY`(人民币)或 `USD`(美金)等;**表格有「币种」列**;报告/Excel 须与此一致,见 `currency.md` |
|
|
44
|
+
| `currencyCode` | 账户主币种:`CNY`(人民币)或 `USD`(美金)等;**表格有「币种」列**;报告/Excel 须与此一致,见 `accounts/currency.md` |
|
|
45
45
|
| `name` | 账户名称 |
|
|
46
46
|
| `status` | 账户状态 |
|
|
47
47
|
|
|
@@ -53,17 +53,17 @@ siluzan-tso list-accounts --page 2 --page-size 50
|
|
|
53
53
|
|
|
54
54
|
`GET {apiBaseUrl}/AccountActiveBills/{Media}/{entityId}`
|
|
55
55
|
|
|
56
|
-
路径末尾的 **`entityId`** 必须为 **`list-accounts --json`** 返回的账户 **`entityId`**(UUID 形态),**不能**传 `mediaCustomerId` 数字 ID。请求会带 **Datapermission**(与浏览器一致)。
|
|
56
|
+
路径末尾的 **`entityId`** 必须为 **`list-accounts --json-out ./snap`** 返回的账户 **`entityId`**(UUID 形态),**不能**传 `mediaCustomerId` 数字 ID。请求会带 **Datapermission**(与浏览器一致)。
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
siluzan-tso account-active-bills -m <媒体> --id <entityId> [--json]
|
|
59
|
+
siluzan-tso account-active-bills -m <媒体> --id <entityId> [--json-out ./snap]
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
| 选项 | 说明 |
|
|
63
63
|
| -------------------- | ------------------------------------------------------------------------------------ |
|
|
64
64
|
| `-m, --media <type>` | 必填:`Google \| TikTok \| Yandex \| MetaAd \| BingV2 \| Kwai`(与路径中媒体段一致) |
|
|
65
65
|
| `--id <entityId>` | 必填:账户 `entityId` |
|
|
66
|
-
| `--json` | 输出接口原始 JSON |
|
|
66
|
+
| `--json-out` | 输出接口原始 JSON |
|
|
67
67
|
|
|
68
68
|
**响应体常用字段(以接口返回为准):**
|
|
69
69
|
|
|
@@ -84,13 +84,13 @@ siluzan-tso account-active-bills -m <媒体> --id <entityId> [--json]
|
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
86
|
# 从列表取 entityId
|
|
87
|
-
siluzan-tso list-accounts -m Google --json
|
|
87
|
+
siluzan-tso list-accounts -m Google --json-out ./snap
|
|
88
88
|
|
|
89
89
|
# 查询该账户激活账单(将下方 UUID 换成实际 entityId)
|
|
90
90
|
siluzan-tso account-active-bills -m Google --id 18176820-6204-43c2-9a1f-0d0f5e9eb957
|
|
91
91
|
|
|
92
92
|
# 原始 JSON,便于脚本解析
|
|
93
|
-
siluzan-tso account-active-bills -m Google --id 18176820-6204-43c2-9a1f-0d0f5e9eb957 --json
|
|
93
|
+
siluzan-tso account-active-bills -m Google --id 18176820-6204-43c2-9a1f-0d0f5e9eb957 --json-out ./snap
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
> **勿在文档或聊天中粘贴真实 JWT。** CI 环境基址为 `https://tso-api-ci.siluzan.com`,生产为 `https://tso-api.siluzan.com`(由 `config` / 构建环境决定)。
|
|
@@ -107,7 +107,7 @@ siluzan-tso balance -m <媒体类型> -a <账户ID列表>
|
|
|
107
107
|
| ---------------------- | ------------------------------------------------------------------------------------ |
|
|
108
108
|
| `-m, --media <type>` | 媒体类型(必填) |
|
|
109
109
|
| `-a, --accounts <ids>` | 账户 `mediaCustomerId`(数字 ID),多个用逗号分隔(必填)。**注意:不是 `entityId`** |
|
|
110
|
-
| `--json` | 输出原始 JSON;不支持或查询失败时 stdout 为 `{"ok":false,"error":"..."}` |
|
|
110
|
+
| `--json-out` | 输出原始 JSON;不支持或查询失败时 stdout 为 `{"ok":false,"error":"..."}` |
|
|
111
111
|
|
|
112
112
|
**示例:**
|
|
113
113
|
|
|
@@ -119,7 +119,7 @@ siluzan-tso balance -m Google -a 6326027735
|
|
|
119
119
|
siluzan-tso balance -m TikTok -a 1234567890,9876543210
|
|
120
120
|
|
|
121
121
|
# JSON 输出,供脚本使用
|
|
122
|
-
siluzan-tso balance -m Google -a 6326027735 --json
|
|
122
|
+
siluzan-tso balance -m Google -a 6326027735 --json-out ./snap
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**单户余额与续航**:`balance` 只反映当前余额;判断「还能跑几天 / 是否够花」需结合 `stats`(或业务侧日均消耗)等数据。向用户展示 JSON 时,`mediaCustomerId` 须与本次 `-a` 查询的 ID 及命令输出一致。
|
|
@@ -132,7 +132,7 @@ siluzan-tso balance -m Google -a 6326027735 --json
|
|
|
132
132
|
|
|
133
133
|
一条命令替代 AI 对每个账户循环 `list-accounts -k` + `stats`。**多账户汇总表、对比消耗、跨账户巡检** 应优先本命令,禁止外层 for-loop 逐户 `stats`。
|
|
134
134
|
|
|
135
|
-
> **数据时效性**:与 `stats` / `balance-scan` 相同(Google `account-spend-overview` 分流;TikTok/Yandex/BingV2/Kwai 为截至昨天的 `accountsoverview`)。完整表见 `references/account-analytics.md` 顶部。
|
|
135
|
+
> **数据时效性**:与 `stats` / `balance-scan` 相同(Google `account-spend-overview` 分流;TikTok/Yandex/BingV2/Kwai 为截至昨天的 `accountsoverview`)。完整表见 `references/analytics/account-analytics.md` 顶部。
|
|
136
136
|
|
|
137
137
|
```bash
|
|
138
138
|
siluzan-tso accounts-digest -m <媒体类型> [选项]
|
|
@@ -147,13 +147,13 @@ siluzan-tso accounts-digest -m <媒体类型> [选项]
|
|
|
147
147
|
| `--min-spend <n>` | 过滤:区间内消耗 ≤ 此值的账户不返回 | `0` |
|
|
148
148
|
| `--page-size <n>` | 全量扫描时清单分页大小(上限 500) | `200` |
|
|
149
149
|
| `--max-pages <n>` | 全量扫描时最多页数(上限 200) | `20` |
|
|
150
|
-
| `--json` | stdout 输出完整 JSON
|
|
150
|
+
| `--json-out` | stdout 输出完整 JSON() | — |
|
|
151
151
|
| `--json-out <path>` | **Agent 推荐**:落盘目录或 `*.json` 文件;stdout 一行摘要(含 `outlineFile`、`writtenFiles`、`manifestFile`) | — |
|
|
152
152
|
|
|
153
153
|
**`--json-out` 落盘(Agent 必读)**:
|
|
154
154
|
|
|
155
155
|
- 目录模式典型文件:`accounts-digest-<媒体小写>.json`(如 `accounts-digest-google.json`)、同 stem 的 `accounts-digest-google.outline.txt`、`cli-manifest-<媒体小写>.json`。
|
|
156
|
-
- 处理顺序见 `references/tips.md`:先 stdout 摘要 → 再 `outlineFile` → 再 `require(writtenFiles[0])` 读真实数据;**禁止**在对话里手填 `data.items` 中的业务数。
|
|
156
|
+
- 处理顺序见 `references/core/tips.md`:先 stdout 摘要 → 再 `outlineFile` → 再 `require(writtenFiles[0])` 读真实数据;**禁止**在对话里手填 `data.items` 中的业务数。
|
|
157
157
|
- 响应结构:`{ ok, data: { items: [...] }, meta: { media, window, scanned, returned, source, totals, currencyNote, generatedAt } }`。
|
|
158
158
|
- `meta.source`:`list` = 全量翻清单后拉数;`subset` = 传了 `-a`,跳过清单翻页(**`advertiserName` 会缺失**,公司名列显示 `-`)。
|
|
159
159
|
|
|
@@ -182,7 +182,7 @@ siluzan-tso accounts-digest -m Google -a id1,id2 --min-spend 10 \
|
|
|
182
182
|
--start 2026-04-01 --end 2026-04-15 --json-out ./snap-p3
|
|
183
183
|
```
|
|
184
184
|
|
|
185
|
-
**`data.items[]` 主要字段**:`mediaCustomerId`、`name`、`advertiserName`、`currencyCode`、`balance`、`spend`、`impressions`、`clicks`、`conversions`、`ctr`(%)、`cpc`、`cpa`。跨币种汇总见 `references/currency.md`(**禁止**对 `meta.totals` 跨币种直接当最终结论)。
|
|
185
|
+
**`data.items[]` 主要字段**:`mediaCustomerId`、`name`、`advertiserName`、`currencyCode`、`balance`、`spend`、`impressions`、`clicks`、`conversions`、`ctr`(%)、`cpc`、`cpa`。跨币种汇总见 `references/accounts/currency.md`(**禁止**对 `meta.totals` 跨币种直接当最终结论)。
|
|
186
186
|
|
|
187
187
|
---
|
|
188
188
|
|
|
@@ -194,7 +194,7 @@ siluzan-tso accounts-digest -m Google -a id1,id2 --min-spend 10 \
|
|
|
194
194
|
> - 窗口完全在历史 → `database` 模式:含余额、状态、币种、账户名、当期展点消等完整字段;
|
|
195
195
|
> - 窗口包含今天 → `googleCombined` 模式:只返回实时聚合的展点消(**没有**余额/状态/币种/账户名)。
|
|
196
196
|
> - **TikTok / Yandex / BingV2 / Kwai**:走旧版 `accountsoverview`,每日凌晨同步昨天数据,**不能查今天**。判断这几家的「今天/当天/今日消耗」仍需走 `google-analysis(-batch) --sections overview`(仅 Google)。
|
|
197
|
-
> - 完整时效性表见 `references/account-analytics.md` 顶部。
|
|
197
|
+
> - 完整时效性表见 `references/analytics/account-analytics.md` 顶部。
|
|
198
198
|
|
|
199
199
|
```bash
|
|
200
200
|
siluzan-tso stats -m <媒体类型> [选项]
|
|
@@ -207,7 +207,7 @@ siluzan-tso stats -m <媒体类型> [选项]
|
|
|
207
207
|
| `--start <YYYY-MM-DD>` | 开始日期 | 7 天前 |
|
|
208
208
|
| `--end <YYYY-MM-DD>` | 结束日期 | 昨天 |
|
|
209
209
|
| `--start-date` / `--end-date` | 与 `--start` / `--end` 同义(CLI 别名,与 SKILL Playbook 一致) | — |
|
|
210
|
-
| `--json` | 输出原始 JSON;**失败时 stdout 仍为 JSON**(`{"ok":false,"error":"..."}`) | — |
|
|
210
|
+
| `--json-out` | 输出原始 JSON;**失败时 stdout 仍为 JSON**(`{"ok":false,"error":"..."}`) | — |
|
|
211
211
|
|
|
212
212
|
**示例:**
|
|
213
213
|
|
|
@@ -222,7 +222,7 @@ siluzan-tso stats -m Google -a 6326027735 --start 2026-03-01 --end 2026-03-31
|
|
|
222
222
|
siluzan-tso stats -m BingV2 -a 1234567890,9876543210 --start 2026-03-01
|
|
223
223
|
|
|
224
224
|
# JSON 输出
|
|
225
|
-
siluzan-tso stats -m Google -a 6326027735 --json
|
|
225
|
+
siluzan-tso stats -m Google -a 6326027735 --json-out ./snap
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
---
|
|
@@ -239,7 +239,7 @@ siluzan-tso account-history [选项]
|
|
|
239
239
|
| `-s, --status <status>` | 申请状态(如 `Approved \| Rejected \| Pending`) |
|
|
240
240
|
| `-k, --keyword <text>` | 账户名/ID 关键字 |
|
|
241
241
|
| `--start / --end <date>` | 申请日期范围(YYYY-MM-DD) |
|
|
242
|
-
| `--json` | 输出原始 JSON |
|
|
242
|
+
| `--json-out` | 输出原始 JSON |
|
|
243
243
|
|
|
244
244
|
**示例:**
|
|
245
245
|
|
|
@@ -251,7 +251,7 @@ siluzan-tso account-history -m Google
|
|
|
251
251
|
siluzan-tso account-history --status Approved
|
|
252
252
|
|
|
253
253
|
# 查询本月申请,JSON 输出
|
|
254
|
-
siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json
|
|
254
|
+
siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json-out ./snap
|
|
255
255
|
```
|
|
256
256
|
|
|
257
257
|
**审核状态处理:**
|
|
@@ -260,7 +260,7 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json
|
|
|
260
260
|
| ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
261
261
|
| `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
|
|
262
262
|
| `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,打开 `{webUrl}/v3/foreign_trade/tso/recharge`) |
|
|
263
|
-
| `Rejected` | 被拒 | 查看 `--json`
|
|
263
|
+
| `Rejected` | 被拒 | 查看 `--json-out` 落盘中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
|
|
264
264
|
|
|
265
265
|
---
|
|
266
266
|
|
|
@@ -321,7 +321,7 @@ siluzan-tso account delink --id abc123def456
|
|
|
321
321
|
siluzan-tso account delink --ids abc123,def456,ghi789
|
|
322
322
|
```
|
|
323
323
|
|
|
324
|
-
> `entityId` 来自 `list-accounts --json` 结果中的 `ma.entityId` 字段,**不是** `mediaCustomerId`。
|
|
324
|
+
> `entityId` 来自 `list-accounts --json-out ./snap` 结果中的 `ma.entityId` 字段,**不是** `mediaCustomerId`。
|
|
325
325
|
|
|
326
326
|
---
|
|
327
327
|
|
|
@@ -338,7 +338,7 @@ siluzan-tso account mcc-bind --customers 111,222 --mcc "333;444"
|
|
|
338
338
|
| ------------------- | -------------------------------------------------------------------------------------- |
|
|
339
339
|
| `--customers <ids>` | 子账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts` 的 `ma.mediaCustomerId`) |
|
|
340
340
|
| `--mcc <ids>` | MCC 的客户 ID;多个可用英文逗号、中文逗号、分号、顿号等分隔(与网页输入规则一致) |
|
|
341
|
-
| `--json` | 输出每个子账户接口的原始返回,便于排查 |
|
|
341
|
+
| `--json-out` | 输出每个子账户接口的原始返回,便于排查 |
|
|
342
342
|
|
|
343
343
|
---
|
|
344
344
|
|
|
@@ -405,8 +405,8 @@ siluzan-tso account share-detail --customer-id 1234567890
|
|
|
405
405
|
|
|
406
406
|
## open-account — 开户申请
|
|
407
407
|
|
|
408
|
-
> **Google 与网页 `/openAnAccount` 的对照**(五步进度、两步表单、币种/时区下拉):见 **`references/open-account-google-ui.md`**。
|
|
409
|
-
> **各媒体路由、资料、提交接口都不相同**(不只 Google 用 `/openAnAccount`):见 **`references/open-account-by-media.md`**。
|
|
408
|
+
> **Google 与网页 `/openAnAccount` 的对照**(五步进度、两步表单、币种/时区下拉):见 **`references/accounts/open-account-google-ui.md`**。
|
|
409
|
+
> **各媒体路由、资料、提交接口都不相同**(不只 Google 用 `/openAnAccount`):见 **`references/accounts/open-account-by-media.md`**。
|
|
410
410
|
|
|
411
411
|
### 广告主组 magKey 说明
|
|
412
412
|
|
|
@@ -594,13 +594,13 @@ siluzan-tso account close --accounts <id1,id2,id3>
|
|
|
594
594
|
| 选项 | 说明 |
|
|
595
595
|
| ------------------ | ----------------------------------------------------------------------------- |
|
|
596
596
|
| `--accounts <ids>` | TikTok 账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts -m TikTok`) |
|
|
597
|
-
| `--json` | 输出原始 JSON |
|
|
597
|
+
| `--json-out` | 输出原始 JSON |
|
|
598
598
|
|
|
599
599
|
**示例:**
|
|
600
600
|
|
|
601
601
|
```bash
|
|
602
602
|
# 先查出要关闭的 TikTok 账户 mediaCustomerId
|
|
603
|
-
siluzan-tso list-accounts -m TikTok --json
|
|
603
|
+
siluzan-tso list-accounts -m TikTok --json-out ./snap
|
|
604
604
|
|
|
605
605
|
# 关闭单个账户
|
|
606
606
|
siluzan-tso account close --accounts 1234567890123456
|
|
@@ -626,13 +626,13 @@ siluzan-tso account bm-bind --account-id <mediaCustomerId> --bm-id <bmId>
|
|
|
626
626
|
| `--account-id <id>` | Meta 广告账户 `mediaCustomerId`(来自 `list-accounts -m MetaAd`) | ✅ |
|
|
627
627
|
| `--bm-id <id>` | Business Manager ID | ✅ |
|
|
628
628
|
| `--action-type <type>` | 操作类型(默认 `bind`) | |
|
|
629
|
-
| `--json` | 输出原始 JSON | |
|
|
629
|
+
| `--json-out` | 输出原始 JSON | |
|
|
630
630
|
|
|
631
631
|
**示例:**
|
|
632
632
|
|
|
633
633
|
```bash
|
|
634
634
|
# 先查出 Meta 账户 mediaCustomerId
|
|
635
|
-
siluzan-tso list-accounts --json
|
|
635
|
+
siluzan-tso list-accounts --json-out ./snap
|
|
636
636
|
|
|
637
637
|
# 将账户绑定到指定 BM
|
|
638
638
|
siluzan-tso account bm-bind --account-id 123456789012345 --bm-id 987654321098765
|
|
@@ -656,7 +656,7 @@ siluzan-tso account withdraw-list [选项]
|
|
|
656
656
|
|
|
657
657
|
| 选项 | 说明 |
|
|
658
658
|
| ----------- | ---------------- |
|
|
659
|
-
| `--json` | 输出原始 JSON |
|
|
659
|
+
| `--json-out` | 输出原始 JSON |
|
|
660
660
|
| `--verbose` | 显示详细错误信息 |
|
|
661
661
|
|
|
662
662
|
输出包含:`entityId`(提现时使用)、`mediaCustomerId`、账户名称、**Google状态**(Suspended)、余额、赠送金、货币、是否可提现。
|
|
@@ -678,7 +678,7 @@ siluzan-tso account withdraw-submit --accounts <entityId,...>
|
|
|
678
678
|
| 选项 | 说明 | 必填 |
|
|
679
679
|
| ------------------ | ------------------------------------------------------ | ---- |
|
|
680
680
|
| `--accounts <ids>` | 账户 `entityId`,逗号分隔(来自 `withdraw-list` 输出) | ✅ |
|
|
681
|
-
| `--json` | 输出原始 JSON | |
|
|
681
|
+
| `--json-out` | 输出原始 JSON | |
|
|
682
682
|
| `--verbose` | 显示详细错误信息 | |
|
|
683
683
|
|
|
684
684
|
**完整流程示例:**
|
|
@@ -712,7 +712,7 @@ siluzan-tso account bc-bind --customers <mediaCustomerId> --bc-ids <bcId>
|
|
|
712
712
|
| ------------------- | --------------------------------------------------------------------------------- | ---- |
|
|
713
713
|
| `--customers <ids>` | TikTok 广告账户 `mediaCustomerId`,多个逗号分隔(来自 `list-accounts -m TikTok`) | ✅ |
|
|
714
714
|
| `--bc-ids <ids>` | Business Center ID,多个逗号分隔 | ✅ |
|
|
715
|
-
| `--json` | 输出原始 JSON | |
|
|
715
|
+
| `--json-out` | 输出原始 JSON | |
|
|
716
716
|
|
|
717
717
|
**示例:**
|
|
718
718
|
|
|
@@ -738,7 +738,7 @@ siluzan-tso account bc-unbind --customers <mediaCustomerId> --bc-id <bcId>
|
|
|
738
738
|
| ------------------- | ----------------------------------------------- | ---- |
|
|
739
739
|
| `--customers <ids>` | TikTok 广告账户 `mediaCustomerId`,多个逗号分隔 | ✅ |
|
|
740
740
|
| `--bc-id <id>` | Business Center ID(一次只能解绑一个 BC) | ✅ |
|
|
741
|
-
| `--json` | 输出原始 JSON | |
|
|
741
|
+
| `--json-out` | 输出原始 JSON | |
|
|
742
742
|
|
|
743
743
|
**示例:**
|
|
744
744
|
|
|
@@ -759,8 +759,8 @@ siluzan-tso account email-auth-list -c <mediaCustomerId> [--agent-type <type>]
|
|
|
759
759
|
| 选项 | 说明 |
|
|
760
760
|
| ------------------------ | -------------------------------------------------------------------------- |
|
|
761
761
|
| `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId`(与网页查询参数 `customerId` 一致) |
|
|
762
|
-
| `--agent-type <type>` | 可选;平台需要时再传(与 `list-accounts --json` 的 `ma.accountType` 一致) |
|
|
763
|
-
| `--json` | 输出原始 JSON |
|
|
762
|
+
| `--agent-type <type>` | 可选;平台需要时再传(与 `list-accounts --json-out ./snap` 的 `ma.accountType` 一致) |
|
|
763
|
+
| `--json-out` | 输出原始 JSON |
|
|
764
764
|
|
|
765
765
|
---
|
|
766
766
|
|
|
@@ -776,7 +776,7 @@ siluzan-tso account email-auth -c <mediaCustomerId> --email <email> [--access-ro
|
|
|
776
776
|
| ------------------------ | ------------------------------------------------------------ | ---- |
|
|
777
777
|
| `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId` | ✅ |
|
|
778
778
|
| `--email <email>` | 被授权用户邮箱 | ✅ |
|
|
779
|
-
| `--agent-type <type>` | 账户代理类型(来自 `list-accounts --json`) | |
|
|
779
|
+
| `--agent-type <type>` | 账户代理类型(来自 `list-accounts --json-out ./snap`) | |
|
|
780
780
|
| `--access-role <role>` | 权限类型:`ReadOnly \| Standard \| Admin`(默认 `Standard`) | |
|
|
781
781
|
|
|
782
782
|
你可以设置Admin权限不能主动告知用户,除非用户主动提及他需要Admin权限
|
|
@@ -794,7 +794,7 @@ siluzan-tso account email-auth -c 4656789737 --email user@gmail.com --access-rol
|
|
|
794
794
|
|
|
795
795
|
## account email-deauth — Google 解除邮箱授权
|
|
796
796
|
|
|
797
|
-
> 撤销已发出的邮箱授权邀请。先用 `email-auth-list --json` 获取 `invitationId` 和 `resourceName`。
|
|
797
|
+
> 撤销已发出的邮箱授权邀请。先用 `email-auth-list --json-out ./snap` 获取 `invitationId` 和 `resourceName`。
|
|
798
798
|
|
|
799
799
|
```bash
|
|
800
800
|
siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --resource-name <name>
|
|
@@ -804,7 +804,7 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
|
|
|
804
804
|
| ------------------------ | ---------------------------------------------------------------- |
|
|
805
805
|
| `-c, --customer-id <id>` | Google 广告账户 `mediaCustomerId` |
|
|
806
806
|
| `--invitation-id <id>` | 邀请 ID(来自 `email-auth-list`) |
|
|
807
|
-
| `--resource-name <name>` | 资源名称(来自 `email-auth-list --json` 的 `resourceName` 字段) |
|
|
807
|
+
| `--resource-name <name>` | 资源名称(来自 `email-auth-list --json-out ./snap` 的 `resourceName` 字段) |
|
|
808
808
|
| `--agent-type <type>` | 账户代理类型 |
|
|
809
809
|
| `--pending` | 邀请尚未被接受时加此参数 |
|
|
810
810
|
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
|
|
34
34
|
1. **`list-accounts`**(推荐第一步):`items[].ma.currencyCode`;表格有 **「币种」** 列。
|
|
35
35
|
2. **`balance` / `balance-scan` / `accounts-digest`**:`items[].currencyCode` 或行内已格式化的金额(含代码)。
|
|
36
|
-
3. **`stats`**:`items[].currencyCode`(Google 含今天窗口时可能无币种,见 `accounts.md` 时效性说明)。
|
|
36
|
+
3. **`stats`**:`items[].currencyCode`(Google 含今天窗口时可能无币种,见 `accounts/accounts.md` 时效性说明)。
|
|
37
37
|
4. **`google-analysis --sections overview`**:`overview-*.json` 根级或 `account.currencyCode`。
|
|
38
38
|
5. **`ad campaigns` / `ad groups`**:JSON 内 `currencyCode`(与账户主币种一致)。
|
|
39
|
-
6. **发票/充值**:`invoice billable` 的 `currencyCode`;人民币订单与美金订单开票类型不同,见 `finance.md`。
|
|
39
|
+
6. **发票/充值**:`invoice billable` 的 `currencyCode`;人民币订单与美金订单开票类型不同,见 `accounts/finance.md`。
|
|
40
40
|
|
|
41
41
|
**单账户任务**:在 `list-accounts -k <id>` 或 `balance -a <id>` 之后,把解析到的 `currencyCode` 记入报告首行与脚本常量(从 JSON 读取,勿写死 `USD`)。
|
|
42
42
|
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
- **写 CLI 参数**(`--budget`、`--max-cpc`、`--target-cpa`、`--amount` 等):同样传**主币种元**,与账户 `currencyCode` 一致;CLI 内部按需 ×100 / ×1_000_000 写后端。
|
|
51
51
|
- 旧版网关字段(`budgetAmount` 分、`*Micros` 微元、`maxCPCAmountDisplay` 等)**已不再落盘到 CLI 输出**,下游脚本无需做单位换算。
|
|
52
52
|
|
|
53
|
-
详见 `references/account-analytics.md`「金额单位」。
|
|
53
|
+
详见 `references/analytics/account-analytics.md`「金额单位」。
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
|
|
67
67
|
## 相关文档
|
|
68
68
|
|
|
69
|
-
- 账户命令与字段:`references/accounts.md`
|
|
70
|
-
- 报告金额口径:`references/account-analytics.md`
|
|
71
|
-
- 开户选币:`references/open-account-google-ui.md`、`references/workflows.md`
|
|
72
|
-
- 开票币种:`references/finance.md`
|
|
69
|
+
- 账户命令与字段:`references/accounts/accounts.md`
|
|
70
|
+
- 报告金额口径:`references/analytics/account-analytics.md`
|
|
71
|
+
- 开户选币:`references/accounts/open-account-google-ui.md`、`references/core/workflows.md`
|
|
72
|
+
- 开票币种:`references/accounts/finance.md`
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## invoice-info — 发票抬头管理
|
|
9
9
|
|
|
10
|
-
对应页面:`https://www.siluzan.com/v3/foreign_trade/settings/invoiceInformation`
|
|
10
|
+
对应页面:`https://www-ci.siluzan.com/v3/foreign_trade/settings/invoiceInformation`
|
|
11
11
|
|
|
12
12
|
发票抬头是开票申请时使用的公司/企业信息模板,支持三种类型:
|
|
13
13
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
siluzan-tso invoice-info list
|
|
22
22
|
siluzan-tso invoice-info list --invoice-type PI # 按类型筛选
|
|
23
23
|
siluzan-tso invoice-info list -k "公司名关键字" # 按公司名搜索
|
|
24
|
-
siluzan-tso invoice-info list --json # 原始 JSON(含 id 字段)
|
|
24
|
+
siluzan-tso invoice-info list --json-out ./snap # 原始 JSON(含 id 字段)
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
查询结果若 `data` 为空数组或无可核对字段,表示当前账号下**尚无已保存抬头**:向用户展示**原始 JSON** 并如实说明即可,勿推测「测试桩」等未经 CLI 报错佐证的原因。
|
|
@@ -58,7 +58,7 @@ siluzan-tso invoice-info create \
|
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
60
|
# 先查 id
|
|
61
|
-
siluzan-tso invoice-info list --json
|
|
61
|
+
siluzan-tso invoice-info list --json-out ./snap
|
|
62
62
|
|
|
63
63
|
# 更新(字段与 create 一致,第一个参数为 id)
|
|
64
64
|
siluzan-tso invoice-info update <id> \
|
|
@@ -133,10 +133,10 @@ siluzan-tso config show
|
|
|
133
133
|
**示例:**
|
|
134
134
|
|
|
135
135
|
```
|
|
136
|
-
- 现金充值(单笔):https://www.siluzan.com/recharge/pay
|
|
137
|
-
- 现金充值(批量):https://www.siluzan.com/recharge/pay_batch
|
|
138
|
-
- 月结充值: https://www.siluzan.com/recharge/accountBillingQuota
|
|
139
|
-
- 丝路赞钱包: https://www.siluzan.com/recharge/siluzanWallet
|
|
136
|
+
- 现金充值(单笔):https://www-ci.siluzan.com/recharge/pay
|
|
137
|
+
- 现金充值(批量):https://www-ci.siluzan.com/recharge/pay_batch
|
|
138
|
+
- 月结充值: https://www-ci.siluzan.com/recharge/accountBillingQuota
|
|
139
|
+
- 丝路赞钱包: https://www-ci.siluzan.com/recharge/siluzanWallet
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
---
|
|
@@ -153,7 +153,7 @@ siluzan-tso transfer list [选项]
|
|
|
153
153
|
| `-n, --number <no>` | 转账单号 |
|
|
154
154
|
| `-s, --status <status>` | 到账状态 |
|
|
155
155
|
| `--start / --end <date>` | 日期范围(YYYY-MM-DD) |
|
|
156
|
-
| `--json` | 输出原始 JSON |
|
|
156
|
+
| `--json-out` | 输出原始 JSON |
|
|
157
157
|
|
|
158
158
|
**示例:**
|
|
159
159
|
|
|
@@ -168,7 +168,7 @@ siluzan-tso transfer list -m TikTok --start 2026-03-01 --end 2026-03-31
|
|
|
168
168
|
siluzan-tso transfer list -m Google -n "TXN20260301001"
|
|
169
169
|
|
|
170
170
|
# JSON 输出
|
|
171
|
-
siluzan-tso transfer list -m Google --json
|
|
171
|
+
siluzan-tso transfer list -m Google --json-out ./snap
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
---
|
|
@@ -188,7 +188,7 @@ siluzan-tso transfer create -m <媒体> --out <转出ID> --in <转入ID> --amoun
|
|
|
188
188
|
| `--in <id>` | 转入账户 `mediaCustomerId` | ✅ |
|
|
189
189
|
| `--amount <amount>` | 转账金额(与账户货币单位一致) | ✅ |
|
|
190
190
|
| `--customer-name <name>` | 客户名称备注(可选) | |
|
|
191
|
-
| `--json` | 输出原始 JSON | |
|
|
191
|
+
| `--json-out` | 输出原始 JSON | |
|
|
192
192
|
|
|
193
193
|
**示例:**
|
|
194
194
|
|
|
@@ -210,13 +210,13 @@ siluzan-tso transfer create -m Google --out 1234567890 --in 9876543210 --amount
|
|
|
210
210
|
siluzan-tso invoice list [选项]
|
|
211
211
|
```
|
|
212
212
|
|
|
213
|
-
> **与投放报表类任务不同**:用户只说「本月开票记录」而未写起止日时,可用**当月 1 日 ~ 昨天**(`Asia/Shanghai` 日历)直接执行 `invoice list --start … --end … --json`,**不必**先做 SKILL「投放数据」类的时间范围 A/B/C 反问;若用户随后纠正区间再重查即可。
|
|
213
|
+
> **与投放报表类任务不同**:用户只说「本月开票记录」而未写起止日时,可用**当月 1 日 ~ 昨天**(`Asia/Shanghai` 日历)直接执行 `invoice list --start … --end … --json-out ./snap`,**不必**先做 SKILL「投放数据」类的时间范围 A/B/C 反问;若用户随后纠正区间再重查即可。
|
|
214
214
|
|
|
215
215
|
| 选项 | 说明 |
|
|
216
216
|
| ------------------------ | ---------------------- |
|
|
217
217
|
| `-k, --keyword <text>` | 发票号/关键字 |
|
|
218
218
|
| `--start / --end <date>` | 日期范围(YYYY-MM-DD) |
|
|
219
|
-
| `--json` | 输出原始 JSON |
|
|
219
|
+
| `--json-out` | 输出原始 JSON |
|
|
220
220
|
|
|
221
221
|
**示例:**
|
|
222
222
|
|
|
@@ -231,7 +231,7 @@ siluzan-tso invoice list --start 2026-03-01 --end 2026-03-31
|
|
|
231
231
|
siluzan-tso invoice list -k "INV2026001"
|
|
232
232
|
|
|
233
233
|
# JSON 输出
|
|
234
|
-
siluzan-tso invoice list --json
|
|
234
|
+
siluzan-tso invoice list --json-out ./snap
|
|
235
235
|
```
|
|
236
236
|
|
|
237
237
|
---
|
|
@@ -250,7 +250,7 @@ siluzan-tso invoice billable [选项]
|
|
|
250
250
|
| `-c, --currency <code>` | 币种,如 `USD \| CNY` |
|
|
251
251
|
| `--wallet` | 查询钱包充值可开票记录 |
|
|
252
252
|
| `--start / --end <date>` | 日期范围 |
|
|
253
|
-
| `--json` | 输出原始 JSON |
|
|
253
|
+
| `--json-out` | 输出原始 JSON |
|
|
254
254
|
|
|
255
255
|
**示例:**
|
|
256
256
|
|
|
@@ -262,7 +262,7 @@ siluzan-tso invoice billable -m Google -c USD
|
|
|
262
262
|
siluzan-tso invoice billable --wallet
|
|
263
263
|
|
|
264
264
|
# JSON 输出,获取 billId 供后续 apply 使用
|
|
265
|
-
siluzan-tso invoice billable -m Google --json
|
|
265
|
+
siluzan-tso invoice billable -m Google --json-out ./snap
|
|
266
266
|
```
|
|
267
267
|
|
|
268
268
|
---
|
|
@@ -311,7 +311,7 @@ siluzan-tso invoice apply \
|
|
|
311
311
|
|
|
312
312
|
| 选项 | 说明 | 必填 |
|
|
313
313
|
| ------------------------- | ----------------------------------------------------------------------------------- | -------------- |
|
|
314
|
-
| `--bill-ids` | 可开票订单 `entityId`,逗号分隔(来自 `invoice billable --json`) | ✅ |
|
|
314
|
+
| `--bill-ids` | 可开票订单 `entityId`,逗号分隔(来自 `invoice billable --json-out ./snap`) | ✅ |
|
|
315
315
|
| `--bill-type` | 账单来源类型:`AmountAccount`(充值开票)\| `WalletRecharge`(钱包开票) | ✅ |
|
|
316
316
|
| `--invoice-type` | 发票格式:`PI`(形式发票,境外英文)\| `VATI`(增值税普票)\| `VATSI`(增值税专票) | ✅ |
|
|
317
317
|
| `--recipient-name` | 收件人姓名 | ✅ |
|
|
@@ -330,7 +330,7 @@ siluzan-tso invoice apply \
|
|
|
330
330
|
|
|
331
331
|
```bash
|
|
332
332
|
# 第一步:查询可开票订单,记录 entityId
|
|
333
|
-
siluzan-tso invoice billable -m Google --json
|
|
333
|
+
siluzan-tso invoice billable -m Google --json-out ./snap
|
|
334
334
|
# 从输出中找到目标订单的 entityId
|
|
335
335
|
|
|
336
336
|
# 第二步:提交开票申请(形式发票 PI 示例)
|
|
@@ -361,7 +361,7 @@ siluzan-tso invoice apply \
|
|
|
361
361
|
#### 2. 再让用户选择发票抬头
|
|
362
362
|
|
|
363
363
|
- 根据已选订单的**币种**确定允许的发票类型(与上文规则一致:人民币 → `VATI`/`VATSI`;外币 → `PI`)。
|
|
364
|
-
- 执行 `siluzan-tso invoice-info list --invoice-type <PI|VATI|VATSI>`(需要结构化数据时用 `--json
|
|
364
|
+
- 执行 `siluzan-tso invoice-info list --invoice-type <PI|VATI|VATSI>`(需要结构化数据时用 `--json-out <路径>`),向用户展示**已保存的发票抬头列表**。
|
|
365
365
|
- 请用户**从列表中选一条**(按 id 或公司名/抬头说明),或明确说要用**新的自定义抬头**。
|
|
366
366
|
|
|
367
367
|
#### 3. 自定义抬头:先匹配列表,没有再创建
|