{"id":"56d573b3-af69-4fd0-bf27-43983b4074a8","entityType":"agent","slug":"clawhub-linkfox-ai-linkfox-temu-price-global","name":"Temu全球站-定价","canonicalUrl":"https://www.xpersona.co/agent/clawhub-linkfox-ai-linkfox-temu-price-global","canonicalPath":"/agent/clawhub-linkfox-ai-linkfox-temu-price-global","generatedAt":"2026-10-10T21:54:28.569Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:03:56.376Z","emptyReason":null},"description":"Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-temu-price-global","sourceUrl":"https://clawhub.ai/linkfox-ai/linkfox-temu-price-global","homepage":"https://clawhub.ai/linkfox-ai/skills/linkfox-temu-price-global","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/linkfox-ai/linkfox-temu-price-global","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/linkfox-ai/skills/linkfox-temu-price-global","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Temu全球站-定价 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:03:56.376Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:03:56.376Z","emptyReason":null},"stars":null,"forks":null,"downloads":1347,"packageName":null,"latestVersion":"1.0.6","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:03:56.375Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T16:03:56.376Z","lastCrawledAt":"2026-10-10T16:03:56.375Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T16:03:56.375Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.6","createdAt":"2026-08-14T15:17:45.798Z","changelog":"Update from 1.0.5 to 1.0.6","fileCount":34,"zipByteSize":51293},{"version":"1.0.5","createdAt":"2026-08-07T11:20:56.411Z","changelog":"Update from 1.0.4 to 1.0.5","fileCount":34,"zipByteSize":51344},{"version":"1.0.4","createdAt":"2026-07-13T12:39:24.454Z","changelog":"Update from 1.0.3 to 1.0.4","fileCount":32,"zipByteSize":42437},{"version":"1.0.3","createdAt":"2026-07-06T11:45:59.141Z","changelog":"Update from 1.0.2 to 1.0.3","fileCount":32,"zipByteSize":41649},{"version":"1.0.2","createdAt":"2026-07-03T09:45:55.222Z","changelog":"Update from 1.0.0 to 1.0.2","fileCount":31,"zipByteSize":40231},{"version":"1.0.0","createdAt":"2026-05-27T08:33:43.854Z","changelog":"Initial release","fileCount":32,"zipByteSize":38807}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-temu-price-global","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-temu-price-global` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/linkfox-ai/linkfox-temu-price-global before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T21:54:28.566Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-price-global/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:03:56.376Z","emptyReason":null},"readme":"Skill: Temu全球站-定价\n\nOwner: linkfox-ai\n\nSummary: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。\n\nTags: latest:1.0.6\n\nVersion history:\n\nv1.0.6 | 2026-08-14T15:17:45.798Z | user\n\nUpdate from 1.0.5 to 1.0.6\n\nv1.0.5 | 2026-08-07T11:20:56.411Z | user\n\nUpdate from 1.0.4 to 1.0.5\n\nv1.0.4 | 2026-07-13T12:39:24.454Z | user\n\nUpdate from 1.0.3 to 1.0.4\n\nv1.0.3 | 2026-07-06T11:45:59.141Z | user\n\nUpdate from 1.0.2 to 1.0.3\n\nv1.0.2 | 2026-07-03T09:45:55.222Z | user\n\nUpdate from 1.0.0 to 1.0.2\n\nv1.0.0 | 2026-05-27T08:33:43.854Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.6: 34 files, 51293 bytes\n\nFiles: references/access-token.md (4612b), references/api.md (4191b), references/apis/bg-local-goods-priceorder-change-sku-price.md (5021b), references/apis/bg-local-goods-priceorder-query.md (8165b), references/apis/bg-local-goods-sku-list-price-query.md (5299b), references/apis/README.md (1148b), references/apis/temu-local-goods-baseprice-recommend.md (7119b), references/apis/temu-local-goods-recommendedprice-query.md (4256b), references/authorization-flow.md (1186b), references/onboarding.md (2046b), references/partner-global-catalog.md (3051b), scripts/_global_price_script.py (524b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12428b), scripts/_temu_global_common.py (3123b), scripts/_temu_token_store.py (4273b), scripts/check_linkfox_token.py (1798b), scripts/get_temu_access_token.py (1843b), scripts/global_price_baseprice_recommend.py (289b), scripts/global_price_priceorder_change_sku_price.py (319b), scripts/global_price_priceorder_query.py (281b), scripts/global_price_recommendedprice_query.py (288b), scripts/global_price_sku_list_price_query.py (284b), scripts/list_temu_access_tokens.py (652b), scripts/onboarding.py (24089b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_global_file_download.py (711b), scripts/temu_global_proxy.py (939b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), skill-card.md (2922b), SKILL.md (7652b), _meta.json (144b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: linkfox-temu-price-global\ndescription: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。\n---\n\n# Temu 全球站价格 API（linkfox-temu-price-global）\n\n本 skill（`linkfox-temu-price-global`）覆盖 **全球区（`site=global`，非美国/欧洲）** 的 **Product** 菜单下与**价格/供货价**相关的 `bg.local.*` / `temu.local.*` 接口（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`，具体 `sub_menu_code` 以 Partner 文档为准）。\n\n> 当前已接入 **5** 个接口；其余价格接口将按 Partner 文档逐条补充到 `references/apis/` 与 `global_price_*.py`。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 价格 OpenAPI（`global_price_*`、`temu_global_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 商品列表/详情/编辑/库存/上下架 | `linkfox-temu-manage-product-global` |\n| 美国站价格 | `linkfox-temu-price-us` |\n| 欧洲站价格 | `linkfox-temu-price-eu` |\n| 订单查询、发货、物流 | `linkfox-temu-order-global` |\n| 取消订单（买家+卖家） | `linkfox-temu-cancel-order-us` |\n\n| 履约/发货（含自发货） | `linkfox-temu-fulfillment-us` |\n| 发品、类目、V2 add | `linkfox-temu-add-product-us` |\n| 半托管 `temu.goods.price.list.get`（`productSkuIds`） | `linkfox-temu-add-product-us` → `us_goods_price_list.py` |\n| 网关与 Temu token | 本 skill `scripts/` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 默认参数\n\n| 字段 | 默认 | 说明 |\n|------|------|------|\n| site | `global` | Partner Global（非 US/EU） |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts（按 type）\n\n| 脚本 | type | 状态 |\n|------|------|------|\n| `global_price_baseprice_recommend.py` | `temu.local.goods.baseprice.recommend` | 已接入 |\n| `global_price_recommendedprice_query.py` | `temu.local.goods.recommendedprice.query` | 已接入 |\n| `global_price_priceorder_query.py` | `bg.local.goods.priceorder.query` | 已接入 |\n| `global_price_priceorder_change_sku_price.py` | `bg.local.goods.priceorder.change.sku.price` | 已接入 |\n| `global_price_sku_list_price_query.py` | `bg.local.goods.sku.list.price.query` | 已接入 |\n| `temu_global_proxy.py` | 任意 `type` | 通用 |\n| `temu_global_file_download.py` | 加签文件下载 | 通用 |\n\n> 新增接口后在此表与 [partner-global-catalog.md](./references/partner-global-catalog.md) 同步登记。\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 推荐基础价/供货价估算（须 catId + supplierPriceEstimateSkuQryList）\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n        }\n      ]\n    }\n  }\n}'\n\n# 推荐供货价查询（须 recommendedPriceType + goodsIdList，1～100 个 goodsId）\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n\n# 定价单列表查询（白名单；分页 page/size，可选筛选）\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n\n# 批量修改 SKU 基础价（白名单；须 goodsId + changeSkuPriceDTOList）\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n\n# SKU 供货价列表（goodsId + skuIdList）\npython scripts/global_price_sku_list_price_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      { \"goodsId\": 123456789, \"skuIdList\": [58224724203874] }\n    ]\n  }\n}'\n```\n\n**Feedback：** `skillName`：`linkfox-temu-price-global`\n\n## 网关与授权脚本\n\n| 脚本 | 说明 |\n|------|------|\n| `check_linkfox_token.py` | 校验 LinkFox 用户 Token |\n| `temu_token_guide.py` | Temu accessToken 后台授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token |\n| `get_temu_access_token.py` | 读取已保存 token |\n| `temu_proxy.py` | 通用网关转发（多 site） |\n| `temu_file_download.py` | 加签文件下载（多 site） |\n\n授权说明：[references/access-token.md](./references/access-token.md)\n\n## 积分消耗规则\n\n不消耗积分。\n\nFile v1.0.6:references/apis/README.md\n\n# Price — 接口文档索引\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-global-catalog.md](../partner-global-catalog.md)。\n\n## SKU 供货价查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.sku.list.price.query` | [bg-local-goods-sku-list-price-query.md](./bg-local-goods-sku-list-price-query.md) |\n\n## 定价单查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.query` | [bg-local-goods-priceorder-query.md](./bg-local-goods-priceorder-query.md) |\n\n## 推荐 / 估算（2）\n\n| type | 文档 |\n|------|------|\n| `temu.local.goods.baseprice.recommend` | [temu-local-goods-baseprice-recommend.md](./temu-local-goods-baseprice-recommend.md) |\n| `temu.local.goods.recommendedprice.query` | [temu-local-goods-recommendedprice-query.md](./temu-local-goods-recommendedprice-query.md) |\n\n## 编辑 / 改价（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.change.sku.price` | [bg-local-goods-priceorder-change-sku-price.md](./bg-local-goods-priceorder-change-sku-price.md) |\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-price-global\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786720665798\n}\n\nFile v1.0.6:references/access-token.md\n\n# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=global` / `global` / `eu`，`managementType=semi-managed`\n\n## 3. 全托管店铺\n\n1. 登录 Temu 平台\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → **「酷鸟卖家助手」** → 全选 → 复制 token\n4. 调用 API：`managementType=full-managed`，`site` 通常 `cn` 或 `partner`\n\n## 4. 本土店铺（美区、欧区主体）\n\n1. 登录 Temu\n2. **Apps And Services** → **Manage Your Apps**\n3. **Authorize a new app** → 搜索 **「Cyber-ERP」**\n4. 一般权限与敏感权限全选 → 确认 → 复制 token\n\n## 站点与 OpenAPI 网关\n\n| site | 说明 | Temu 网关 |\n|------|------|-----------|\n| cn | 中国站 | openapi.kuajingmaihuo.com |\n| partner | Partner 网关 | openapi-b-partner.temu.com |\n| us | 全球站 | openapi-b-global.temu.com |\n| global | 全球区 | openapi-b-global.temu.com |\n| eu | 欧洲站 | openapi-b-eu.temu.com |\n\n## 本地保存 Token（推荐）\n\n默认存储：`~/.linkfox/temu-access-tokens.json`（可用 `TEMU_TOKEN_STORE_PATH` 覆盖）。\n\n```bash\n# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'\n```\n\n## 注意事项\n\n1. **子账号**：可能无法进入服务市场，需主账号授权。\n2. **多站点**：全球站、英国站等需分别登录对应后台获取 Token。\n3. **有效期**：Token 会过期，过期后重新在后台复制并 `save_temu_access_token.py`。\n4. **IP 白名单**：需联系紫鸟开放平台配置调用 IP。\n5. **参数小写**：`site`、`managementType` 必须小写。\n\n## 脚本一览\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_token_guide.py` | 按店铺类型/用途输出授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token（默认脱敏）|\n| `get_temu_access_token.py` | 读取指定 store 的 token |\n\nFile v1.0.6:references/api.md\n\n# linkfox-temu-price-global — API 参考\r\n\r\nTemu **全球站商品价格管理**（Partner Global **Product** 下价格/供货价相关接口），经本 skill `temu_global_proxy`（`POST /temu/proxy`） 转发。Temu 的 `type` 写在 Body，**不是** URL 路径。\r\n\r\n> 网关与鉴权：本 skill `scripts/`（`LINKFOXAGENT_API_KEY`、`accessToken` / `storeKey`）。授权见 `references/access-token.md`。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\r\n\r\n---\r\n\r\n## 调用规范\r\n\r\n| 项 | 说明 |\r\n|----|------|\r\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 价格 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_global_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=global`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-global.temu.com/openapi/router`（网关按 `site` 解析） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `global`（本 skill 默认） |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\r\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory` |\r\n| type | string | 是 | Temu 接口名，如 `bg.local.goods.priceorder.query` |\r\n| params | object | 否 | 业务参数；多数 Manage 接口业务块在 **`params.request`** |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\r\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\r\n\r\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/global_price_priceorder_query.py '{\"accessToken\":\"TOKEN\",\"request\":{\"page\":1,\"size\":20,\"priceOrderType\":1}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-global-catalog.md](./partner-global-catalog.md)。\r\n\r\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)。\r\n\r\n---\r\n\r\n## 典型价格管理流程\r\n\r\n```text\r\n1. linkfox-temu-manage-product-global → list/detail / spec.info.get           → 拿 goodsId、catId、specIdList\r\n2. bg.local.goods.priceorder.query（本 skill，白名单）                     → 分页查定价单/报价列表\r\n3. temu.local.goods.recommendedprice.query（本 skill）                     → 按 goodsIdList 查平台推荐供货价\r\n4. temu.local.goods.baseprice.recommend（本 skill）                        → 发品/改价前推荐基础价估算\r\n5. bg.local.goods.priceorder.change.sku.price（本 skill，白名单）          → 批量改 SKU 基础价\r\n6. bg.local.goods.priceorder.query                                         → 改价后核对 priceAuditList / supplierPrice\r\n```\r\n\r\n发品侧半托管供货价列表（`temu.goods.price.list.get`，入参 `productSkuIds`）见 **`linkfox-temu-add-product-us`**，与本 skill 的 `bg.local.*` 本地仓价格接口**不要混用**。\r\n\r\n---\r\n\r\n## 网关错误码\r\n\r\n| code | 说明 | 处理 |\r\n|------|------|------|\r\n| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 `LINKFOXAGENT_API_KEY` |\r\n| 1003 | 转发失败 | 检查 Temu token、白名单、网络 |\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\r\n- `skillName`: **`linkfox-temu-price-global`**\n\nFile v1.0.6:references/apis/bg-local-goods-priceorder-change-sku-price.md\n\n# 批量修改 SKU 基础价（定价单）— `bg.local.goods.priceorder.change.sku.price`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_priceorder_change_sku_price.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.priceorder.change.sku.price`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants within the **white list** to modify SKU base prices in batches.\n\n> 须在 Temu 白名单内方可调用；非白名单店铺可能返回业务错误。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── goodsId (LONG, 必填)\n    ├── changeSkuPriceDTOList[] (OBJECT[], 必填)\n    │   ├── reason (STRING, 否)\n    │   └── skuChangePriceBaseDTOList[] (OBJECT[], 必填)\n    │       ├── skuId (LONG, 必填)\n    │       └── newSupplierPrice (OBJECT, 必填)\n    │           ├── amount (STRING, 否)\n    │           └── currency (STRING, 否)\n    └── rejectSkuPricing (BOOLEAN, 否)\n```\n\n### `request`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsId | LONG | **是** | Goods Id |\n| changeSkuPriceDTOList | OBJECT[] | **是** | SKU information and reason that adjust price |\n| rejectSkuPricing | BOOLEAN | 否 | Reject if price order is wait merchant confirm |\n\n### `changeSkuPriceDTOList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| reason | STRING | 否 | The reason of adjust price |\n| skuChangePriceBaseDTOList | OBJECT[] | **是** | SKU information |\n\n### `skuChangePriceBaseDTOList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| skuId | LONG | **是** | SKU ID |\n| newSupplierPrice | OBJECT | **是** | Base price (new supplier price) |\n\n### `newSupplierPrice`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| amount | STRING | 否 | Amount |\n| currency | STRING | 否 | Currency Type |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Cost adjustment\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": {\n              \"amount\": \"18.99\",\n              \"currency\": \"USD\"\n            }\n          },\n          {\n            \"skuId\": 58224724203875,\n            \"newSupplierPrice\": {\n              \"amount\": \"19.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n> 同一 `goodsId` 下可在一个 `changeSkuPriceDTOList` 项里放多个 SKU；也可按调价原因拆成多项，每项带各自的 `reason` 与 `skuChangePriceBaseDTOList`。\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── successSkuList[] (LONG)\n    ├── failedSkuList[] (LONG)\n    ├── failedSkuReasonMap (MAP)\n    │   ├── $key (STRING)   → SKU ID\n    │   └── $value (STRING) → Fail reason\n    └── successPriceOrderList[] (OBJECT[])\n        ├── priceOrderSn (STRING)\n        └── skuIdList[] (LONG)\n```\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Is success |\n| errorCode | INTEGER | Error code |\n| errorMsg | STRING | Error message |\n| result | OBJECT | Return specific information |\n| result.successSkuList | LONG[] | SKU list with successfully changed prices |\n| result.failedSkuList | LONG[] | SKU list with failed change price |\n| result.failedSkuReasonMap | MAP | Reasons for price adjustment failure；**key** 为 SKU ID（字符串），**value** 为失败原因 |\n| result.successPriceOrderList | OBJECT[] | List of price orders that request for changing price successfully |\n\n### `successPriceOrderList[]` 元素\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceOrderSn | STRING | Price order Sn |\n| skuIdList | LONG[] | List of SKUs corresponding to price order |\n\n### `failedSkuReasonMap` 示例\n\n```json\n{\n  \"58224724203875\": \"Price order pending merchant confirm\"\n}\n```\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Promo\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n```\n\n改价后可用 `bg.local.goods.priceorder.query` 核对 `priceAuditList` 中的 `supplierPrice`，或再次调用本接口查看 `successSkuList` / `failedSkuList`。\n\nFile v1.0.6:references/apis/bg-local-goods-priceorder-query.md\n\n# 定价单列表查询 — `bg.local.goods.priceorder.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_priceorder_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.priceorder.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants within the **white list** to query the price offer list（支持白名单商家查询定价单/报价列表）。\n\n> 须在 Temu 白名单内方可调用；非白名单店铺可能返回业务错误。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── page\n    ├── size\n    ├── priceOrderType\n    ├── priceOrderSubType\n    ├── goodsName\n    ├── goodsId\n    ├── priceOrderSnList[]\n    ├── orderBy\n    ├── orderByType\n    ├── goodsCreateTimeFrom / goodsCreateTimeTo\n    ├── priceOrderCreateTimeFrom / priceOrderCreateTimeTo\n    ├── goodsIdList[]\n    └── status\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | INTEGER | 否 | Page number（页码） |\n| size | INTEGER | 否 | Page size（每页条数），**须小于 100** |\n| priceOrderType | INTEGER | 否 | Pricing type（定价单类型）；**默认**为定价评估报价 |\n| priceOrderSubType | INTEGER | 否 | price order sub type（定价单子类型） |\n| goodsName | STRING | 否 | Search param: goodsName（按商品名搜索） |\n| goodsId | STRING | 否 | Search param: goodsId（按商品 ID 搜索） |\n| priceOrderSnList | STRING[] | 否 | search param: list of price order sn（定价单编号列表） |\n| orderBy | STRING | 否 | 排序字段；**默认** `order_create_time` |\n| orderByType | INTEGER | 否 | 排序方向；**默认** `0`（DESC） |\n| goodsCreateTimeFrom | LONG | 否 | Search param: The starting time of goods creation（商品创建起始时间） |\n| goodsCreateTimeTo | LONG | 否 | Search param: The end time of goods creation（商品创建结束时间） |\n| priceOrderCreateTimeFrom | LONG | 否 | Search param: The starting time of price order creation（定价单创建起始时间） |\n| priceOrderCreateTimeTo | LONG | 否 | Search param: The end time of price order creation（定价单创建结束时间） |\n| goodsIdList | STRING[] | 否 | goodsIdList（商品 ID 列表） |\n| status | INTEGER | 否 | price order status（定价单状态） |\n\n#### `priceOrderType`\n\n| 值 | 说明 |\n|----|------|\n| 不传 / 默认 | offer for pricing assessment（定价评估报价，默认） |\n| `1` | offer for pricing assessment（定价评估报价） |\n| `2` | offer for pricing opportunities or modification（定价机会或改价报价） |\n\n#### `priceOrderSubType`\n\n| 值 | 说明 |\n|----|------|\n| `2002` | base price increase invitations（基础价上调邀请） |\n| `2003` | sales boost（销量提升） |\n\n#### `orderBy`\n\n| 值 | 说明 |\n|----|------|\n| `goods_create_time` | 按商品创建时间排序 |\n| `order_create_time` | 按定价单创建时间排序（**默认**） |\n\n#### `orderByType`\n\n| 值 | 说明 |\n|----|------|\n| `0` | DESC（降序，**默认**） |\n| `1` | ASC（升序） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 50,\n    \"goodsId\": \"123456789\",\n    \"priceOrderSubType\": 2002,\n    \"status\": 1\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"priceOrderSnList\": [\"PO-SN-001\", \"PO-SN-002\"],\n    \"goodsIdList\": [\"111\", \"222\"]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    ├── pageNum\n    ├── total\n    └── priceAuditList[]          ← Price offer list\n        ├── priceOrderId\n        ├── goodsId\n        ├── pricingType\n        ├── specName[]\n        ├── skuIdList[]\n        ├── status\n        ├── suggestSupplierPrice\n        ├── targetSupplierPrice\n        ├── sourceSupplierPrice\n        ├── supplierPrice\n        ├── reason\n        ├── rejectTypeDesc\n        ├── priceCommitId\n        └── priceCommitVersion\n```\n\n### `response` 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Is success（当前请求是否成功） |\n| errorCode | INTEGER | Error code（错误码） |\n| errorMsg | STRING | Error message（错误信息） |\n| result | OBJECT | Return specific information（业务结果） |\n\n### `result`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| pageNum | INTEGER | Page number（当前页码） |\n| total | LONG | Total（总记录数） |\n| priceAuditList | OBJECT[] | Price offer list（定价单/报价列表） |\n\n### `result.priceAuditList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceOrderId | LONG | Pricing ID（定价单 ID） |\n| goodsId | LONG | Goods ID（商品 ID） |\n| pricingType | INTEGER | pricing type，见下表 |\n| specName | STRING[] | Specification Name（规格名称列表） |\n| skuIdList | LONG[] | SKU id list（SKU ID 列表） |\n| status | INTEGER | Status of price offer（报价/定价单状态） |\n| suggestSupplierPrice | OBJECT | Reference Base Price（参考基础价/建议供货价） |\n| targetSupplierPrice | OBJECT | New Base Price（目标新基础价） |\n| sourceSupplierPrice | OBJECT | source supplier price（原供货价） |\n| supplierPrice | OBJECT | Final Base Price（最终基础价/供货价） |\n| reason | STRING | Rejection Reason（拒绝原因） |\n| rejectTypeDesc | STRING | Rejection Type Description（拒绝类型描述） |\n| priceCommitId | LONG | Price commit id（价格提交 ID） |\n| priceCommitVersion | INTEGER | Price commit version（价格提交版本） |\n\n#### `pricingType`（响应字段，与入参 `priceOrderType` 枚举略有差异）\n\n| 值 | 说明 |\n|----|------|\n| `0` | offer for pricing assessment（定价评估报价） |\n| `1` | offer for pricing opportunities（定价机会报价） |\n| `2` | offer for pricing modification（改价报价） |\n\n### 价格对象结构（`suggestSupplierPrice` / `targetSupplierPrice` / `sourceSupplierPrice` / `supplierPrice`）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| amount | STRING | Amount（金额） |\n| currency | STRING | Currency Type（币种） |\n\n### 响应示例（结构示意）\n\n```json\n{\n  \"success\": true,\n  \"errorCode\": 0,\n  \"errorMsg\": \"\",\n  \"result\": {\n    \"pageNum\": 1,\n    \"total\": 2,\n    \"priceAuditList\": [\n      {\n        \"priceOrderId\": 90001,\n        \"goodsId\": 123456789,\n        \"pricingType\": 0,\n        \"specName\": [\"Color: Red\", \"Size: M\"],\n        \"skuIdList\": [58224724203874],\n        \"status\": 1,\n        \"suggestSupplierPrice\": { \"amount\": \"12.00\", \"currency\": \"USD\" },\n        \"targetSupplierPrice\": { \"amount\": \"10.99\", \"currency\": \"USD\" },\n        \"sourceSupplierPrice\": { \"amount\": \"13.50\", \"currency\": \"USD\" },\n        \"supplierPrice\": { \"amount\": \"10.99\", \"currency\": \"USD\" },\n        \"reason\": \"\",\n        \"rejectTypeDesc\": \"\",\n        \"priceCommitId\": 80001,\n        \"priceCommitVersion\": 1\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 与相关接口区分\n\n| 接口 | 场景 |\n|------|------|\n| `bg.local.goods.priceorder.query`（本接口） | **白名单**商家分页查询定价单/报价列表 |\n| `bg.local.goods.priceorder.change.sku.price` | **白名单**商家批量修改 SKU 基础价 |\n| `linkfox-temu-add-product-us` `temu.goods.price.list.get` | 半托管侧按 `productSkuIds` 查供货价 |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n```\n\nFile v1.0.6:references/apis/bg-local-goods-sku-list-price-query.md\n\n# SKU 供货价列表查询 — `bg.local.goods.sku.list.price.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_sku_list_price_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=a9bd154c38384f2c99e57c2ebe271299 |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.sku.list.price.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Query supplier/base price for goods SKUs by goodsId and skuIdList.\n\n> 默认 **`site=global`**、**`tokenPurpose=product-inventory`**。Partner 导出 HTML 中 **Response** 表多为折叠，下列 **Response** 按 **Response Example** 展开。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT)\n    └── language (STRING)\n    └── querySupplierPriceBaseList (OBJECT[] **必填**)\n    └── querySupplierPriceBaseList[].goodsId (LONG **必填**)\n    └── querySupplierPriceBaseList[].skuIdList (LONG[] **必填**)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language |\n| querySupplierPriceBaseList | OBJECT[] | **是** | Query supplier price base list |\n\n#### `request.querySupplierPriceBaseList[]`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsId | LONG | **是** | Goods ID（商品 ID） |\n| skuIdList | LONG[] | **是** | SKU ID list（SKU ID 列表） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      {\n        \"goodsId\": 123456789,\n        \"skuIdList\": [\n          58224724203874,\n          58224724203875\n        ]\n      }\n    ],\n    \"language\": \"en\"\n  }\n}\n```\n\n> Partner **Request Example** CURL 将 `querySupplierPriceBaseList` 写在顶层；经 LinkFox 网关请放在 **`params.request`**（或脚本接受的顶层 `request` 字段）。\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── openapiGoodsSupplierPriceDTOList[] (OBJECT[])\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[] (OBJECT[])\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice (OBJECT)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.amount (STRING)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.currency (STRING)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].skuId (INTEGER)\n    ├── openapiGoodsSupplierPriceDTOList[].goodsId (INTEGER)\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | 当前请求是否成功 |\n| errorCode | INTEGER | 错误码 |\n| errorMsg | STRING | 错误信息 |\n| result | OBJECT | 业务结果 |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| openapiGoodsSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice | OBJECT | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.amount | STRING | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.currency | STRING | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].skuId | INTEGER | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].goodsId | INTEGER | Partner Response Example |\n\n#### `openapiGoodsSupplierPriceDTOList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| openapiSkuSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice | OBJECT | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice.amount | STRING | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice.currency | STRING | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].skuId | INTEGER | Partner Response Example |\n| goodsId | INTEGER | Partner Response Example |\n\n#### `openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| supplierPrice | OBJECT | Partner Response Example |\n| supplierPrice.amount | STRING | Partner Response Example |\n| supplierPrice.currency | STRING | Partner Response Example |\n| skuId | INTEGER | Partner Response Example |\n\n---\n\n## 脚本\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/global_price_sku_list_price_query.py '{   \"accessToken\": \"TOKEN\",   \"site\": \"global\",   \"tokenPurpose\": \"product-inventory\",   \"request\": {     \"querySupplierPriceBaseList\": [       {         \"goodsId\": 123456789,         \"skuIdList\": [           58224724203874,           58224724203875         ]       }     ],     \"language\": \"en\"   } }'\n```\n\nFile v1.0.6:references/apis/temu-local-goods-baseprice-recommend.md\n\n# 推荐基础价/供货价估算 — `temu.local.goods.baseprice.recommend`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_baseprice_recommend.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`temu.local.goods.baseprice.recommend`，业务载荷放在 Body 的 `params` |\n\n**Description:** Recommend baseprice（根据类目、规格、站外售价、尺寸重量等信息推荐/估算供货价）。\n\n> **网关鉴权字段**（`type`、`app_key`、`access_token`、`sign`、`timestamp` 等）由本 skill 网关脚本处理，**不要**放进业务脚本的 `params`；业务参数见下方 `request`。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── language (STRING, 否)\n    └── supplierPriceEstimateQry (OBJECT, 必填)\n        ├── trademarkInfo (OBJECT, 否)\n        │   ├── brandId (LONG, 否)\n        │   └── trademarkId (LONG, 否)\n        ├── goodsBasicInfo (OBJECT, 必填)\n        │   ├── catId (LONG, 必填)\n        │   ├── taxCode (STRING, 否)\n        │   └── costTemplateId (STRING, 否)\n        └── supplierPriceEstimateSkuQryList[] (OBJECT[], 必填)\n            ├── specIdList[] (LONG[], 必填)\n            ├── externPlatformPriceInfo (OBJECT, 必填)\n            │   ├── amount (STRING, 否)\n            │   └── currency (STRING, 否)\n            └── productDimensionsInfo (OBJECT, 否)\n                ├── weight (STRING, 否)\n                ├── weightUnit (STRING, 否)\n                ├── length (STRING, 否)\n                ├── width (STRING, 否)\n                ├── height (STRING, 否)\n                └── dimensionUnit (STRING, 否)\n```\n\n### `request`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language |\n| supplierPriceEstimateQry | OBJECT | **是** | Supplier price estimate query |\n\n### `supplierPriceEstimateQry`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| trademarkInfo | OBJECT | 否 | Brand information; if provided, will assist merchants in suggesting more accurate prices. |\n| goodsBasicInfo | OBJECT | **是** | Goods basic information |\n| supplierPriceEstimateSkuQryList | OBJECT[] | **是** | Supplier price estimate need info (per SKU/spec) |\n\n### `trademarkInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| brandId | LONG | 否 | Brand ID |\n| trademarkId | LONG | 否 | Trademark ID |\n\n### `goodsBasicInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | LONG | **是** | The ID of the category of this product. It must be a **leaf category** that corresponds to the category tree type specified in the category_version property. |\n| taxCode | STRING | 否 | Product Tax code |\n| costTemplateId | STRING | 否 | The ID of the delivery options available for your product, delimited by commas. Sellers can create ship configurations based on business needs; when listing product to create offer, seller selects one ship configuration for the product. The ship configuration will be used to retrieve the valid ship options on the website. |\n\n### `supplierPriceEstimateSkuQryList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| specIdList | LONG[] | **是** | Specification ID List |\n| externPlatformPriceInfo | OBJECT | **是** | The selling price of the product on other platforms |\n| productDimensionsInfo | OBJECT | 否 | Product dimensions message |\n\n### `externPlatformPriceInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| amount | STRING | 否 | The selling price of the product on other platforms |\n| currency | STRING | 否 | Currency Code |\n\n### `productDimensionsInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| weight | STRING | 否 | The weight of the product. (**Brazil site is mandatory.**) |\n| weightUnit | STRING | 否 | The unit of the weight. The weight unit for product in the **United States** is **`lb`** while in other countries it is **`kg`**. (**Brazil site is mandatory.**) |\n| length | STRING | 否 | The length of the product. Length should be input with two decimal places. (**Brazil site is mandatory.**) |\n| width | STRING | 否 | The width of the product. Width should be input with two decimal places. (**Brazil site is mandatory.**) |\n| height | STRING | 否 | The height of the product. Height should be input with two decimal places. (**Brazil site is mandatory.**) |\n| dimensionUnit | STRING | 否 | Dimension unit. The dimension unit for product in the **United States** is **`inch`** while in other countries it is **`cm`**. (**Brazil site is mandatory.**) |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en-US\",\n    \"supplierPriceEstimateQry\": {\n      \"trademarkInfo\": {\n        \"brandId\": 10001,\n        \"trademarkId\": 20002\n      },\n      \"goodsBasicInfo\": {\n        \"catId\": 12345,\n        \"taxCode\": \"TAX001\",\n        \"costTemplateId\": \"100,101\"\n      },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001, 9002],\n          \"externPlatformPriceInfo\": {\n            \"amount\": \"29.99\",\n            \"currency\": \"USD\"\n          },\n          \"productDimensionsInfo\": {\n            \"weight\": \"1.20\",\n            \"weightUnit\": \"lb\",\n            \"length\": \"10.00\",\n            \"width\": \"8.00\",\n            \"height\": \"2.50\",\n            \"dimensionUnit\": \"inch\"\n          }\n        }\n      ]\n    }\n  }\n}\n```\n\n> 全球站尺寸/重量单位建议：`weightUnit=lb`、`dimensionUnit=inch`；`goodsBasicInfo.catId` 须为**叶子类目**。\n\n---\n\n## Response（Temu `body` 解析后）\n\n官方 Response 字段表尚未提供；解析顺序与通用 Manage 接口一致：\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    └── （推荐价/估算结果字段以 Partner 文档与实网返回为准）\n```\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Success |\n| errorCode | INTEGER | Error code |\n| errorMsg | STRING | Error message |\n| result | OBJECT | Result payload（具体子字段待官方 Response 表补充） |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en-US\",\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" },\n          \"productDimensionsInfo\": {\n            \"weight\": \"0.50\",\n            \"weightUnit\": \"lb\",\n            \"length\": \"6.00\",\n            \"width\": \"4.00\",\n            \"height\": \"1.00\",\n            \"dimensionUnit\": \"inch\"\n          }\n        }\n      ]\n    }\n  }\n}'\n```\n\nFile v1.0.6:references/apis/temu-local-goods-recommendedprice-query.md\n\n# 推荐供货价查询 — `temu.local.goods.recommendedprice.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_recommendedprice_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`temu.local.goods.recommendedprice.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants in querying the recommended supply prices（支持商家查询推荐供货价）。\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── language\n    ├── recommendedPriceType    ← 必填\n    └── goodsIdList[]           ← 必填，1～100 个\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language（语言） |\n| recommendedPriceType | INTEGER | **是** | Recommended price type（推荐价类型） |\n| goodsIdList | LONG[] | **是** | Search param: list of Goods ID（商品 ID 列表），**列表长度须在 1～100 之间** |\n\n#### `recommendedPriceType`\n\n| 值 | 说明 |\n|----|------|\n| `10` | Low traffic（低流量） |\n| `20` | Restricted traffic（限流/受限流量） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en\",\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789, 123456790]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"recommendedPriceType\": 20,\n    \"goodsIdList\": [111111111]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    └── goodsList[]\n        ├── goodsId\n        └── skuList[]\n            ├── skuId\n            └── recommendedSupplyPrice\n                ├── amount\n                └── currency\n```\n\n### `response` 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Whether it was successful or not（当前请求是否成功） |\n| errorCode | INTEGER | Error code（错误码） |\n| errorMsg | STRING | Error message（错误信息） |\n| result | OBJECT | Specific information（业务结果） |\n\n### `result`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| goodsList | OBJECT[] | Goods recommended price info list（商品推荐供货价信息列表） |\n\n### `result.goodsList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| goodsId | LONG | Goods ID（商品 ID） |\n| skuList | OBJECT[] | SKU recommended price info list（SKU 推荐供货价信息列表） |\n\n### `result.goodsList[].skuList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|------|\n| skuId | LONG | SKU ID |\n| recommendedSupplyPrice | OBJECT | Recommended supply price（推荐供货价） |\n\n### `recommendedSupplyPrice`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| amount | STRING | Amount（金额） |\n| currency | STRING | Currency（币种） |\n\n### 响应示例（结构示意）\n\n```json\n{\n  \"success\": true,\n  \"errorCode\": 0,\n  \"errorMsg\": \"\",\n  \"result\": {\n    \"goodsList\": [\n      {\n        \"goodsId\": 123456789,\n        \"skuList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"recommendedSupplyPrice\": {\n              \"amount\": \"12.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 与相关接口区分\n\n| 接口 | 场景 |\n|------|------|\n| `temu.local.goods.recommendedprice.query`（本接口） | 按**已存在商品** `goodsIdList` 查询平台**推荐供货价**（低流量/限流等类型） |\n| `temu.local.goods.baseprice.recommend` | 发品/改价前按**类目+规格+站外价**等**估算**推荐基础价 |\n| `bg.local.goods.priceorder.query` | 白名单商家查询定价单/报价列表（含 `supplierPrice` 等） |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n```\n\nFile v1.0.6:references/authorization-flow.md\n\n# Temu 授权流程\n\n```text\n用户确认店铺类型与用途\n        ↓\ntemu_token_guide.py（输出后台操作步骤）\n        ↓\n用户在 Temu 卖家后台复制 access_token\n        ↓\nsave_temu_access_token.py（可选，写入本地 store）\n        ↓\ntemu_proxy.py / temu_file_download.py\n  - 直接传 accessToken，或\n  - 传 storeKey + site + managementType + tokenPurpose\n```\n\n## 决策表\n\n| 用户需求 | shopType | tokenPurpose | site |\n|----------|----------|--------------|------|\n| 半托管查商品/库存 | semi-managed | product-inventory | cn / partner |\n| 半托管查订单/发货 | semi-managed | order-shipping | us / global / eu |\n| 全托管任意接口 | full-managed | full-managed | cn / partner |\n| 美欧本土店 | local-native | local-native | us 等 |\n\n## 与 API 调用的对应关系\n\n紫鸟转发路径：`/temu-proxy/{site}/{managementType}`\n\n- 全托管 CN：`cn` + `full-managed`\n- 半托管商品：`cn`/`partner` + `semi-managed` + 商品 token\n- 半托管订单：`us`/`global`/`eu` + `semi-managed` + 订单 token\n\n授权应用名称必须与后台一致：**酷鸟卖家助手** 或 **Cyber-ERP酷鸟助手** / **Cyber-ERP**。\n\nFile v1.0.6:references/onboarding.md\n\n# 解决认证和积分问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`（workbuddy 宿主加 `--channel workbuddy`）\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `积分/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nArchive v1.0.5: 34 files, 51344 bytes\n\nFiles: references/access-token.md (4612b), references/api.md (4191b), references/apis/bg-local-goods-priceorder-change-sku-price.md (5021b), references/apis/bg-local-goods-priceorder-query.md (8165b), references/apis/bg-local-goods-sku-list-price-query.md (5299b), references/apis/README.md (1148b), references/apis/temu-local-goods-baseprice-recommend.md (7119b), references/apis/temu-local-goods-recommendedprice-query.md (4256b), references/authorization-flow.md (1186b), references/onboarding.md (2046b), references/partner-global-catalog.md (3051b), scripts/_global_price_script.py (524b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12427b), scripts/_temu_global_common.py (3122b), scripts/_temu_token_store.py (4273b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/global_price_baseprice_recommend.py (289b), scripts/global_price_priceorder_change_sku_price.py (319b), scripts/global_price_priceorder_query.py (281b), scripts/global_price_recommendedprice_query.py (288b), scripts/global_price_sku_list_price_query.py (284b), scripts/list_temu_access_tokens.py (652b), scripts/onboarding.py (24089b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_global_file_download.py (711b), scripts/temu_global_proxy.py (939b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), skill-card.md (2999b), SKILL.md (7652b), _meta.json (144b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: linkfox-temu-price-global\ndescription: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。\n---\n\n# Temu 全球站价格 API（linkfox-temu-price-global）\n\n本 skill（`linkfox-temu-price-global`）覆盖 **全球区（`site=global`，非美国/欧洲）** 的 **Product** 菜单下与**价格/供货价**相关的 `bg.local.*` / `temu.local.*` 接口（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`，具体 `sub_menu_code` 以 Partner 文档为准）。\n\n> 当前已接入 **5** 个接口；其余价格接口将按 Partner 文档逐条补充到 `references/apis/` 与 `global_price_*.py`。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 价格 OpenAPI（`global_price_*`、`temu_global_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 商品列表/详情/编辑/库存/上下架 | `linkfox-temu-manage-product-global` |\n| 美国站价格 | `linkfox-temu-price-us` |\n| 欧洲站价格 | `linkfox-temu-price-eu` |\n| 订单查询、发货、物流 | `linkfox-temu-order-global` |\n| 取消订单（买家+卖家） | `linkfox-temu-cancel-order-us` |\n\n| 履约/发货（含自发货） | `linkfox-temu-fulfillment-us` |\n| 发品、类目、V2 add | `linkfox-temu-add-product-us` |\n| 半托管 `temu.goods.price.list.get`（`productSkuIds`） | `linkfox-temu-add-product-us` → `us_goods_price_list.py` |\n| 网关与 Temu token | 本 skill `scripts/` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 默认参数\n\n| 字段 | 默认 | 说明 |\n|------|------|------|\n| site | `global` | Partner Global（非 US/EU） |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts（按 type）\n\n| 脚本 | type | 状态 |\n|------|------|------|\n| `global_price_baseprice_recommend.py` | `temu.local.goods.baseprice.recommend` | 已接入 |\n| `global_price_recommendedprice_query.py` | `temu.local.goods.recommendedprice.query` | 已接入 |\n| `global_price_priceorder_query.py` | `bg.local.goods.priceorder.query` | 已接入 |\n| `global_price_priceorder_change_sku_price.py` | `bg.local.goods.priceorder.change.sku.price` | 已接入 |\n| `global_price_sku_list_price_query.py` | `bg.local.goods.sku.list.price.query` | 已接入 |\n| `temu_global_proxy.py` | 任意 `type` | 通用 |\n| `temu_global_file_download.py` | 加签文件下载 | 通用 |\n\n> 新增接口后在此表与 [partner-global-catalog.md](./references/partner-global-catalog.md) 同步登记。\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 推荐基础价/供货价估算（须 catId + supplierPriceEstimateSkuQryList）\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n        }\n      ]\n    }\n  }\n}'\n\n# 推荐供货价查询（须 recommendedPriceType + goodsIdList，1～100 个 goodsId）\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n\n# 定价单列表查询（白名单；分页 page/size，可选筛选）\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n\n# 批量修改 SKU 基础价（白名单；须 goodsId + changeSkuPriceDTOList）\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n\n# SKU 供货价列表（goodsId + skuIdList）\npython scripts/global_price_sku_list_price_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      { \"goodsId\": 123456789, \"skuIdList\": [58224724203874] }\n    ]\n  }\n}'\n```\n\n**Feedback：** `skillName`：`linkfox-temu-price-global`\n\n## 网关与授权脚本\n\n| 脚本 | 说明 |\n|------|------|\n| `check_linkfox_token.py` | 校验 LinkFox 用户 Token |\n| `temu_token_guide.py` | Temu accessToken 后台授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token |\n| `get_temu_access_token.py` | 读取已保存 token |\n| `temu_proxy.py` | 通用网关转发（多 site） |\n| `temu_file_download.py` | 加签文件下载（多 site） |\n\n授权说明：[references/access-token.md](./references/access-token.md)\n\n## 积分消耗规则\n\n不消耗积分。\n\nFile v1.0.5:references/apis/README.md\n\n# Price — 接口文档索引\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-global-catalog.md](../partner-global-catalog.md)。\n\n## SKU 供货价查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.sku.list.price.query` | [bg-local-goods-sku-list-price-query.md](./bg-local-goods-sku-list-price-query.md) |\n\n## 定价单查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.query` | [bg-local-goods-priceorder-query.md](./bg-local-goods-priceorder-query.md) |\n\n## 推荐 / 估算（2）\n\n| type | 文档 |\n|------|------|\n| `temu.local.goods.baseprice.recommend` | [temu-local-goods-baseprice-recommend.md](./temu-local-goods-baseprice-recommend.md) |\n| `temu.local.goods.recommendedprice.query` | [temu-local-goods-recommendedprice-query.md](./temu-local-goods-recommendedprice-query.md) |\n\n## 编辑 / 改价（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.change.sku.price` | [bg-local-goods-priceorder-change-sku-price.md](./bg-local-goods-priceorder-change-sku-price.md) |\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-price-global\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1786101656411\n}\n\nFile v1.0.5:references/access-token.md\n\n# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=global` / `global` / `eu`，`managementType=semi-managed`\n\n## 3. 全托管店铺\n\n1. 登录 Temu 平台\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → **「酷鸟卖家助手」** → 全选 → 复制 token\n4. 调用 API：`managementType=full-managed`，`site` 通常 `cn` 或 `partner`\n\n## 4. 本土店铺（美区、欧区主体）\n\n1. 登录 Temu\n2. **Apps And Services** → **Manage Your Apps**\n3. **Authorize a new app** → 搜索 **「Cyber-ERP」**\n4. 一般权限与敏感权限全选 → 确认 → 复制 token\n\n## 站点与 OpenAPI 网关\n\n| site | 说明 | Temu 网关 |\n|------|------|-----------|\n| cn | 中国站 | openapi.kuajingmaihuo.com |\n| partner | Partner 网关 | openapi-b-partner.temu.com |\n| us | 全球站 | openapi-b-global.temu.com |\n| global | 全球区 | openapi-b-global.temu.com |\n| eu | 欧洲站 | openapi-b-eu.temu.com |\n\n## 本地保存 Token（推荐）\n\n默认存储：`~/.linkfox/temu-access-tokens.json`（可用 `TEMU_TOKEN_STORE_PATH` 覆盖）。\n\n```bash\n# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'\n```\n\n## 注意事项\n\n1. **子账号**：可能无法进入服务市场，需主账号授权。\n2. **多站点**：全球站、英国站等需分别登录对应后台获取 Token。\n3. **有效期**：Token 会过期，过期后重新在后台复制并 `save_temu_access_token.py`。\n4. **IP 白名单**：需联系紫鸟开放平台配置调用 IP。\n5. **参数小写**：`site`、`managementType` 必须小写。\n\n## 脚本一览\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_token_guide.py` | 按店铺类型/用途输出授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token（默认脱敏）|\n| `get_temu_access_token.py` | 读取指定 store 的 token |\n\nFile v1.0.5:references/api.md\n\n# linkfox-temu-price-global — API 参考\r\n\r\nTemu **全球站商品价格管理**（Partner Global **Product** 下价格/供货价相关接口），经本 skill `temu_global_proxy`（`POST /temu/proxy`） 转发。Temu 的 `type` 写在 Body，**不是** URL 路径。\r\n\r\n> 网关与鉴权：本 skill `scripts/`（`LINKFOXAGENT_API_KEY`、`accessToken` / `storeKey`）。授权见 `references/access-token.md`。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\r\n\r\n---\r\n\r\n## 调用规范\r\n\r\n| 项 | 说明 |\r\n|----|------|\r\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 价格 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_global_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=global`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-global.temu.com/openapi/router`（网关按 `site` 解析） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `global`（本 skill 默认） |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\r\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory` |\r\n| type | string | 是 | Temu 接口名，如 `bg.local.goods.priceorder.query` |\r\n| params | object | 否 | 业务参数；多数 Manage 接口业务块在 **`params.request`** |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\r\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\r\n\r\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/global_price_priceorder_query.py '{\"accessToken\":\"TOKEN\",\"request\":{\"page\":1,\"size\":20,\"priceOrderType\":1}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-global-catalog.md](./partner-global-catalog.md)。\r\n\r\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)。\r\n\r\n---\r\n\r\n## 典型价格管理流程\r\n\r\n```text\r\n1. linkfox-temu-manage-product-global → list/detail / spec.info.get           → 拿 goodsId、catId、specIdList\r\n2. bg.local.goods.priceorder.query（本 skill，白名单）                     → 分页查定价单/报价列表\r\n3. temu.local.goods.recommendedprice.query（本 skill）                     → 按 goodsIdList 查平台推荐供货价\r\n4. temu.local.goods.baseprice.recommend（本 skill）                        → 发品/改价前推荐基础价估算\r\n5. bg.local.goods.priceorder.change.sku.price（本 skill，白名单）          → 批量改 SKU 基础价\r\n6. bg.local.goods.priceorder.query                                         → 改价后核对 priceAuditList / supplierPrice\r\n```\r\n\r\n发品侧半托管供货价列表（`temu.goods.price.list.get`，入参 `productSkuIds`）见 **`linkfox-temu-add-product-us`**，与本 skill 的 `bg.local.*` 本地仓价格接口**不要混用**。\r\n\r\n---\r\n\r\n## 网关错误码\r\n\r\n| code | 说明 | 处理 |\r\n|------|------|------|\r\n| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 `LINKFOXAGENT_API_KEY` |\r\n| 1003 | 转发失败 | 检查 Temu token、白名单、网络 |\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\r\n- `skillName`: **`linkfox-temu-price-global`**\n\nFile v1.0.5:references/apis/bg-local-goods-priceorder-change-sku-price.md\n\n# 批量修改 SKU 基础价（定价单）— `bg.local.goods.priceorder.change.sku.price`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_priceorder_change_sku_price.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.priceorder.change.sku.price`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants within the **white list** to modify SKU base prices in batches.\n\n> 须在 Temu 白名单内方可调用；非白名单店铺可能返回业务错误。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── goodsId (LONG, 必填)\n    ├── changeSkuPriceDTOList[] (OBJECT[], 必填)\n    │   ├── reason (STRING, 否)\n    │   └── skuChangePriceBaseDTOList[] (OBJECT[], 必填)\n    │       ├── skuId (LONG, 必填)\n    │       └── newSupplierPrice (OBJECT, 必填)\n    │           ├── amount (STRING, 否)\n    │           └── currency (STRING, 否)\n    └── rejectSkuPricing (BOOLEAN, 否)\n```\n\n### `request`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsId | LONG | **是** | Goods Id |\n| changeSkuPriceDTOList | OBJECT[] | **是** | SKU information and reason that adjust price |\n| rejectSkuPricing | BOOLEAN | 否 | Reject if price order is wait merchant confirm |\n\n### `changeSkuPriceDTOList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| reason | STRING | 否 | The reason of adjust price |\n| skuChangePriceBaseDTOList | OBJECT[] | **是** | SKU information |\n\n### `skuChangePriceBaseDTOList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| skuId | LONG | **是** | SKU ID |\n| newSupplierPrice | OBJECT | **是** | Base price (new supplier price) |\n\n### `newSupplierPrice`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| amount | STRING | 否 | Amount |\n| currency | STRING | 否 | Currency Type |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Cost adjustment\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": {\n              \"amount\": \"18.99\",\n              \"currency\": \"USD\"\n            }\n          },\n          {\n            \"skuId\": 58224724203875,\n            \"newSupplierPrice\": {\n              \"amount\": \"19.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n> 同一 `goodsId` 下可在一个 `changeSkuPriceDTOList` 项里放多个 SKU；也可按调价原因拆成多项，每项带各自的 `reason` 与 `skuChangePriceBaseDTOList`。\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── successSkuList[] (LONG)\n    ├── failedSkuList[] (LONG)\n    ├── failedSkuReasonMap (MAP)\n    │   ├── $key (STRING)   → SKU ID\n    │   └── $value (STRING) → Fail reason\n    └── successPriceOrderList[] (OBJECT[])\n        ├── priceOrderSn (STRING)\n        └── skuIdList[] (LONG)\n```\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Is success |\n| errorCode | INTEGER | Error code |\n| errorMsg | STRING | Error message |\n| result | OBJECT | Return specific information |\n| result.successSkuList | LONG[] | SKU list with successfully changed prices |\n| result.failedSkuList | LONG[] | SKU list with failed change price |\n| result.failedSkuReasonMap | MAP | Reasons for price adjustment failure；**key** 为 SKU ID（字符串），**value** 为失败原因 |\n| result.successPriceOrderList | OBJECT[] | List of price orders that request for changing price successfully |\n\n### `successPriceOrderList[]` 元素\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceOrderSn | STRING | Price order Sn |\n| skuIdList | LONG[] | List of SKUs corresponding to price order |\n\n### `failedSkuReasonMap` 示例\n\n```json\n{\n  \"58224724203875\": \"Price order pending merchant confirm\"\n}\n```\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Promo\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n```\n\n改价后可用 `bg.local.goods.priceorder.query` 核对 `priceAuditList` 中的 `supplierPrice`，或再次调用本接口查看 `successSkuList` / `failedSkuList`。\n\nFile v1.0.5:references/apis/bg-local-goods-priceorder-query.md\n\n# 定价单列表查询 — `bg.local.goods.priceorder.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_priceorder_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.priceorder.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants within the **white list** to query the price offer list（支持白名单商家查询定价单/报价列表）。\n\n> 须在 Temu 白名单内方可调用；非白名单店铺可能返回业务错误。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── page\n    ├── size\n    ├── priceOrderType\n    ├── priceOrderSubType\n    ├── goodsName\n    ├── goodsId\n    ├── priceOrderSnList[]\n    ├── orderBy\n    ├── orderByType\n    ├── goodsCreateTimeFrom / goodsCreateTimeTo\n    ├── priceOrderCreateTimeFrom / priceOrderCreateTimeTo\n    ├── goodsIdList[]\n    └── status\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | INTEGER | 否 | Page number（页码） |\n| size | INTEGER | 否 | Page size（每页条数），**须小于 100** |\n| priceOrderType | INTEGER | 否 | Pricing type（定价单类型）；**默认**为定价评估报价 |\n| priceOrderSubType | INTEGER | 否 | price order sub type（定价单子类型） |\n| goodsName | STRING | 否 | Search param: goodsName（按商品名搜索） |\n| goodsId | STRING | 否 | Search param: goodsId（按商品 ID 搜索） |\n| priceOrderSnList | STRING[] | 否 | search param: list of price order sn（定价单编号列表） |\n| orderBy | STRING | 否 | 排序字段；**默认** `order_create_time` |\n| orderByType | INTEGER | 否 | 排序方向；**默认** `0`（DESC） |\n| goodsCreateTimeFrom | LONG | 否 | Search param: The starting time of goods creation（商品创建起始时间） |\n| goodsCreateTimeTo | LONG | 否 | Search param: The end time of goods creation（商品创建结束时间） |\n| priceOrderCreateTimeFrom | LONG | 否 | Search param: The starting time of price order creation（定价单创建起始时间） |\n| priceOrderCreateTimeTo | LONG | 否 | Search param: The end time of price order creation（定价单创建结束时间） |\n| goodsIdList | STRING[] | 否 | goodsIdList（商品 ID 列表） |\n| status | INTEGER | 否 | price order status（定价单状态） |\n\n#### `priceOrderType`\n\n| 值 | 说明 |\n|----|------|\n| 不传 / 默认 | offer for pricing assessment（定价评估报价，默认） |\n| `1` | offer for pricing assessment（定价评估报价） |\n| `2` | offer for pricing opportunities or modification（定价机会或改价报价） |\n\n#### `priceOrderSubType`\n\n| 值 | 说明 |\n|----|------|\n| `2002` | base price increase invitations（基础价上调邀请） |\n| `2003` | sales boost（销量提升） |\n\n#### `orderBy`\n\n| 值 | 说明 |\n|----|------|\n| `goods_create_time` | 按商品创建时间排序 |\n| `order_create_time` | 按定价单创建时间排序（**默认**） |\n\n#### `orderByType`\n\n| 值 | 说明 |\n|----|------|\n| `0` | DESC（降序，**默认**） |\n| `1` | ASC（升序） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 50,\n    \"goodsId\": \"123456789\",\n    \"priceOrderSubType\": 2002,\n    \"status\": 1\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"priceOrderSnList\": [\"PO-SN-001\", \"PO-SN-002\"],\n    \"goodsIdList\": [\"111\", \"222\"]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    ├── pageNum\n    ├── total\n    └── priceAuditList[]          ← Price offer list\n        ├── priceOrderId\n        ├── goodsId\n        ├── pricingType\n        ├── specName[]\n        ├── skuIdList[]\n        ├── status\n        ├── suggestSupplierPrice\n        ├── targetSupplierPrice\n        ├── sourceSupplierPrice\n        ├── supplierPrice\n        ├── reason\n        ├── rejectTypeDesc\n        ├── priceCommitId\n        └── priceCommitVersion\n```\n\n### `response` 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Is success（当前请求是否成功） |\n| errorCode | INTEGER | Error code（错误码） |\n| errorMsg | STRING | Error message（错误信息） |\n| result | OBJECT | Return specific information（业务结果） |\n\n### `result`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| pageNum | INTEGER | Page number（当前页码） |\n| total | LONG | Total（总记录数） |\n| priceAuditList | OBJECT[] | Price offer list（定价单/报价列表） |\n\n### `result.priceAuditList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceOrderId | LONG | Pricing ID（定价单 ID） |\n| goodsId | LONG | Goods ID（商品 ID） |\n| pricingType | INTEGER | pricing type，见下表 |\n| specName | STRING[] | Specification Name（规格名称列表） |\n| skuIdList | LONG[] | SKU id list（SKU ID 列表） |\n| status | INTEGER | Status of price offer（报价/定价单状态） |\n| suggestSupplierPrice | OBJECT | Reference Base Price（参考基础价/建议供货价） |\n| targetSupplierPrice | OBJECT | New Base Price（目标新基础价） |\n| sourceSupplierPrice | OBJECT | source supplier price（原供货价） |\n| supplierPrice | OBJECT | Final Base Price（最终基础价/供货价） |\n| reason | STRING | Rejection Reason（拒绝原因） |\n| rejectTypeDesc | STRING | Rejection Type Description（拒绝类型描述） |\n| priceCommitId | LONG | Price commit id（价格提交 ID） |\n| priceCommitVersion | INTEGER | Price commit version（价格提交版本） |\n\n#### `pricingType`（响应字段，与入参 `priceOrderType` 枚举略有差异）\n\n| 值 | 说明 |\n|----|------|\n| `0` | offer for pricing assessment（定价评估报价） |\n| `1` | offer for pricing opportunities（定价机会报价） |\n| `2` | offer for pricing modification（改价报价） |\n\n### 价格对象结构（`suggestSupplierPrice` / `targetSupplierPrice` / `sourceSupplierPrice` / `supplierPrice`）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| amount | STRING | Amount（金额） |\n| currency | STRING | Currency Type（币种） |\n\n### 响应示例（结构示意）\n\n```json\n{\n  \"success\": true,\n  \"errorCode\": 0,\n  \"errorMsg\": \"\",\n  \"result\": {\n    \"pageNum\": 1,\n    \"total\": 2,\n    \"priceAuditList\": [\n      {\n        \"priceOrderId\": 90001,\n        \"goodsId\": 123456789,\n        \"pricingType\": 0,\n        \"specName\": [\"Color: Red\", \"Size: M\"],\n        \"skuIdList\": [58224724203874],\n        \"status\": 1,\n        \"suggestSupplierPrice\": { \"amount\": \"12.00\", \"currency\": \"USD\" },\n        \"targetSupplierPrice\": { \"amount\": \"10.99\", \"currency\": \"USD\" },\n        \"sourceSupplierPrice\": { \"amount\": \"13.50\", \"currency\": \"USD\" },\n        \"supplierPrice\": { \"amount\": \"10.99\", \"currency\": \"USD\" },\n        \"reason\": \"\",\n        \"rejectTypeDesc\": \"\",\n        \"priceCommitId\": 80001,\n        \"priceCommitVersion\": 1\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 与相关接口区分\n\n| 接口 | 场景 |\n|------|------|\n| `bg.local.goods.priceorder.query`（本接口） | **白名单**商家分页查询定价单/报价列表 |\n| `bg.local.goods.priceorder.change.sku.price` | **白名单**商家批量修改 SKU 基础价 |\n| `linkfox-temu-add-product-us` `temu.goods.price.list.get` | 半托管侧按 `productSkuIds` 查供货价 |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n```\n\nFile v1.0.5:references/apis/bg-local-goods-sku-list-price-query.md\n\n# SKU 供货价列表查询 — `bg.local.goods.sku.list.price.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_sku_list_price_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=a9bd154c38384f2c99e57c2ebe271299 |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.sku.list.price.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Query supplier/base price for goods SKUs by goodsId and skuIdList.\n\n> 默认 **`site=global`**、**`tokenPurpose=product-inventory`**。Partner 导出 HTML 中 **Response** 表多为折叠，下列 **Response** 按 **Response Example** 展开。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT)\n    └── language (STRING)\n    └── querySupplierPriceBaseList (OBJECT[] **必填**)\n    └── querySupplierPriceBaseList[].goodsId (LONG **必填**)\n    └── querySupplierPriceBaseList[].skuIdList (LONG[] **必填**)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language |\n| querySupplierPriceBaseList | OBJECT[] | **是** | Query supplier price base list |\n\n#### `request.querySupplierPriceBaseList[]`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsId | LONG | **是** | Goods ID（商品 ID） |\n| skuIdList | LONG[] | **是** | SKU ID list（SKU ID 列表） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      {\n        \"goodsId\": 123456789,\n        \"skuIdList\": [\n          58224724203874,\n          58224724203875\n        ]\n      }\n    ],\n    \"language\": \"en\"\n  }\n}\n```\n\n> Partner **Request Example** CURL 将 `querySupplierPriceBaseList` 写在顶层；经 LinkFox 网关请放在 **`params.request`**（或脚本接受的顶层 `request` 字段）。\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── openapiGoodsSupplierPriceDTOList[] (OBJECT[])\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[] (OBJECT[])\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice (OBJECT)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.amount (STRING)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.currency (STRING)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].skuId (INTEGER)\n    ├── openapiGoodsSupplierPriceDTOList[].goodsId (INTEGER)\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | 当前请求是否成功 |\n| errorCode | INTEGER | 错误码 |\n| errorMsg | STRING | 错误信息 |\n| result | OBJECT | 业务结果 |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| openapiGoodsSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice | OBJECT | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.amount | STRING | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.currency | STRING | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].skuId | INTEGER | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].goodsId | INTEGER | Partner Response Example |\n\n#### `openapiGoodsSupplierPriceDTOList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| openapiSkuSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice | OBJECT | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice.amount | STRING | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice.currency | STRING | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].skuId | INTEGER | Partner Response Example |\n| goodsId | INTEGER | Partner Response Example |\n\n#### `openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| supplierPrice | OBJECT | Partner Response Example |\n| supplierPrice.amount | STRING | Partner Response Example |\n| supplierPrice.currency | STRING | Partner Response Example |\n| skuId | INTEGER | Partner Response Example |\n\n---\n\n## 脚本\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/global_price_sku_list_price_query.py '{   \"accessToken\": \"TOKEN\",   \"site\": \"global\",   \"tokenPurpose\": \"product-inventory\",   \"request\": {     \"querySupplierPriceBaseList\": [       {         \"goodsId\": 123456789,         \"skuIdList\": [           58224724203874,           58224724203875         ]       }     ],     \"language\": \"en\"   } }'\n```\n\nFile v1.0.5:references/apis/temu-local-goods-baseprice-recommend.md\n\n# 推荐基础价/供货价估算 — `temu.local.goods.baseprice.recommend`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_baseprice_recommend.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`temu.local.goods.baseprice.recommend`，业务载荷放在 Body 的 `params` |\n\n**Description:** Recommend baseprice（根据类目、规格、站外售价、尺寸重量等信息推荐/估算供货价）。\n\n> **网关鉴权字段**（`type`、`app_key`、`access_token`、`sign`、`timestamp` 等）由本 skill 网关脚本处理，**不要**放进业务脚本的 `params`；业务参数见下方 `request`。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── language (STRING, 否)\n    └── supplierPriceEstimateQry (OBJECT, 必填)\n        ├── trademarkInfo (OBJECT, 否)\n        │   ├── brandId (LONG, 否)\n        │   └── trademarkId (LONG, 否)\n        ├── goodsBasicInfo (OBJECT, 必填)\n        │   ├── catId (LONG, 必填)\n        │   ├── taxCode (STRING, 否)\n        │   └── costTemplateId (STRING, 否)\n        └── supplierPriceEstimateSkuQryList[] (OBJECT[], 必填)\n            ├── specIdList[] (LONG[], 必填)\n            ├── externPlatformPriceInfo (OBJECT, 必填)\n            │   ├── amount (STRING, 否)\n            │   └── currency (STRING, 否)\n            └── productDimensionsInfo (OBJECT, 否)\n                ├── weight (STRING, 否)\n                ├── weightUnit (STRING, 否)\n                ├── length (STRING, 否)\n                ├── width (STRING, 否)\n                ├── height (STRING, 否)\n                └── dimensionUnit (STRING, 否)\n```\n\n### `request`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language |\n| supplierPriceEstimateQry | OBJECT | **是** | Supplier price estimate query |\n\n### `supplierPriceEstimateQry`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| trademarkInfo | OBJECT | 否 | Brand information; if provided, will assist merchants in suggesting more accurate prices. |\n| goodsBasicInfo | OBJECT | **是** | Goods basic information |\n| supplierPriceEstimateSkuQryList | OBJECT[] | **是** | Supplier price estimate need info (per SKU/spec) |\n\n### `trademarkInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| brandId | LONG | 否 | Brand ID |\n| trademarkId | LONG | 否 | Trademark ID |\n\n### `goodsBasicInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | LONG | **是** | The ID of the category of this product. It must be a **leaf category** that corresponds to the category tree type specified in the category_version property. |\n| taxCode | STRING | 否 | Product Tax code |\n| costTemplateId | STRING | 否 | The ID of the delivery options available for your product, delimited by commas. Sellers can create ship configurations based on business needs; when listing product to create offer, seller selects one ship configuration for the product. The ship configuration will be used to retrieve the valid ship options on the website. |\n\n### `supplierPriceEstimateSkuQryList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| specIdList | LONG[] | **是** | Specification ID List |\n| externPlatformPriceInfo | OBJECT | **是** | The selling price of the product on other platforms |\n| productDimensionsInfo | OBJECT | 否 | Product dimensions message |\n\n### `externPlatformPriceInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| amount | STRING | 否 | The selling price of the product on other platforms |\n| currency | STRING | 否 | Currency Code |\n\n### `productDimensionsInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| weight | STRING | 否 | The weight of the product. (**Brazil site is mandatory.**) |\n| weightUnit | STRING | 否 | The unit of the weight. The weight unit for product in the **United States** is **`lb`** while in other countries it is **`kg`**. (**Brazil site is mandatory.**) |\n| length | STRING | 否 | The length of the product. Length should be input with two decimal places. (**Brazil site is mandatory.**) |\n| width | STRING | 否 | The width of the product. Width should be input with two decimal places. (**Brazil site is mandatory.**) |\n| height | STRING | 否 | The height of the product. Height should be input with two decimal places. (**Brazil site is mandatory.**) |\n| dimensionUnit | STRING | 否 | Dimension unit. The dimension unit for product in the **United States** is **`inch`** while in other countries it is **`cm`**. (**Brazil site is mandatory.**) |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en-US\",\n    \"supplierPriceEstimateQry\": {\n      \"trademarkInfo\": {\n        \"brandId\": 10001,\n        \"trademarkId\": 20002\n      },\n      \"goodsBasicInfo\": {\n        \"catId\": 12345,\n        \"taxCode\": \"TAX001\",\n        \"costTemplateId\": \"100,101\"\n      },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001, 9002],\n          \"externPlatformPriceInfo\": {\n            \"amount\": \"29.99\",\n            \"currency\": \"USD\"\n          },\n          \"productDimensionsInfo\": {\n            \"weight\": \"1.20\",\n            \"weightUnit\": \"lb\",\n            \"length\": \"10.00\",\n            \"width\": \"8.00\",\n            \"height\": \"2.50\",\n            \"dimensionUnit\": \"inch\"\n          }\n        }\n      ]\n    }\n  }\n}\n```\n\n> 全球站尺寸/重量单位建议：`weightUnit=lb`、`dimensionUnit=inch`；`goodsBasicInfo.catId` 须为**叶子类目**。\n\n---\n\n## Response（Temu `body` 解析后）\n\n官方 Response 字段表尚未提供；解析顺序与通用 Manage 接口一致：\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    └── （推荐价/估算结果字段以 Partner 文档与实网返回为准）\n```\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Success |\n| errorCode | INTEGER | Error code |\n| errorMsg | STRING | Error message |\n| result | OBJECT | Result payload（具体子字段待官方 Response 表补充） |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en-US\",\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" },\n          \"productDimensionsInfo\": {\n            \"weight\": \"0.50\",\n            \"weightUnit\": \"lb\",\n            \"length\": \"6.00\",\n            \"width\": \"4.00\",\n            \"height\": \"1.00\",\n            \"dimensionUnit\": \"inch\"\n          }\n        }\n      ]\n    }\n  }\n}'\n```\n\nFile v1.0.5:references/apis/temu-local-goods-recommendedprice-query.md\n\n# 推荐供货价查询 — `temu.local.goods.recommendedprice.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_recommendedprice_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`temu.local.goods.recommendedprice.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants in querying the recommended supply prices（支持商家查询推荐供货价）。\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── language\n    ├── recommendedPriceType    ← 必填\n    └── goodsIdList[]           ← 必填，1～100 个\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language（语言） |\n| recommendedPriceType | INTEGER | **是** | Recommended price type（推荐价类型） |\n| goodsIdList | LONG[] | **是** | Search param: list of Goods ID（商品 ID 列表），**列表长度须在 1～100 之间** |\n\n#### `recommendedPriceType`\n\n| 值 | 说明 |\n|----|------|\n| `10` | Low traffic（低流量） |\n| `20` | Restricted traffic（限流/受限流量） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en\",\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789, 123456790]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"recommendedPriceType\": 20,\n    \"goodsIdList\": [111111111]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    └── goodsList[]\n        ├── goodsId\n        └── skuList[]\n            ├── skuId\n            └── recommendedSupplyPrice\n                ├── amount\n                └── currency\n```\n\n### `response` 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Whether it was successful or not（当前请求是否成功） |\n| errorCode | INTEGER | Error code（错误码） |\n| errorMsg | STRING | Error message（错误信息） |\n| result | OBJECT | Specific information（业务结果） |\n\n### `result`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| goodsList | OBJECT[] | Goods recommended price info list（商品推荐供货价信息列表） |\n\n### `result.goodsList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| goodsId | LONG | Goods ID（商品 ID） |\n| skuList | OBJECT[] | SKU recommended price info list（SKU 推荐供货价信息列表） |\n\n### `result.goodsList[].skuList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|------|\n| skuId | LONG | SKU ID |\n| recommendedSupplyPrice | OBJECT | Recommended supply price（推荐供货价） |\n\n### `recommendedSupplyPrice`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| amount | STRING | Amount（金额） |\n| currency | STRING | Currency（币种） |\n\n### 响应示例（结构示意）\n\n```json\n{\n  \"success\": true,\n  \"errorCode\": 0,\n  \"errorMsg\": \"\",\n  \"result\": {\n    \"goodsList\": [\n      {\n        \"goodsId\": 123456789,\n        \"skuList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"recommendedSupplyPrice\": {\n              \"amount\": \"12.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 与相关接口区分\n\n| 接口 | 场景 |\n|------|------|\n| `temu.local.goods.recommendedprice.query`（本接口） | 按**已存在商品** `goodsIdList` 查询平台**推荐供货价**（低流量/限流等类型） |\n| `temu.local.goods.baseprice.recommend` | 发品/改价前按**类目+规格+站外价**等**估算**推荐基础价 |\n| `bg.local.goods.priceorder.query` | 白名单商家查询定价单/报价列表（含 `supplierPrice` 等） |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n```\n\nFile v1.0.5:references/authorization-flow.md\n\n# Temu 授权流程\n\n```text\n用户确认店铺类型与用途\n        ↓\ntemu_token_guide.py（输出后台操作步骤）\n        ↓\n用户在 Temu 卖家后台复制 access_token\n        ↓\nsave_temu_access_token.py（可选，写入本地 store）\n        ↓\ntemu_proxy.py / temu_file_download.py\n  - 直接传 accessToken，或\n  - 传 storeKey + site + managementType + tokenPurpose\n```\n\n## 决策表\n\n| 用户需求 | shopType | tokenPurpose | site |\n|----------|----------|--------------|------|\n| 半托管查商品/库存 | semi-managed | product-inventory | cn / partner |\n| 半托管查订单/发货 | semi-managed | order-shipping | us / global / eu |\n| 全托管任意接口 | full-managed | full-managed | cn / partner |\n| 美欧本土店 | local-native | local-native | us 等 |\n\n## 与 API 调用的对应关系\n\n紫鸟转发路径：`/temu-proxy/{site}/{managementType}`\n\n- 全托管 CN：`cn` + `full-managed`\n- 半托管商品：`cn`/`partner` + `semi-managed` + 商品 token\n- 半托管订单：`us`/`global`/`eu` + `semi-managed` + 订单 token\n\n授权应用名称必须与后台一致：**酷鸟卖家助手** 或 **Cyber-ERP酷鸟助手** / **Cyber-ERP**。\n\nFile v1.0.5:references/onboarding.md\n\n# 解决认证和积分问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`（workbuddy 宿主加 `--channel workbuddy`）\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `积分/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nArchive v1.0.4: 32 files, 42437 bytes\n\nFiles: references/access-token.md (4612b), references/api.md (4191b), references/apis/bg-local-goods-priceorder-change-sku-price.md (5021b), references/apis/bg-local-goods-priceorder-query.md (8165b), references/apis/bg-local-goods-sku-list-price-query.md (5299b), references/apis/README.md (1148b), references/apis/temu-local-goods-baseprice-recommend.md (7119b), references/apis/temu-local-goods-recommendedprice-query.md (4256b), references/authorization-flow.md (1186b), references/partner-global-catalog.md (3051b), scripts/_global_price_script.py (524b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12427b), scripts/_temu_global_common.py (3122b), scripts/_temu_token_store.py (4273b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/global_price_baseprice_recommend.py (289b), scripts/global_price_priceorder_change_sku_price.py (319b), scripts/global_price_priceorder_query.py (281b), scripts/global_price_recommendedprice_query.py (288b), scripts/global_price_sku_list_price_query.py (284b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_global_file_download.py (711b), scripts/temu_global_proxy.py (939b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), skill-card.md (3102b), SKILL.md (8269b), _meta.json (144b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: linkfox-temu-price-global\ndescription: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。\n---\n\n# Temu 全球站价格 API（linkfox-temu-price-global）\n\n本 skill（`linkfox-temu-price-global`）覆盖 **全球区（`site=global`，非美国/欧洲）** 的 **Product** 菜单下与**价格/供货价**相关的 `bg.local.*` / `temu.local.*` 接口（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`，具体 `sub_menu_code` 以 Partner 文档为准）。\n\n> 当前已接入 **5** 个接口；其余价格接口将按 Partner 文档逐条补充到 `references/apis/` 与 `global_price_*.py`。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 价格 OpenAPI（`global_price_*`、`temu_global_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 商品列表/详情/编辑/库存/上下架 | `linkfox-temu-manage-product-global` |\n| 美国站价格 | `linkfox-temu-price-us` |\n| 欧洲站价格 | `linkfox-temu-price-eu` |\n| 订单查询、发货、物流 | `linkfox-temu-order-global` |\n| 取消订单（买家+卖家） | `linkfox-temu-cancel-order-us` |\n\n| 履约/发货（含自发货） | `linkfox-temu-fulfillment-us` |\n| 发品、类目、V2 add | `linkfox-temu-add-product-us` |\n| 半托管 `temu.goods.price.list.get`（`productSkuIds`） | `linkfox-temu-add-product-us` → `us_goods_price_list.py` |\n| 网关与 Temu token | 本 skill `scripts/` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用以下措施来处理：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n### 措施\n- 优先采用skill内的 onboarding.md 引导解决问题。\n- 如找不到 onboarding.md 文件，则加载 /linkfox-onboarding 这个skill并根据它的引导来处理。如未安装请先安装：\n    - 下载 https://agent-files.linkfox.com/skills/linkfox-onboarding/release.zip，解压后安装这个skill。如需用户授权才可下载，要询问用户获得授权，你不能自己放弃下载。\n- 兜底措施：仅当前面两个措施经过所有努力都走不通时，才提示用户依据 https://skill.linkfox.com/linkfoxskills/guide.htm 指引获取API Key，或去 https://os.linkfox.com/ 补充积分。\n\n## 默认参数\n\n| 字段 | 默认 | 说明 |\n|------|------|------|\n| site | `global` | Partner Global（非 US/EU） |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts（按 type）\n\n| 脚本 | type | 状态 |\n|------|------|------|\n| `global_price_baseprice_recommend.py` | `temu.local.goods.baseprice.recommend` | 已接入 |\n| `global_price_recommendedprice_query.py` | `temu.local.goods.recommendedprice.query` | 已接入 |\n| `global_price_priceorder_query.py` | `bg.local.goods.priceorder.query` | 已接入 |\n| `global_price_priceorder_change_sku_price.py` | `bg.local.goods.priceorder.change.sku.price` | 已接入 |\n| `global_price_sku_list_price_query.py` | `bg.local.goods.sku.list.price.query` | 已接入 |\n| `temu_global_proxy.py` | 任意 `type` | 通用 |\n| `temu_global_file_download.py` | 加签文件下载 | 通用 |\n\n> 新增接口后在此表与 [partner-global-catalog.md](./references/partner-global-catalog.md) 同步登记。\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 推荐基础价/供货价估算（须 catId + supplierPriceEstimateSkuQryList）\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n        }\n      ]\n    }\n  }\n}'\n\n# 推荐供货价查询（须 recommendedPriceType + goodsIdList，1～100 个 goodsId）\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n\n# 定价单列表查询（白名单；分页 page/size，可选筛选）\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n\n# 批量修改 SKU 基础价（白名单；须 goodsId + changeSkuPriceDTOList）\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n\n# SKU 供货价列表（goodsId + skuIdList）\npython scripts/global_price_sku_list_price_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      { \"goodsId\": 123456789, \"skuIdList\": [58224724203874] }\n    ]\n  }\n}'\n```\n\n**Feedback：** `skillName`：`linkfox-temu-price-global`\n\n## 网关与授权脚本\n\n| 脚本 | 说明 |\n|------|------|\n| `check_linkfox_token.py` | 校验 LinkFox 用户 Token |\n| `temu_token_guide.py` | Temu accessToken 后台授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token |\n| `get_temu_access_token.py` | 读取已保存 token |\n| `temu_proxy.py` | 通用网关转发（多 site） |\n| `temu_file_download.py` | 加签文件下载（多 site） |\n\n授权说明：[references/access-token.md](./references/access-token.md)\n\n## 积分消耗规则\n\n不消耗积分。\n\nFile v1.0.4:references/apis/README.md\n\n# Price — 接口文档索引\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-global-catalog.md](../partner-global-catalog.md)。\n\n## SKU 供货价查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.sku.list.price.query` | [bg-local-goods-sku-list-price-query.md](./bg-local-goods-sku-list-price-query.md) |\n\n## 定价单查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.query` | [bg-local-goods-priceorder-query.md](./bg-local-goods-priceorder-query.md) |\n\n## 推荐 / 估算（2）\n\n| type | 文档 |\n|------|------|\n| `temu.local.goods.baseprice.recommend` | [temu-local-goods-baseprice-recommend.md](./temu-local-goods-baseprice-recommend.md) |\n| `temu.local.goods.recommendedprice.query` | [temu-local-goods-recommendedprice-query.md](./temu-local-goods-recommendedprice-query.md) |\n\n## 编辑 / 改价（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.change.sku.price` | [bg-local-goods-priceorder-change-sku-price.md](./bg-local-goods-priceorder-change-sku-price.md) |\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-price-global\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1783946364454\n}\n\nFile v1.0.4:references/access-token.md\n\n# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=global` / `global` / `eu`，`managementType=semi-managed`\n\n## 3. 全托管店铺\n\n1. 登录 Temu 平台\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → **「酷鸟卖家助手」** → 全选 → 复制 token\n4. 调用 API：`managementType=full-managed`，`site` 通常 `cn` 或 `partner`\n\n## 4. 本土店铺（美区、欧区主体）\n\n1. 登录 Temu\n2. **Apps And Services** → **Manage Your Apps**\n3. **Authorize a new app** → 搜索 **「Cyber-ERP」**\n4. 一般权限与敏感权限全选 → 确认 → 复制 token\n\n## 站点与 OpenAPI 网关\n\n| site | 说明 | Temu 网关 |\n|------|------|-----------|\n| cn | 中国站 | openapi.kuajingmaihuo.com |\n| partner | Partner 网关 | openapi-b-partner.temu.com |\n| us | 全球站 | openapi-b-global.temu.com |\n| global | 全球区 | openapi-b-global.temu.com |\n| eu | 欧洲站 | openapi-b-eu.temu.com |\n\n## 本地保存 Token（推荐）\n\n默认存储：`~/.linkfox/temu-access-tokens.json`（可用 `TEMU_TOKEN_STORE_PATH` 覆盖）。\n\n```bash\n# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'\n```\n\n## 注意事项\n\n1. **子账号**：可能无法进入服务市场，需主账号授权。\n2. **多站点**：全球站、英国站等需分别登录对应后台获取 Token。\n3. **有效期**：Token 会过期，过期后重新在后台复制并 `save_temu_access_token.py`。\n4. **IP 白名单**：需联系紫鸟开放平台配置调用 IP。\n5. **参数小写**：`site`、`managementType` 必须小写。\n\n## 脚本一览\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_token_guide.py` | 按店铺类型/用途输出授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token（默认脱敏）|\n| `get_temu_access_token.py` | 读取指定 store 的 token |\n\nFile v1.0.4:references/api.md\n\n# linkfox-temu-price-global — API 参考\r\n\r\nTemu **全球站商品价格管理**（Partner Global **Product** 下价格/供货价相关接口），经本 skill `temu_global_proxy`（`POST /temu/proxy`） 转发。Temu 的 `type` 写在 Body，**不是** URL 路径。\r\n\r\n> 网关与鉴权：本 skill `scripts/`（`LINKFOXAGENT_API_KEY`、`accessToken` / `storeKey`）。授权见 `references/access-token.md`。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\r\n\r\n---\r\n\r\n## 调用规范\r\n\r\n| 项 | 说明 |\r\n|----|------|\r\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 价格 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_global_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=global`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-global.temu.com/openapi/router`（网关按 `site` 解析） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `global`（本 skill 默认） |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\r\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory` |\r\n| type | string | 是 | Temu 接口名，如 `bg.local.goods.priceorder.query` |\r\n| params | object | 否 | 业务参数；多数 Manage 接口业务块在 **`params.request`** |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\r\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\r\n\r\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/global_price_priceorder_query.py '{\"accessToken\":\"TOKEN\",\"request\":{\"page\":1,\"size\":20,\"priceOrderType\":1}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-global-catalog.md](./partner-global-catalog.md)。\r\n\r\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)。\r\n\r\n---\r\n\r\n## 典型价格管理流程\r\n\r\n```text\r\n1. linkfox-temu-manage-product-global → list/detail / spec.info.get           → 拿 goodsId、catId、specIdList\r\n2. bg.local.goods.priceorder.query（本 skill，白名单）                     → 分页查定价单/报价列表\r\n3. temu.local.goods.recommendedprice.query（本 skill）                     → 按 goodsIdList 查平台推荐供货价\r\n4. temu.local.goods.baseprice.recommend（本 skill）                        → 发品/改价前推荐基础价估算\r\n5. bg.local.goods.priceorder.change.sku.price（本 skill，白名单）          → 批量改 SKU 基础价\r\n6. bg.local.goods.priceorder.query                                         → 改价后核对 priceAuditList / supplierPrice\r\n```\r\n\r\n发品侧半托管供货价列表（`temu.goods.price.list.get`，入参 `productSkuIds`）见 **`linkfox-temu-add-product-us`**，与本 skill 的 `bg.local.*` 本地仓价格接口**不要混用**。\r\n\r\n---\r\n\r\n## 网关错误码\r\n\r\n| code | 说明 | 处理 |\r\n|------|------|------|\r\n| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 `LINKFOXAGENT_API_KEY` |\r\n| 1003 | 转发失败 | 检查 Temu token、白名单、网络 |\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\r\n- `skillName`: **`linkfox-temu-price-global`**\n\nFile v1.0.4:references/apis/bg-local-goods-priceorder-change-sku-price.md\n\n# 批量修改 SKU 基础价（定价单）— `bg.local.goods.priceorder.change.sku.price`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_priceorder_change_sku_price.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.priceorder.change.sku.price`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants within the **white list** to modify SKU base prices in batches.\n\n> 须在 Temu 白名单内方可调用；非白名单店铺可能返回业务错误。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── goodsId (LONG, 必填)\n    ├── changeSkuPriceDTOList[] (OBJECT[], 必填)\n    │   ├── reason (STRING, 否)\n    │   └── skuChangePriceBaseDTOList[] (OBJECT[], 必填)\n    │       ├── skuId (LONG, 必填)\n    │       └── newSupplierPrice (OBJECT, 必填)\n    │           ├── amount (STRING, 否)\n    │           └── currency (STRING, 否)\n    └── rejectSkuPricing (BOOLEAN, 否)\n```\n\n### `request`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsId | LONG | **是** | Goods Id |\n| changeSkuPriceDTOList | OBJECT[] | **是** | SKU information and reason that adjust price |\n| rejectSkuPricing | BOOLEAN | 否 | Reject if price order is wait merchant confirm |\n\n### `changeSkuPriceDTOList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| reason | STRING | 否 | The reason of adjust price |\n| skuChangePriceBaseDTOList | OBJECT[] | **是** | SKU information |\n\n### `skuChangePriceBaseDTOList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| skuId | LONG | **是** | SKU ID |\n| newSupplierPrice | OBJECT | **是** | Base price (new supplier price) |\n\n### `newSupplierPrice`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| amount | STRING | 否 | Amount |\n| currency | STRING | 否 | Currency Type |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Cost adjustment\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": {\n              \"amount\": \"18.99\",\n              \"currency\": \"USD\"\n            }\n          },\n          {\n            \"skuId\": 58224724203875,\n            \"newSupplierPrice\": {\n              \"amount\": \"19.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n> 同一 `goodsId` 下可在一个 `changeSkuPriceDTOList` 项里放多个 SKU；也可按调价原因拆成多项，每项带各自的 `reason` 与 `skuChangePriceBaseDTOList`。\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── successSkuList[] (LONG)\n    ├── failedSkuList[] (LONG)\n    ├── failedSkuReasonMap (MAP)\n    │   ├── $key (STRING)   → SKU ID\n    │   └── $value (STRING) → Fail reason\n    └── successPriceOrderList[] (OBJECT[])\n        ├── priceOrderSn (STRING)\n        └── skuIdList[] (LONG)\n```\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Is success |\n| errorCode | INTEGER | Error code |\n| errorMsg | STRING | Error message |\n| result | OBJECT | Return specific information |\n| result.successSkuList | LONG[] | SKU list with successfully changed prices |\n| result.failedSkuList | LONG[] | SKU list with failed change price |\n| result.failedSkuReasonMap | MAP | Reasons for price adjustment failure；**key** 为 SKU ID（字符串），**value** 为失败原因 |\n| result.successPriceOrderList | OBJECT[] | List of price orders that request for changing price successfully |\n\n### `successPriceOrderList[]` 元素\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceOrderSn | STRING | Price order Sn |\n| skuIdList | LONG[] | List of SKUs corresponding to price order |\n\n### `failedSkuReasonMap` 示例\n\n```json\n{\n  \"58224724203875\": \"Price order pending merchant confirm\"\n}\n```\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Promo\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n```\n\n改价后可用 `bg.local.goods.priceorder.query` 核对 `priceAuditList` 中的 `supplierPrice`，或再次调用本接口查看 `successSkuList` / `failedSkuList`。\n\nFile v1.0.4:references/apis/bg-local-goods-priceorder-query.md\n\n# 定价单列表查询 — `bg.local.goods.priceorder.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_priceorder_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.priceorder.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants within the **white list** to query the price offer list（支持白名单商家查询定价单/报价列表）。\n\n> 须在 Temu 白名单内方可调用；非白名单店铺可能返回业务错误。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── page\n    ├── size\n    ├── priceOrderType\n    ├── priceOrderSubType\n    ├── goodsName\n    ├── goodsId\n    ├── priceOrderSnList[]\n    ├── orderBy\n    ├── orderByType\n    ├── goodsCreateTimeFrom / goodsCreateTimeTo\n    ├── priceOrderCreateTimeFrom / priceOrderCreateTimeTo\n    ├── goodsIdList[]\n    └── status\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | INTEGER | 否 | Page number（页码） |\n| size | INTEGER | 否 | Page size（每页条数），**须小于 100** |\n| priceOrderType | INTEGER | 否 | Pricing type（定价单类型）；**默认**为定价评估报价 |\n| priceOrderSubType | INTEGER | 否 | price order sub type（定价单子类型） |\n| goodsName | STRING | 否 | Search param: goodsName（按商品名搜索） |\n| goodsId | STRING | 否 | Search param: goodsId（按商品 ID 搜索） |\n| priceOrderSnList | STRING[] | 否 | search param: list of price order sn（定价单编号列表） |\n| orderBy | STRING | 否 | 排序字段；**默认** `order_create_time` |\n| orderByType | INTEGER | 否 | 排序方向；**默认** `0`（DESC） |\n| goodsCreateTimeFrom | LONG | 否 | Search param: The starting time of goods creation（商品创建起始时间） |\n| goodsCreateTimeTo | LONG | 否 | Search param: The end time of goods creation（商品创建结束时间） |\n| priceOrderCreateTimeFrom | LONG | 否 | Search param: The starting time of price order creation（定价单创建起始时间） |\n| priceOrderCreateTimeTo | LONG | 否 | Search param: The end time of price order creation（定价单创建结束时间） |\n| goodsIdList | STRING[] | 否 | goodsIdList（商品 ID 列表） |\n| status | INTEGER | 否 | price order status（定价单状态） |\n\n#### `priceOrderType`\n\n| 值 | 说明 |\n|----|------|\n| 不传 / 默认 | offer for pricing assessment（定价评估报价，默认） |\n| `1` | offer for pricing assessment（定价评估报价） |\n| `2` | offer for pricing opportunities or modification（定价机会或改价报价） |\n\n#### `priceOrderSubType`\n\n| 值 | 说明 |\n|----|------|\n| `2002` | base price increase invitations（基础价上调邀请） |\n| `2003` | sales boost（销量提升） |\n\n#### `orderBy`\n\n| 值 | 说明 |\n|----|------|\n| `goods_create_time` | 按商品创建时间排序 |\n| `order_create_time` | 按定价单创建时间排序（**默认**） |\n\n#### `orderByType`\n\n| 值 | 说明 |\n|----|------|\n| `0` | DESC（降序，**默认**） |\n| `1` | ASC（升序） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 50,\n    \"goodsId\": \"123456789\",\n    \"priceOrderSubType\": 2002,\n    \"status\": 1\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"priceOrderSnList\": [\"PO-SN-001\", \"PO-SN-002\"],\n    \"goodsIdList\": [\"111\", \"222\"]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    ├── pageNum\n    ├── total\n    └── priceAuditList[]          ← Price offer list\n        ├── priceOrderId\n        ├── goodsId\n        ├── pricingType\n        ├── specName[]\n        ├── skuIdList[]\n        ├── status\n        ├── suggestSupplierPrice\n        ├── targetSupplierPrice\n        ├── sourceSupplierPrice\n        ├── supplierPrice\n        ├── reason\n        ├── rejectTypeDesc\n        ├── priceCommitId\n        └── priceCommitVersion\n```\n\n### `response` 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Is success（当前请求是否成功） |\n| errorCode | INTEGER | Error code（错误码） |\n| errorMsg | STRING | Error message（错误信息） |\n| result | OBJECT | Return specific information（业务结果） |\n\n### `result`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| pageNum | INTEGER | Page number（当前页码） |\n| total | LONG | Total（总记录数） |\n| priceAuditList | OBJECT[] | Price offer list（定价单/报价列表） |\n\n### `result.priceAuditList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceOrderId | LONG | Pricing ID（定价单 ID） |\n| goodsId | LONG | Goods ID（商品 ID） |\n| pricingType | INTEGER | pricing type，见下表 |\n| specName | STRING[] | Specification Name（规格名称列表） |\n| skuIdList | LONG[] | SKU id list（SKU ID 列表） |\n| status | INTEGER | Status of price offer（报价/定价单状态） |\n| suggestSupplierPrice | OBJECT | Reference Base Price（参考基础价/建议供货价） |\n| targetSupplierPrice | OBJECT | New Base Price（目标新基础价） |\n| sourceSupplierPrice | OBJECT | source supplier price（原供货价） |\n| supplierPrice | OBJECT | Final Base Price（最终基础价/供货价） |\n| reason | STRING | Rejection Reason（拒绝原因） |\n| rejectTypeDesc | STRING | Rejection Type Description（拒绝类型描述） |\n| priceCommitId | LONG | Price commit id（价格提交 ID） |\n| priceCommitVersion | INTEGER | Price commit version（价格提交版本） |\n\n#### `pricingType`（响应字段，与入参 `priceOrderType` 枚举略有差异）\n\n| 值 | 说明 |\n|----|------|\n| `0` | offer for pricing assessment（定价评估报价） |\n| `1` | offer for pricing opportunities（定价机会报价） |\n| `2` | offer for pricing modification（改价报价） |\n\n### 价格对象结构（`suggestSupplierPrice` / `targetSupplierPrice` / `sourceSupplierPrice` / `supplierPrice`）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| amount | STRING | Amount（金额） |\n| currency | STRING | Currency Type（币种） |\n\n### 响应示例（结构示意）\n\n```json\n{\n  \"success\": true,\n  \"errorCode\": 0,\n  \"errorMsg\": \"\",\n  \"result\": {\n    \"pageNum\": 1,\n    \"total\": 2,\n    \"priceAuditList\": [\n      {\n        \"priceOrderId\": 90001,\n        \"goodsId\": 123456789,\n        \"pricingType\": 0,\n        \"specName\": [\"Color: Red\", \"Size: M\"],\n        \"skuIdList\": [58224724203874],\n        \"status\": 1,\n        \"suggestSupplierPrice\": { \"amount\": \"12.00\", \"currency\": \"USD\" },\n        \"targetSupplierPrice\": { \"amount\": \"10.99\", \"currency\": \"USD\" },\n        \"sourceSupplierPrice\": { \"amount\": \"13.50\", \"currency\": \"USD\" },\n        \"supplierPrice\": { \"amount\": \"10.99\", \"currency\": \"USD\" },\n        \"reason\": \"\",\n        \"rejectTypeDesc\": \"\",\n        \"priceCommitId\": 80001,\n        \"priceCommitVersion\": 1\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 与相关接口区分\n\n| 接口 | 场景 |\n|------|------|\n| `bg.local.goods.priceorder.query`（本接口） | **白名单**商家分页查询定价单/报价列表 |\n| `bg.local.goods.priceorder.change.sku.price` | **白名单**商家批量修改 SKU 基础价 |\n| `linkfox-temu-add-product-us` `temu.goods.price.list.get` | 半托管侧按 `productSkuIds` 查供货价 |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n```\n\nFile v1.0.4:references/apis/bg-local-goods-sku-list-price-query.md\n\n# SKU 供货价列表查询 — `bg.local.goods.sku.list.price.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_sku_list_price_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=a9bd154c38384f2c99e57c2ebe271299 |\n| **网关** | `POST /temu/proxy`，`type`=`bg.local.goods.sku.list.price.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Query supplier/base price for goods SKUs by goodsId and skuIdList.\n\n> 默认 **`site=global`**、**`tokenPurpose=product-inventory`**。Partner 导出 HTML 中 **Response** 表多为折叠，下列 **Response** 按 **Response Example** 展开。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT)\n    └── language (STRING)\n    └── querySupplierPriceBaseList (OBJECT[] **必填**)\n    └── querySupplierPriceBaseList[].goodsId (LONG **必填**)\n    └── querySupplierPriceBaseList[].skuIdList (LONG[] **必填**)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language |\n| querySupplierPriceBaseList | OBJECT[] | **是** | Query supplier price base list |\n\n#### `request.querySupplierPriceBaseList[]`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsId | LONG | **是** | Goods ID（商品 ID） |\n| skuIdList | LONG[] | **是** | SKU ID list（SKU ID 列表） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      {\n        \"goodsId\": 123456789,\n        \"skuIdList\": [\n          58224724203874,\n          58224724203875\n        ]\n      }\n    ],\n    \"language\": \"en\"\n  }\n}\n```\n\n> Partner **Request Example** CURL 将 `querySupplierPriceBaseList` 写在顶层；经 LinkFox 网关请放在 **`params.request`**（或脚本接受的顶层 `request` 字段）。\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── openapiGoodsSupplierPriceDTOList[] (OBJECT[])\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[] (OBJECT[])\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice (OBJECT)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.amount (STRING)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.currency (STRING)\n    ├── openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].skuId (INTEGER)\n    ├── openapiGoodsSupplierPriceDTOList[].goodsId (INTEGER)\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | 当前请求是否成功 |\n| errorCode | INTEGER | 错误码 |\n| errorMsg | STRING | 错误信息 |\n| result | OBJECT | 业务结果 |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| openapiGoodsSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice | OBJECT | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.amount | STRING | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].supplierPrice.currency | STRING | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[].skuId | INTEGER | Partner Response Example |\n| openapiGoodsSupplierPriceDTOList[].goodsId | INTEGER | Partner Response Example |\n\n#### `openapiGoodsSupplierPriceDTOList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| openapiSkuSupplierPriceDTOList[] | OBJECT[] | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice | OBJECT | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice.amount | STRING | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].supplierPrice.currency | STRING | Partner Response Example |\n| openapiSkuSupplierPriceDTOList[].skuId | INTEGER | Partner Response Example |\n| goodsId | INTEGER | Partner Response Example |\n\n#### `openapiGoodsSupplierPriceDTOList[].openapiSkuSupplierPriceDTOList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| supplierPrice | OBJECT | Partner Response Example |\n| supplierPrice.amount | STRING | Partner Response Example |\n| supplierPrice.currency | STRING | Partner Response Example |\n| skuId | INTEGER | Partner Response Example |\n\n---\n\n## 脚本\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/global_price_sku_list_price_query.py '{   \"accessToken\": \"TOKEN\",   \"site\": \"global\",   \"tokenPurpose\": \"product-inventory\",   \"request\": {     \"querySupplierPriceBaseList\": [       {         \"goodsId\": 123456789,         \"skuIdList\": [           58224724203874,           58224724203875         ]       }     ],     \"language\": \"en\"   } }'\n```\n\nFile v1.0.4:references/apis/temu-local-goods-baseprice-recommend.md\n\n# 推荐基础价/供货价估算 — `temu.local.goods.baseprice.recommend`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_baseprice_recommend.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`temu.local.goods.baseprice.recommend`，业务载荷放在 Body 的 `params` |\n\n**Description:** Recommend baseprice（根据类目、规格、站外售价、尺寸重量等信息推荐/估算供货价）。\n\n> **网关鉴权字段**（`type`、`app_key`、`access_token`、`sign`、`timestamp` 等）由本 skill 网关脚本处理，**不要**放进业务脚本的 `params`；业务参数见下方 `request`。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── language (STRING, 否)\n    └── supplierPriceEstimateQry (OBJECT, 必填)\n        ├── trademarkInfo (OBJECT, 否)\n        │   ├── brandId (LONG, 否)\n        │   └── trademarkId (LONG, 否)\n        ├── goodsBasicInfo (OBJECT, 必填)\n        │   ├── catId (LONG, 必填)\n        │   ├── taxCode (STRING, 否)\n        │   └── costTemplateId (STRING, 否)\n        └── supplierPriceEstimateSkuQryList[] (OBJECT[], 必填)\n            ├── specIdList[] (LONG[], 必填)\n            ├── externPlatformPriceInfo (OBJECT, 必填)\n            │   ├── amount (STRING, 否)\n            │   └── currency (STRING, 否)\n            └── productDimensionsInfo (OBJECT, 否)\n                ├── weight (STRING, 否)\n                ├── weightUnit (STRING, 否)\n                ├── length (STRING, 否)\n                ├── width (STRING, 否)\n                ├── height (STRING, 否)\n                └── dimensionUnit (STRING, 否)\n```\n\n### `request`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language |\n| supplierPriceEstimateQry | OBJECT | **是** | Supplier price estimate query |\n\n### `supplierPriceEstimateQry`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| trademarkInfo | OBJECT | 否 | Brand information; if provided, will assist merchants in suggesting more accurate prices. |\n| goodsBasicInfo | OBJECT | **是** | Goods basic information |\n| supplierPriceEstimateSkuQryList | OBJECT[] | **是** | Supplier price estimate need info (per SKU/spec) |\n\n### `trademarkInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| brandId | LONG | 否 | Brand ID |\n| trademarkId | LONG | 否 | Trademark ID |\n\n### `goodsBasicInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | LONG | **是** | The ID of the category of this product. It must be a **leaf category** that corresponds to the category tree type specified in the category_version property. |\n| taxCode | STRING | 否 | Product Tax code |\n| costTemplateId | STRING | 否 | The ID of the delivery options available for your product, delimited by commas. Sellers can create ship configurations based on business needs; when listing product to create offer, seller selects one ship configuration for the product. The ship configuration will be used to retrieve the valid ship options on the website. |\n\n### `supplierPriceEstimateSkuQryList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| specIdList | LONG[] | **是** | Specification ID List |\n| externPlatformPriceInfo | OBJECT | **是** | The selling price of the product on other platforms |\n| productDimensionsInfo | OBJECT | 否 | Product dimensions message |\n\n### `externPlatformPriceInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| amount | STRING | 否 | The selling price of the product on other platforms |\n| currency | STRING | 否 | Currency Code |\n\n### `productDimensionsInfo`\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| weight | STRING | 否 | The weight of the product. (**Brazil site is mandatory.**) |\n| weightUnit | STRING | 否 | The unit of the weight. The weight unit for product in the **United States** is **`lb`** while in other countries it is **`kg`**. (**Brazil site is mandatory.**) |\n| length | STRING | 否 | The length of the product. Length should be input with two decimal places. (**Brazil site is mandatory.**) |\n| width | STRING | 否 | The width of the product. Width should be input with two decimal places. (**Brazil site is mandatory.**) |\n| height | STRING | 否 | The height of the product. Height should be input with two decimal places. (**Brazil site is mandatory.**) |\n| dimensionUnit | STRING | 否 | Dimension unit. The dimension unit for product in the **United States** is **`inch`** while in other countries it is **`cm`**. (**Brazil site is mandatory.**) |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en-US\",\n    \"supplierPriceEstimateQry\": {\n      \"trademarkInfo\": {\n        \"brandId\": 10001,\n        \"trademarkId\": 20002\n      },\n      \"goodsBasicInfo\": {\n        \"catId\": 12345,\n        \"taxCode\": \"TAX001\",\n        \"costTemplateId\": \"100,101\"\n      },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001, 9002],\n          \"externPlatformPriceInfo\": {\n            \"amount\": \"29.99\",\n            \"currency\": \"USD\"\n          },\n          \"productDimensionsInfo\": {\n            \"weight\": \"1.20\",\n            \"weightUnit\": \"lb\",\n            \"length\": \"10.00\",\n            \"width\": \"8.00\",\n            \"height\": \"2.50\",\n            \"dimensionUnit\": \"inch\"\n          }\n        }\n      ]\n    }\n  }\n}\n```\n\n> 全球站尺寸/重量单位建议：`weightUnit=lb`、`dimensionUnit=inch`；`goodsBasicInfo.catId` 须为**叶子类目**。\n\n---\n\n## Response（Temu `body` 解析后）\n\n官方 Response 字段表尚未提供；解析顺序与通用 Manage 接口一致：\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    └── （推荐价/估算结果字段以 Partner 文档与实网返回为准）\n```\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Success |\n| errorCode | INTEGER | Error code |\n| errorMsg | STRING | Error message |\n| result | OBJECT | Result payload（具体子字段待官方 Response 表补充） |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en-US\",\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" },\n          \"productDimensionsInfo\": {\n            \"weight\": \"0.50\",\n            \"weightUnit\": \"lb\",\n            \"length\": \"6.00\",\n            \"width\": \"4.00\",\n            \"height\": \"1.00\",\n            \"dimensionUnit\": \"inch\"\n          }\n        }\n      ]\n    }\n  }\n}'\n```\n\nFile v1.0.4:references/apis/temu-local-goods-recommendedprice-query.md\n\n# 推荐供货价查询 — `temu.local.goods.recommendedprice.query`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/global_price_recommendedprice_query.py` |\n| **Partner 文档** | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a 以 Partner 后台该接口页为准） |\n| **网关** | `POST /temu/proxy`，`type`=`temu.local.goods.recommendedprice.query`，业务载荷放在 Body 的 `params` |\n\n**Description:** Support merchants in querying the recommended supply prices（支持商家查询推荐供货价）。\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。\n\n---\n\n## Request 结构（官方业务参数）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── language\n    ├── recommendedPriceType    ← 必填\n    └── goodsIdList[]           ← 必填，1～100 个\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| language | STRING | 否 | Language（语言） |\n| recommendedPriceType | INTEGER | **是** | Recommended price type（推荐价类型） |\n| goodsIdList | LONG[] | **是** | Search param: list of Goods ID（商品 ID 列表），**列表长度须在 1～100 之间** |\n\n#### `recommendedPriceType`\n\n| 值 | 说明 |\n|----|------|\n| `10` | Low traffic（低流量） |\n| `20` | Restricted traffic（限流/受限流量） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"language\": \"en\",\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789, 123456790]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"recommendedPriceType\": 20,\n    \"goodsIdList\": [111111111]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result\n    └── goodsList[]\n        ├── goodsId\n        └── skuList[]\n            ├── skuId\n            └── recommendedSupplyPrice\n                ├── amount\n                └── currency\n```\n\n### `response` 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | Whether it was successful or not（当前请求是否成功） |\n| errorCode | INTEGER | Error code（错误码） |\n| errorMsg | STRING | Error message（错误信息） |\n| result | OBJECT | Specific information（业务结果） |\n\n### `result`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| goodsList | OBJECT[] | Goods recommended price info list（商品推荐供货价信息列表） |\n\n### `result.goodsList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| goodsId | LONG | Goods ID（商品 ID） |\n| skuList | OBJECT[] | SKU recommended price info list（SKU 推荐供货价信息列表） |\n\n### `result.goodsList[].skuList[]`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|------|\n| skuId | LONG | SKU ID |\n| recommendedSupplyPrice | OBJECT | Recommended supply price（推荐供货价） |\n\n### `recommendedSupplyPrice`\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| amount | STRING | Amount（金额） |\n| currency | STRING | Currency（币种） |\n\n### 响应示例（结构示意）\n\n```json\n{\n  \"success\": true,\n  \"errorCode\": 0,\n  \"errorMsg\": \"\",\n  \"result\": {\n    \"goodsList\": [\n      {\n        \"goodsId\": 123456789,\n        \"skuList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"recommendedSupplyPrice\": {\n              \"amount\": \"12.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 与相关接口区分\n\n| 接口 | 场景 |\n|------|------|\n| `temu.local.goods.recommendedprice.query`（本接口） | 按**已存在商品** `goodsIdList` 查询平台**推荐供货价**（低流量/限流等类型） |\n| `temu.local.goods.baseprice.recommend` | 发品/改价前按**类目+规格+站外价**等**估算**推荐基础价 |\n| `bg.local.goods.priceorder.query` | 白名单商家查询定价单/报价列表（含 `supplierPrice` 等） |\n\n---\n\n## 示例\n\n```bash\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n```\n\nFile v1.0.4:references/authorization-flow.md\n\n# Temu 授权流程\n\n```text\n用户确认店铺类型与用途\n        ↓\ntemu_token_guide.py（输出后台操作步骤）\n        ↓\n用户在 Temu 卖家后台复制 access_token\n        ↓\nsave_temu_access_token.py（可选，写入本地 store）\n        ↓\ntemu_proxy.py / temu_file_download.py\n  - 直接传 accessToken，或\n  - 传 storeKey + site + managementType + tokenPurpose\n```\n\n## 决策表\n\n| 用户需求 | shopType | tokenPurpose | site |\n|----------|----------|--------------|------|\n| 半托管查商品/库存 | semi-managed | product-inventory | cn / partner |\n| 半托管查订单/发货 | semi-managed | order-shipping | us / global / eu |\n| 全托管任意接口 | full-managed | full-managed | cn / partner |\n| 美欧本土店 | local-native | local-native | us 等 |\n\n## 与 API 调用的对应关系\n\n紫鸟转发路径：`/temu-proxy/{site}/{managementType}`\n\n- 全托管 CN：`cn` + `full-managed`\n- 半托管商品：`cn`/`partner` + `semi-managed` + 商品 token\n- 半托管订单：`us`/`global`/`eu` + `semi-managed` + 订单 token\n\n授权应用名称必须与后台一致：**酷鸟卖家助手** 或 **Cyber-ERP酷鸟助手** / **Cyber-ERP**。\n\nFile v1.0.4:references/partner-global-catalog.md\n\n# Partner Global — Price 接口目录\n\nPartner Platform for **Global（全球区，非 US/EU）** 菜单：**Product** 下与**价格/供货价**相关的接口。\n\n本 skill 覆盖 **5** 个价格/供货价 `type`。调用经 `temu_global_proxy`（`POST /temu/proxy`），默认 **`site=global`**、**`tokenPurpose=product-inventory`**。\n\n> **说明**：`sub_menu_code` 请在 [partner-global.temu.com](https://partner-global.temu.com/documentation) 按 `type` 核对。美国站请用 **`linkfox-temu-price-us`**（`site=us`）；欧洲站请用 **`linkfox-temu-price-eu`**（`site=eu`）。\n\n## 已接入（5）\n\n| sub_menu_code | type | 脚本 | 参数文档 |\n|---------------|------|------|----------|\n| — | `temu.local.goods.baseprice.recommend` | `global_price_baseprice_recommend.py` | [apis/temu-local-goods-baseprice-recommend.md](./apis/temu-local-goods-baseprice-recommend.md) |\n| — | `temu.local.goods.recommendedprice.query` | `global_price_recommendedprice_query.py` | [apis/temu-local-goods-recommendedprice-query.md](./apis/temu-local-goods-recommendedprice-query.md) |\n| — | `bg.local.goods.priceorder.query` | `global_price_priceorder_query.py` | [apis/bg-local-goods-priceorder-query.md](./apis/bg-local-goods-priceorder-query.md) |\n| — | `bg.local.goods.priceorder.change.sku.price` | `global_price_priceorder_change_sku_price.py` | [apis/bg-local-goods-priceorder-change-sku-price.md](./apis/bg-local-goods-priceorder-change-sku-price.md) |\n| `a9bd154c38384f2c99e57c2ebe271299` | `bg.local.goods.sku.list.price.query` | `global_price_sku_list_price_query.py` | [apis/bg-local-goods-sku-list-price-query.md](./apis/bg-local-goods-sku-list-price-query.md) |\n\n## 官方文档 URL\n\n| type | URL |\n|------|-----|\n| `temu.local.goods.baseprice.recommend` | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a |\n| `temu.local.goods.recommendedprice.query` | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a |\n| `bg.local.goods.priceorder.query` | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a |\n| `bg.local.goods.priceorder.change.sku.price` | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a |\n| `bg.local.goods.sku.list.price.query` | https://partner-global.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=a9bd154c38384f2c99e57c2ebe271299 |\n\n## 上游 OpenAPI（Global）\n\n`POST` https://openapi-b-global.temu.com/openapi/router（经 LinkFox 网关 `site=global` 转发）\n\n## 与 add-product / manage-product 区分\n\n| skill | type | 说明 |\n|-------|------|------|\n| **本 skill** | `bg.local.goods.priceorder.*` / `temu.local.goods.*price*` / `bg.local.goods.sku.list.price.query` | 定价单、推荐价、SKU 供货价、批量改价 |\n| `linkfox-temu-manage-product-global` | 商品管理域 | `site=global` |\n| `linkfox-temu-add-product-us` | `temu.goods.price.list.get` | 发品侧（Global 调用时 `site=global`） |\n\nArchive v1.0.3: 32 files, 41649 bytes\n\nFiles: references/access-token.md (4458b), references/api.md (4037b), references/apis/bg-local-goods-priceorder-change-sku-price.md (5021b), references/apis/bg-local-goods-priceorder-query.md (8165b), references/apis/bg-local-goods-sku-list-price-query.md (5299b), references/apis/README.md (1148b), references/apis/temu-local-goods-baseprice-recommend.md (7119b), references/apis/temu-local-goods-recommendedprice-query.md (4256b), references/authorization-flow.md (1186b), references/partner-global-catalog.md (3051b), scripts/_global_price_script.py (524b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12427b), scripts/_temu_global_common.py (3122b), scripts/_temu_token_store.py (4273b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/global_price_baseprice_recommend.py (289b), scripts/global_price_priceorder_change_sku_price.py (319b), scripts/global_price_priceorder_query.py (281b), scripts/global_price_recommendedprice_query.py (288b), scripts/global_price_sku_list_price_query.py (284b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_global_file_download.py (711b), scripts/temu_global_proxy.py (939b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), skill-card.md (2758b), SKILL.md (7307b), _meta.json (144b)\n\nFile v1.0.3:SKILL.md\n\n---\r\nname: linkfox-temu-price-global\r\ndescription: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。\r\n---\r\n\r\n# Temu 全球站价格 API（linkfox-temu-price-global）\r\n\r\n本 skill（`linkfox-temu-price-global`）覆盖 **全球区（`site=global`，非美国/欧洲）** 的 **Product** 菜单下与**价格/供货价**相关的 `bg.local.*` / `temu.local.*` 接口（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`，具体 `sub_menu_code` 以 Partner 文档为准）。\r\n\r\n> 当前已接入 **5** 个接口；其余价格接口将按 Partner 文档逐条补充到 `references/apis/` 与 `global_price_*.py`。\r\n\r\n**网关（本 skill 内置）**：\r\n\r\n| 能力 | 方法 | 路径 |\r\n|------|------|------|\r\n| 价格 OpenAPI（`global_price_*`、`temu_global_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\r\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\r\n\r\n## 相关 skill\r\n\r\n| 场景 | skill |\r\n|------|--------|\r\n| 商品列表/详情/编辑/库存/上下架 | `linkfox-temu-manage-product-global` |\r\n| 美国站价格 | `linkfox-temu-price-us` |\r\n| 欧洲站价格 | `linkfox-temu-price-eu` |\r\n| 订单查询、发货、物流 | `linkfox-temu-order-global` |\r\n| 取消订单（买家+卖家） | `linkfox-temu-cancel-order-us` |\r\n\r\n| 履约/发货（含自发货） | `linkfox-temu-fulfillment-us` |\r\n| 发品、类目、V2 add | `linkfox-temu-add-product-us` |\r\n| 半托管 `temu.goods.price.list.get`（`productSkuIds`） | `linkfox-temu-add-product-us` → `us_goods_price_list.py` |\r\n| 网关与 Temu token | 本 skill `scripts/` |\r\n\r\n## 调用方式\r\n\r\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\r\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\r\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\r\n\r\n**输出策略（脚本默认行为）**：\r\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\r\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\r\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\r\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\r\n\r\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\r\n\r\n## 默认参数\r\n\r\n| 字段 | 默认 | 说明 |\r\n|------|------|------|\r\n| site | `global` | Partner Global（非 US/EU） |\r\n| managementType | `semi-managed` | 半托管 |\r\n| tokenPurpose | `product-inventory` | 酷鸟卖家助手 token |\r\n\r\n## 鉴权\r\n\r\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\r\n2. **Temu**：`accessToken` 或 `storeKey`\r\n\r\n## Scripts（按 type）\r\n\r\n| 脚本 | type | 状态 |\r\n|------|------|------|\r\n| `global_price_baseprice_recommend.py` | `temu.local.goods.baseprice.recommend` | 已接入 |\r\n| `global_price_recommendedprice_query.py` | `temu.local.goods.recommendedprice.query` | 已接入 |\r\n| `global_price_priceorder_query.py` | `bg.local.goods.priceorder.query` | 已接入 |\r\n| `global_price_priceorder_change_sku_price.py` | `bg.local.goods.priceorder.change.sku.price` | 已接入 |\r\n| `global_price_sku_list_price_query.py` | `bg.local.goods.sku.list.price.query` | 已接入 |\r\n| `temu_global_proxy.py` | 任意 `type` | 通用 |\r\n| `temu_global_file_download.py` | 加签文件下载 | 通用 |\r\n\r\n> 新增接口后在此表与 [partner-global-catalog.md](./references/partner-global-catalog.md) 同步登记。\r\n\r\n## 示例\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\n\r\n# 推荐基础价/供货价估算（须 catId + supplierPriceEstimateSkuQryList）\r\npython scripts/global_price_baseprice_recommend.py '{\r\n  \"accessToken\": \"TOKEN\",\r\n  \"site\": \"global\",\r\n  \"tokenPurpose\": \"product-inventory\",\r\n  \"request\": {\r\n    \"supplierPriceEstimateQry\": {\r\n      \"goodsBasicInfo\": { \"catId\": 12345 },\r\n      \"supplierPriceEstimateSkuQryList\": [\r\n        {\r\n          \"specIdList\": [9001],\r\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\r\n        }\r\n      ]\r\n    }\r\n  }\r\n}'\r\n\r\n# 推荐供货价查询（须 recommendedPriceType + goodsIdList，1～100 个 goodsId）\r\npython scripts/global_price_recommendedprice_query.py '{\r\n  \"accessToken\": \"TOKEN\",\r\n  \"site\": \"global\",\r\n  \"tokenPurpose\": \"product-inventory\",\r\n  \"request\": {\r\n    \"recommendedPriceType\": 10,\r\n    \"goodsIdList\": [123456789]\r\n  }\r\n}'\r\n\r\n# 定价单列表查询（白名单；分页 page/size，可选筛选）\r\npython scripts/global_price_priceorder_query.py '{\r\n  \"accessToken\": \"TOKEN\",\r\n  \"site\": \"global\",\r\n  \"tokenPurpose\": \"product-inventory\",\r\n  \"request\": {\r\n    \"page\": 1,\r\n    \"size\": 20,\r\n    \"priceOrderType\": 1,\r\n    \"orderBy\": \"order_create_time\",\r\n    \"orderByType\": 0\r\n  }\r\n}'\r\n\r\n# 批量修改 SKU 基础价（白名单；须 goodsId + changeSkuPriceDTOList）\r\npython scripts/global_price_priceorder_change_sku_price.py '{\r\n  \"accessToken\": \"TOKEN\",\r\n  \"site\": \"global\",\r\n  \"tokenPurpose\": \"product-inventory\",\r\n  \"request\": {\r\n    \"goodsId\": 123456,\r\n    \"changeSkuPriceDTOList\": [\r\n      {\r\n        \"skuChangePriceBaseDTOList\": [\r\n          {\r\n            \"skuId\": 58224724203874,\r\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  }\r\n}'\r\n\r\n# SKU 供货价列表（goodsId + skuIdList）\r\npython scripts/global_price_sku_list_price_query.py '{\r\n  \"accessToken\": \"TOKEN\",\r\n  \"site\": \"global\",\r\n  \"tokenPurpose\": \"product-inventory\",\r\n  \"request\": {\r\n    \"querySupplierPriceBaseList\": [\r\n      { \"goodsId\": 123456789, \"skuIdList\": [58224724203874] }\r\n    ]\r\n  }\r\n}'\r\n```\r\n\r\n**Feedback：** `skillName`：`linkfox-temu-price-global`\r\n\r\n## 网关与授权脚本\r\n\r\n| 脚本 | 说明 |\r\n|------|------|\r\n| `check_linkfox_token.py` | 校验 LinkFox 用户 Token |\r\n| `temu_token_guide.py` | Temu accessToken 后台授权步骤 |\r\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\r\n| `list_temu_access_tokens.py` | 列出已保存 token |\r\n| `get_temu_access_token.py` | 读取已保存 token |\r\n| `temu_proxy.py` | 通用网关转发（多 site） |\r\n| `temu_file_download.py` | 加签文件下载（多 site） |\r\n\r\n授权说明：[references/access-token.md](./references/access-token.md)\n\nFile v1.0.3:references/apis/README.md\n\n# Price — 接口文档索引\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-global-catalog.md](../partner-global-catalog.md)。\n\n## SKU 供货价查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.sku.list.price.query` | [bg-local-goods-sku-list-price-query.md](./bg-local-goods-sku-list-price-query.md) |\n\n## 定价单查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.query` | [bg-local-goods-priceorder-query.md](./bg-local-goods-priceorder-query.md) |\n\n## 推荐 / 估算（2）\n\n| type | 文档 |\n|------|------|\n| `temu.local.goods.baseprice.recommend` | [temu-local-goods-baseprice-recommend.md](./temu-local-goods-baseprice-recommend.md) |\n| `temu.local.goods.recommendedprice.query` | [temu-local-goods-recommendedprice-query.md](./temu-local-goods-recommendedprice-query.md) |\n\n## 编辑 / 改价（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.change.sku.price` | [bg-local-goods-priceorder-change-sku-price.md](./bg-local-goods-priceorder-change-sku-price.md) |\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-price-global\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1783338359141\n}\n\nFile v1.0.3:references/access-token.md\n\n# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=global` / `global` / `eu`，`managementType=semi-managed`\n\n## 3. 全托管店铺\n\n1. 登录 Temu 平台\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → **「酷鸟卖家助手」** → 全选 → 复制 token\n4. 调用 API：`managementType=full-managed`，`site` 通常 `cn` 或 `partner`\n\n## 4. 本土店铺（美区、欧区主体）\n\n1. 登录 Temu\n2. **Apps And Services** → **Manage Your Apps**\n3. **Authorize a new app** → 搜索 **「Cyber-ERP」**\n4. 一般权限与敏感权限全选 → 确认 → 复制 token\n\n## 站点与 OpenAPI 网关\n\n| site | 说明 | Temu 网关 |\n|------|------|-----------|\n| cn | 中国站 | openapi.kuajingmaihuo.com |\n| partner | Partner 网关 | openapi-b-partner.temu.com |\n| us | 全球站 | openapi-b-global.temu.com |\n| global | 全球区 | openapi-b-global.temu.com |\n| eu | 欧洲站 | openapi-b-eu.temu.com |\n\n## 本地保存 Token（推荐）\n\n默认存储：`~/.linkfox/temu-access-tokens.json`（可用 `TEMU_TOKEN_STORE_PATH` 覆盖）。\n\n```bash\n# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'\n```\n\n## 注意事项\n\n1. **子账号**：可能无法进入服务市场，需主账号授权。\n2. **多站点**：全球站、英国站等需分别登录对应后台获取 Token。\n3. **有效期**：Token 会过期，过期后重新在后台复制并 `save_temu_access_token.py`。\n4. **IP 白名单**：需联系紫鸟开放平台配置调用 IP。\n5. **参数小写**：`site`、`managementType` 必须小写。\n\n## 脚本一览\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_token_guide.py` | 按店铺类型/用途输出授权步骤 |\n| `save_temu_access_token.py` | 保存 accessToken 到本地 |\n| `list_temu_access_tokens.py` | 列出已保存 token（默认脱敏）|\n| `get_temu_access_token.py` | 读取指定 store 的 token |\n\nFile v1.0.3:references/api.md\n\n# linkfox-temu-price-global — API 参考\r\n\r\nTemu **全球站商品价格管理**（Partner Global **Product** 下价格/供货价相关接口），经本 skill `temu_global_proxy`（`POST /temu/proxy`） 转发。Temu 的 `type` 写在 Body，**不是** URL 路径。\r\n\r\n> 网关与鉴权：本 skill `scripts/`（`LINKFOXAGENT_API_KEY`、`accessToken` / `storeKey`）。授权见 `references/access-token.md`。\r\n\r\n---\r\n\r\n## 调用规范\r\n\r\n| 项 | 说明 |\r\n|----|------|\r\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 价格 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_global_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token` |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=global`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-global.temu.com/openapi/router`（网关按 `site` 解析） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `global`（本 skill 默认） |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\r\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory` |\r\n| type | string | 是 | Temu 接口名，如 `bg.local.goods.priceorder.query` |\r\n| params | object | 否 | 业务参数；多数 Manage 接口业务块在 **`params.request`** |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\r\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\r\n\r\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/global_price_priceorder_query.py '{\"accessToken\":\"TOKEN\",\"request\":{\"page\":1,\"size\":20,\"priceOrderType\":1}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-global-catalog.md](./partner-global-catalog.md)。\r\n\r\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)。\r\n\r\n---\r\n\r\n## 典型价格管理流程\r\n\r\n```text\r\n1. linkfox-temu-manage-product-global → list/detail / spec.info.get           → 拿 goodsId、catId、specIdList\r\n2. bg.local.goods.priceorder.query（本 skill，白名单）                     → 分页查定价单/报价列表\r\n3. temu.local.goods.recommendedprice.query（本 skill）                     → 按 goodsIdList 查平台推荐供货价\r\n4. temu.local.goods.baseprice.recommend（本 skill）                        → 发品/改价前推荐基础价估算\r\n5. bg.local.goods.priceorder.change.sku.price（本 skill，白名单）          → 批量改 SKU 基础价\r\n6. bg.local.goods.priceorder.query                                         → 改价后核对 priceAuditList / supplierPrice\r\n```\r\n\r\n发品侧半托管供货价列表（`temu.goods.price.list.get`，入参 `productSkuIds`）见 **`linkfox-temu-add-product-us`**，与本 skill 的 `bg.local.*` 本地仓价格接口**不要混用**。\r\n\r\n---\r\n\r\n## 网关错误码\r\n\r\n| code | 说明 | 处理 |\r\n|------|------|------|\r\n| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 `LINKFOXAGENT_API_KEY` |\r\n| 1003 | 转发失败 | 检查 Temu token、白名单、网络 |\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n- **POST** `https://skill-api.linkfox.com/\n\nArchive v1.0.2: 31 files, 40231 bytes\n\nFiles: references/access-token.md (4458b), references/api.md (4037b), references/apis/bg-local-goods-priceorder-change-sku-price.md (5021b), references/apis/bg-local-goods-priceorder-query.md (8165b), references/apis/bg-local-goods-sku-list-price-query.md (5299b), references/apis/README.md (1148b), references/apis/temu-local-goods-baseprice-recommend.md (7119b), references/apis/temu-local-goods-recommendedprice-query.md (4256b), references/authorization-flow.md (1186b), references/partner-global-catalog.md (3051b), scripts/_global_price_script.py (524b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12427b), scripts/_temu_global_common.py (3122b), scripts/_temu_token_store.py (4273b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/global_price_baseprice_recommend.py (289b), scripts/global_price_priceorder_change_sku_price.py (319b), scripts/global_price_priceorder_query.py (281b), scripts/global_price_recommendedprice_query.py (288b), scripts/global_price_sku_list_price_query.py (284b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_global_file_download.py (711b), scripts/temu_global_proxy.py (939b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), SKILL.md (7307b), _meta.json (144b)\n\nArchive v1.0.0: 32 files, 38807 bytes\n\nFiles: references/access-token.md (4458b), references/api.md (3932b), references/apis/bg-local-goods-priceorder-change-sku-price.md (5021b), references/apis/bg-local-goods-priceorder-query.md (8165b), references/apis/bg-local-goods-sku-list-price-query.md (5299b), references/apis/README.md (1148b), references/apis/temu-local-goods-baseprice-recommend.md (7119b), references/apis/temu-local-goods-recommendedprice-query.md (4256b), references/authorization-flow.md (1186b), references/partner-global-catalog.md (3051b), scripts/_global_price_script.py (524b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (5593b), scripts/_temu_global_common.py (3006b), scripts/_temu_token_store.py (4237b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/global_price_baseprice_recommend.py (289b), scripts/global_price_priceorder_change_sku_price.py (319b), scripts/global_price_priceorder_query.py (281b), scripts/global_price_recommendedprice_query.py (288b), scripts/global_price_sku_list_price_query.py (284b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1595b), scripts/temu_global_file_download.py (670b), scripts/temu_global_proxy.py (891b), scripts/temu_proxy.py (2027b), scripts/temu_token_guide.py (1594b), skill-card.md (2993b), SKILL.md (6219b), _meta.json (144b)","readmeExcerpt":"Skill: Temu全球站-定价 Owner: linkfox-ai Summary: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。 Tags: latest:1.0.6 Version history: v1.0.6 | 2026-08-14T15:17:45.798Z | us","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 推荐基础价/供货价估算（须 catId + supplierPriceEstimateSkuQryList）\npython scripts/global_price_baseprice_recommend.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"supplierPriceEstimateQry\": {\n      \"goodsBasicInfo\": { \"catId\": 12345 },\n      \"supplierPriceEstimateSkuQryList\": [\n        {\n          \"specIdList\": [9001],\n          \"externPlatformPriceInfo\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n        }\n      ]\n    }\n  }\n}'\n\n# 推荐供货价查询（须 recommendedPriceType + goodsIdList，1～100 个 goodsId）\npython scripts/global_price_recommendedprice_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"recommendedPriceType\": 10,\n    \"goodsIdList\": [123456789]\n  }\n}'\n\n# 定价单列表查询（白名单；分页 page/size，可选筛选）\npython scripts/global_price_priceorder_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"page\": 1,\n    \"size\": 20,\n    \"priceOrderType\": 1,\n    \"orderBy\": \"order_create_time\",\n    \"orderByType\": 0\n  }\n}'\n\n# 批量修改 SKU 基础价（白名单；须 goodsId + changeSkuPriceDTOList）\npython scripts/global_price_priceorder_change_sku_price.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": { \"amount\": \"15.99\", \"currency\": \"USD\" }\n          }\n        ]\n      }\n    ]\n  }\n}'\n\n# SKU 供货价列表（goodsId + skuIdList）\npython scripts/global_price_sku_list_price_query.py '{\n  \"accessToken\": \"TOKEN\",\n  \"site\": \"global\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"request\": {\n    \"querySupplierPriceBaseList\": [\n      { \"goodsId\": 123456789, \"skuIdList\": [58224724203874] }\n    ]\n  }\n}'"},{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py"},{"language":"bash","snippet":"# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'"},{"language":"text","snippet":"params\n└── request (OBJECT, 选填)\n    ├── goodsId (LONG, 必填)\n    ├── changeSkuPriceDTOList[] (OBJECT[], 必填)\n    │   ├── reason (STRING, 否)\n    │   └── skuChangePriceBaseDTOList[] (OBJECT[], 必填)\n    │       ├── skuId (LONG, 必填)\n    │       └── newSupplierPrice (OBJECT, 必填)\n    │           ├── amount (STRING, 否)\n    │           └── currency (STRING, 否)\n    └── rejectSkuPricing (BOOLEAN, 否)"},{"language":"json","snippet":"{\n  \"accessToken\": \"TOKEN\",\n  \"request\": {\n    \"goodsId\": 123456,\n    \"rejectSkuPricing\": true,\n    \"changeSkuPriceDTOList\": [\n      {\n        \"reason\": \"Cost adjustment\",\n        \"skuChangePriceBaseDTOList\": [\n          {\n            \"skuId\": 58224724203874,\n            \"newSupplierPrice\": {\n              \"amount\": \"18.99\",\n              \"currency\": \"USD\"\n            }\n          },\n          {\n            \"skuId\": 58224724203875,\n            \"newSupplierPrice\": {\n              \"amount\": \"19.99\",\n              \"currency\": \"USD\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}"},{"language":"text","snippet":"response\n├── success (BOOLEAN)\n├── errorCode (INTEGER)\n├── errorMsg (STRING)\n└── result (OBJECT)\n    ├── successSkuList[] (LONG)\n    ├── failedSkuList[] (LONG)\n    ├── failedSkuReasonMap (MAP)\n    │   ├── $key (STRING)   → SKU ID\n    │   └── $value (STRING) → Fail reason\n    └── successPriceOrderList[] (OBJECT[])\n        ├── priceOrderSn (STRING)\n        └── skuIdList[] (LONG)"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: linkfox-temu-price-global\ndescription: Temu 全球站（非 US/EU）价格/供货价 API，经 LinkFox 网关转发 5 个接口（定价单、推荐价、SKU 供货价列表、批量改价等），默认 site=global。当用户提到 Temu Global 价格、全球站定价单、priceorder query、sku list price、查 SKU 供货价、改供货价、recommendedprice、baseprice recommend 时触发。美国站用 linkfox-temu-price-us；欧洲站用 linkfox-temu-price-eu；商品管理用 linkfox-temu-manage-product-global。\n---\n\n# Temu 全球站价格 API（linkfox-temu-price-global）\n\n本 skill（`linkfox-temu-price-global`）覆盖 **全球区（`site=global`，非美国/欧洲）** 的 **Product** 菜单下与**价格/供货价**相关的 `bg.local.*` / `temu.local.*` 接口（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`，具体 `sub_menu_code` 以 Partner 文档为准）。\n\n> 当前已接入 **5** 个接口；其余价格接口将按 Partner 文档逐条补充到 `references/apis/` 与 `global_price_*.py`。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 价格 OpenAPI（`global_price_*`、`temu_global_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 商品列表/详情/编辑/库存/上下架 | `linkfox-temu-manage-product-global` |\n| 美国站价格 | `linkfox-temu-price-us` |\n| 欧洲站价格 | `linkfox-temu-price-eu` |\n| 订单查询、发货、物流 | `linkfox-temu-order-global` |\n| 取消订单（买家+卖家） | `linkfox-temu-cancel-order-us` |\n\n| 履约/发货（含自发货） | `linkfox-temu-fulfillment-us` |\n| 发品、类目、V2 add | `linkfox-temu-add-product-us` |\n| 半托管 `temu.goods.price.list.get`（`productSkuIds`） | `linkfox-temu-add-product-us` → `us_goods_price_list.py` |\n| 网关与 Temu token | 本 skill `scripts/` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 默认参数\n\n| 字段 | 默认 | 说明 |\n|------|------|------|\n| site | `global` | Partner Global（非 US/EU） |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts（按 type）\n\n| 脚本 | type | 状态 |\n|------|------|------|\n| `global_price_baseprice_recommend.py` | `temu.local.goods.baseprice.recommend` | 已接入 |\n| `global_price_recommendedprice_query.py` | `temu.local.goods.recommendedprice.query` | 已接入 |\n| `global_p"},{"path":"references/apis/README.md","content":"# Price — 接口文档索引\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-global-catalog.md](../partner-global-catalog.md)。\n\n## SKU 供货价查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.sku.list.price.query` | [bg-local-goods-sku-list-price-query.md](./bg-local-goods-sku-list-price-query.md) |\n\n## 定价单查询（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.query` | [bg-local-goods-priceorder-query.md](./bg-local-goods-priceorder-query.md) |\n\n## 推荐 / 估算（2）\n\n| type | 文档 |\n|------|------|\n| `temu.local.goods.baseprice.recommend` | [temu-local-goods-baseprice-recommend.md](./temu-local-goods-baseprice-recommend.md) |\n| `temu.local.goods.recommendedprice.query` | [temu-local-goods-recommendedprice-query.md](./temu-local-goods-recommendedprice-query.md) |\n\n## 编辑 / 改价（1）\n\n| type | 文档 |\n|------|------|\n| `bg.local.goods.priceorder.change.sku.price` | [bg-local-goods-priceorder-change-sku-price.md](./bg-local-goods-priceorder-change-sku-price.md) |"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-price-global\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786720665798\n}"},{"path":"references/access-token.md","content":"# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=global` / `global` / `eu`，`managementType=semi-managed`\n\n## 3. 全托管店铺\n\n1. 登录 Temu 平台\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → **「酷鸟卖家助手」** → 全选 → 复制 token\n4. 调用 API：`managementType=full-managed`，`site` 通常 `cn` 或 `partner`\n\n## 4. 本土店铺（美区、欧区主体）\n\n1. 登录 Temu\n2. **Apps And Services** → **Manage Your Apps**\n3. **Authorize a new app** → 搜索 **「Cyber-ERP」**\n4. 一般权限与敏感权限全选 → 确认 → 复制 token\n\n## 站点与 OpenAPI 网关\n\n| site | 说明 | Temu 网关 |\n|------|------|-----------|\n| cn | 中国站 | openapi.kuajingmaihuo.com |\n| partner | Partner 网关 | openapi-b-partner.temu.com |\n| us | 全球站 | openapi-b-global.temu.com |\n| global | 全球区 | openapi-b-global.temu.com |\n| eu | 欧洲站 | openapi-b-eu.temu.com |\n\n## 本地保存 Token（推荐）\n\n默认存储：`~/.linkfox/temu-access-tokens.json`（可用 `TEMU_TOKEN_STORE_PATH` 覆盖）。\n\n```bash\n# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'\n```\n\n## 注意事项\n\n1. **子账号**：可能无法进入服务市场，需主账号授权。\n2. **多站点**：全球站、英国站等需分别登录对应后台获取"},{"path":"references/api.md","content":"# linkfox-temu-price-global — API 参考\r\n\r\nTemu **全球站商品价格管理**（Partner Global **Product** 下价格/供货价相关接口），经本 skill `temu_global_proxy`（`POST /temu/proxy`） 转发。Temu 的 `type` 写在 Body，**不是** URL 路径。\r\n\r\n> 网关与鉴权：本 skill `scripts/`（`LINKFOXAGENT_API_KEY`、`accessToken` / `storeKey`）。授权见 `references/access-token.md`。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\r\n\r\n---\r\n\r\n## 调用规范\r\n\r\n| 项 | 说明 |\r\n|----|------|\r\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 价格 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_global_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=global`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-global.temu.com/openapi/router`（网关按 `site` 解析） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `global`（本 skill 默认） |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\r\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory` |\r\n| type | string | 是 | Temu 接口名，如 `bg.local.goods.priceorder.query` |\r\n| params | object | 否 | 业务参数；多数 Manage 接口业务块在 **`params.request`** |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\r\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\r\n\r\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/global_price_priceorder_query.py '{\"accessToken\":\"TOKEN\",\"request\":{\"page\":1,\"size\":20,\"priceOrderType\":1}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-global-catalog.md](./partner-global-catalog.md)。\r\n\r\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)。\r\n\r\n---\r\n\r\n## 典型价格管理流程\r\n\r\n```text\r\n1. linkfox-temu-manage-product-global → list/detail / spec.info.get           → 拿 goodsId、catId、specIdList\r\n2. bg.local.goods.priceorder.query（本 skill，白名单）                     → 分页查定价单/报价列表\r\n3. temu.local.goods.recommendedprice.query（本 skill）                     → 按 goodsIdList 查平台推荐供货价\r\n4. temu.local.goods.baseprice.recommend（本 skill）                        → 发品/改价前推荐基础价估算\r\n5. bg.local.goods.priceorder.change.sku.price（本 skill，白名单）          → 批量改 SKU 基础价\r\n6. bg.local.goods.priceorder.query                                         → 改价后核对 priceAuditList / supplierPrice\r\n```\r\n\r\n发品侧半托管供货价列表（`temu.goods.price.list.get`，入参 `productSkuIds`）见 **`linkfox-temu-add-product-us`**，与本 skill 的 `bg.local.*` 本地仓价格接口**不要混用**。\r\n\r\n---\r\n\r\n## 网关错误码\r\n\r\n| "}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1083,"uniquenessScore":36,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T16:03:56.376Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T16:03:56.376Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T21:54:28.569Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}