{"id":"655fb888-8e0b-444f-9ba5-554b05bf47cb","entityType":"agent","slug":"clawhub-linkfox-ai-linkfox-temu-add-product-us","name":"Temu美国站-上架商品","canonicalUrl":"https://www.xpersona.co/agent/clawhub-linkfox-ai-linkfox-temu-add-product-us","canonicalPath":"/agent/clawhub-linkfox-ai-linkfox-temu-add-product-us","generatedAt":"2026-10-10T21:55:54.406Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:31:36.837Z","emptyReason":null},"description":"Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。","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-add-product-us","sourceUrl":"https://clawhub.ai/linkfox-ai/linkfox-temu-add-product-us","homepage":"https://clawhub.ai/linkfox-ai/skills/linkfox-temu-add-product-us","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/linkfox-ai/linkfox-temu-add-product-us","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/linkfox-ai/skills/linkfox-temu-add-product-us","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:31:36.837Z","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:31:36.837Z","emptyReason":null},"stars":null,"forks":null,"downloads":1338,"packageName":null,"latestVersion":"1.0.6","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:31:36.837Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T16:31:36.837Z","lastCrawledAt":"2026-10-10T16:31:36.837Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T16:31:36.837Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.6","createdAt":"2026-08-14T15:11:10.857Z","changelog":"Update from 1.0.5 to 1.0.6","fileCount":47,"zipByteSize":57019},{"version":"1.0.5","createdAt":"2026-08-07T11:11:20.061Z","changelog":"Update from 1.0.4 to 1.0.5","fileCount":47,"zipByteSize":57003},{"version":"1.0.4","createdAt":"2026-07-13T12:28:34.749Z","changelog":"Update from 1.0.3 to 1.0.4","fileCount":45,"zipByteSize":47898},{"version":"1.0.3","createdAt":"2026-07-06T11:37:06.860Z","changelog":"Update from 1.0.2 to 1.0.3","fileCount":45,"zipByteSize":47389},{"version":"1.0.2","createdAt":"2026-07-03T09:36:51.727Z","changelog":"Update from 1.0.0 to 1.0.2","fileCount":44,"zipByteSize":45822},{"version":"1.0.0","createdAt":"2026-05-27T05:23:56.710Z","changelog":"Initial release","fileCount":45,"zipByteSize":44570}]},"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-add-product-us","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-temu-add-product-us` 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-add-product-us 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-add-product-us/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/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:55:54.402Z"}},"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-add-product-us/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-add-product-us/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:31:36.837Z","emptyReason":null},"readme":"Skill: Temu美国站-上架商品\n\nOwner: linkfox-ai\n\nSummary: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。\n\nTags: latest:1.0.6\n\nVersion history:\n\nv1.0.6 | 2026-08-14T15:11:10.857Z | user\n\nUpdate from 1.0.5 to 1.0.6\n\nv1.0.5 | 2026-08-07T11:11:20.061Z | user\n\nUpdate from 1.0.4 to 1.0.5\n\nv1.0.4 | 2026-07-13T12:28:34.749Z | user\n\nUpdate from 1.0.3 to 1.0.4\n\nv1.0.3 | 2026-07-06T11:37:06.860Z | user\n\nUpdate from 1.0.2 to 1.0.3\n\nv1.0.2 | 2026-07-03T09:36:51.727Z | user\n\nUpdate from 1.0.0 to 1.0.2\n\nv1.0.0 | 2026-05-27T05:23:56.710Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.6: 47 files, 57019 bytes\n\nFiles: references/access-token.md (4527b), references/api.md (5567b), references/authorization-flow.md (1186b), references/category-spec-apis.md (9759b), references/onboarding.md (2046b), references/partner-us-catalog.md (4992b), references/product-edit-apis.md (4208b), references/product-publish-apis.md (9358b), references/product-query-apis.md (2784b), references/stock-price-apis.md (3187b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12430b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3210b), scripts/_us_product_script.py (444b), scripts/check_linkfox_token.py (1798b), scripts/get_temu_access_token.py (1843b), 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_proxy.py (2124b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (719b), scripts/temu_us_proxy.py (899b), scripts/us_goods_add_legacy.py (244b), scripts/us_goods_add.py (218b), scripts/us_goods_attrs_bg.py (217b), scripts/us_goods_attrs.py (227b), scripts/us_goods_brand.py (202b), scripts/us_goods_category_mapping.py (297b), scripts/us_goods_cats.py (191b), scripts/us_goods_detail.py (198b), scripts/us_goods_edit_property.py (217b), scripts/us_goods_edit_sensitive.py (233b), scripts/us_goods_image_upload.py (251b), scripts/us_goods_list.py (198b), scripts/us_goods_migrate.py (220b), scripts/us_goods_parent_spec.py (218b), scripts/us_goods_price_list.py (220b), scripts/us_goods_stock_get.py (233b), scripts/us_goods_stock_update.py (242b), scripts/us_goods_update.py (190b), scripts/us_goods_variation.py (248b), skill-card.md (3364b), SKILL.md (6053b), _meta.json (146b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: linkfox-temu-add-product-us\ndescription: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。\n---\n\n# Temu 美国站发品 API（Partner US）\n\n本 skill（`linkfox-temu-add-product-us`）覆盖 Partner Platform for US **Product** 菜单（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）下 **19 个商品接口**：**4 个 V2 推荐发品** + **15 个标准商品 API**（查询、编辑、类目、库存、价格等）。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 网关路径 |\n|------|------|----------|\n| 商品 OpenAPI（全部 `us_goods_*`、`temu_us_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载（`temu_us_file_download`） | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n商品 `type` 写在 Body，**不是** URL 路径。\n\n> **不是订单 skill**：订单、发货、物流见 `linkfox-temu-order-us` 或其它履约类 skill。\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/linkfox-temu-add-product-us-<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 | `us` | Partner US |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose（storeKey） | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts\n\n### V2 推荐发品\n\n| 脚本 | type |\n|------|------|\n| `us_goods_attrs.py` | `temu.local.product.attributes.get` |\n| `us_goods_variation.py` | `temu.local.product.variation.get` |\n| `us_goods_image_upload.py` | `temu.local.goods.image.v2.upload` |\n| `us_goods_add.py` | `temu.local.goods.v2.add` |\n\n### 查询 / 编辑 / 类目 / 库存\n\n| 脚本 | type |\n|------|------|\n| `us_goods_list.py` | `temu.goods.list.get` |\n| `us_goods_detail.py` | `temu.goods.detail.get` |\n| `us_goods_update.py` | `temu.goods.update` |\n| `us_goods_edit_property.py` | `temu.goods.edit.property` |\n| `us_goods_edit_sensitive.py` | `temu.goods.edit.sensitive.attr` |\n| `us_goods_migrate.py` | `temu.goods.migrate` |\n| `us_goods_cats.py` | `bg.goods.cats.get` |\n| `us_goods_attrs_bg.py` | `bg.goods.attrs.get` |\n| `us_goods_parent_spec.py` | `bg.glo.goods.parentspec.get` |\n| `us_goods_brand.py` | `bg.glo.goods.brand.get` |\n| `us_goods_category_mapping.py` | `bg.goods.category.mapping` |\n| `us_goods_stock_get.py` | `bg.btg.goods.stock.quantity.get` |\n| `us_goods_stock_update.py` | `bg.btg.goods.stock.quantity.update` |\n| `us_goods_price_list.py` | `temu.goods.price.list.get` |\n| `us_goods_add_legacy.py` | `temu.goods.add` |\n| `temu_us_proxy.py` | 任意 `type` |\n| `temu_us_file_download.py` | 加签文件下载 |\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 商品列表\npython scripts/us_goods_list.py '{\"accessToken\":\"TOKEN\",\"page\":1,\"pageSize\":20}'\n\n# 类目映射\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\":\"TOKEN\",\n  \"goodsName\":\"测试商品\",\n  \"goodsNameEn\":\"Test Product\"\n}'\n\n# V2 发品流程\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\npython scripts/us_goods_image_upload.py '{\"accessToken\":\"TOKEN\",\"params\":{\"image\":\"<BASE64>\"}}'\npython scripts/us_goods_add.py '{\"accessToken\":\"TOKEN\",\"params\":{\"...\"}}'\n```\n\n**Feedback：** `skillName`：`linkfox-temu-add-product-us`\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:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-add-product-us\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786720270857\n}\n\nFile v1.0.6: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）（如未配置 按 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=us` / `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-us.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-add-product-us — API 参考\r\n\r\nTemu **美国站商品发布**（Partner US **Product > Add Products > Recommended V2 Interfaces**），经本 skill `temu_us_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}`（可用 `LINKFOX_TOOL_GATEWAY` / `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 商品 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或环境变量 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token` / `linkfoxToken`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（由网关按 `site` 解析，调用方勿直连） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `us`（本 skill 默认）；半托跨境发品偶用 `cn` / `partner` |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌，最长约 8192 |\r\n| storeKey | string | 与 accessToken 二选一 | 本地 `~/.linkfox/temu-access-tokens.json` 中的店铺键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory`（酷鸟卖家助手） |\r\n| type | string | 是 | Temu 接口名，如 `temu.local.goods.v2.add` |\r\n| params | object | 否 | 业务参数，结构见下文各接口文档 |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON **字符串**；脚本会尽量解析为 `temuBody` |\r\n| code | integer | 网关错误码（非 Temu 业务码），如 `1002` 参数/用户 Token 无效，`1003` 转发失败 |\r\n\r\n解析顺序：**先看网关 `code`/`message`** → 再 `JSON.parse(body)` → 读 Temu 层 `success`、`errorCode`、`errorMsg`、`result`。\r\n\r\n### Temu 业务响应信封（`body` 解析后）\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| success | boolean | 是否成功 |\r\n| errorCode | integer | 业务错误码；`1000000` 或 `0` 常表示成功（以实网为准） |\r\n| errorMsg | string | 错误说明，成功时多为空 |\r\n| requestId | string | 请求追踪 ID |\r\n| result | object | 业务数据，结构因 `type` 而异 |\r\n\r\n### curl 示例（经网关）\r\n\r\n```bash\r\ncurl -X POST https://tool-gateway.linkfox.com/temu/proxy \\\r\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Token: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\r\n    \"site\": \"us\",\r\n    \"managementType\": \"semi-managed\",\r\n    \"accessToken\": \"TEMU_PRODUCT_TOKEN\",\r\n    \"type\": \"temu.local.product.attributes.get\",\r\n    \"params\": { \"catId\": 12345 }\r\n  }'\r\n```\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；脚本会通过 `extract_business_params` 提取后写入网关 Body 的 `params`。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n共 **19** 个商品接口（4 V2 + 15 标准），完整 `sub_menu_code` 对照见 [partner-us-catalog.md](./partner-us-catalog.md)。\r\n\r\n| 分组 | 文档 |\r\n|------|------|\r\n| 查询（list / detail） | [product-query-apis.md](./product-query-apis.md) |\r\n| 编辑（update / property / sensitive / migrate） | [product-edit-apis.md](./product-edit-apis.md) |\r\n| 发品 V2 + 图片 + legacy add | [product-publish-apis.md](./product-publish-apis.md) |\r\n| 类目 / 属性 / 规格 / 品牌 / 映射 | [category-spec-apis.md](./category-spec-apis.md) |\r\n| 库存 / 供货价 | [stock-price-apis.md](./stock-price-apis.md) |\r\n\r\n---\r\n\r\n## 推荐 V2 发品流程\r\n\r\n```text\r\n1. temu.local.product.attributes.get   → catId 拉属性模板\r\n2. temu.local.product.variation.get    → catId 拉规格\r\n3. temu.local.goods.image.v2.upload    → 上传图片\r\n4. temu.local.goods.v2.add             → 提交商品\r\n```\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 `accessToken`、白名单、网络；可退避重试 |\r\n| 402 | HTTP 402 | 按 SKILL.md 的 **## 解决认证和积分问题** 处理。 |\r\n\r\nTemu 业务层 `errorCode` / `errorMsg` 在 `body` 内，需结合 `success` 判断。\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n与工具网关分离，勿混用 Base URL。\r\n\r\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\r\n- **Content-Type:** `application/json`\r\n\r\n```json\r\n{\r\n  \"skillName\": \"linkfox-temu-add-product-us\",\r\n  \"sentiment\": \"POSITIVE\",\r\n  \"category\": \"OTHER\",\r\n  \"content\": \"Results were accurate, user was satisfied.\"\r\n}\r\n```\r\n\r\n- `skillName`: **`linkfox-temu-add-product-us`**\r\n- `sentiment`: `POSITIVE` | `NEUTRAL` | `NEGATIVE`\r\n- `category`: `BUG` | `COMPLAINT` | `SUGGESTION` | `OTHER`\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/category-spec-apis.md\n\n# 类目、属性与规格 API — 参数参考\n\nPartner US 菜单 **Product**（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）。经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n- **§1–§2**：Add Products **V2 Recommended**（`temu.local.*`）\n- **§3–§7**：标准商品类目/属性/规格/品牌/映射接口\n\n---\n\n## 1. 获取类目属性模板 — `temu.local.product.attributes.get`\n\n- **Partner 文档分区**：`sub_menu_code=1ecd9ad752a14d5e9f5297edfd6c8848`\n- **脚本**：`scripts/us_goods_attrs.py`\n- **用途**：按**叶子类目 ID** 获取发品所需属性模板（必填/选填、控件类型、属性值列表等）。发品前必须先调用。\n\n### 网关 Body\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | 默认 `us` |\n| managementType | string | 是 | 默认 `semi-managed` |\n| accessToken / storeKey | string | 是 | 二选一 |\n| tokenPurpose | string | 否 | 默认 `product-inventory` |\n| type | string | 是 | 固定 `temu.local.product.attributes.get` |\n| params | object | 是 | 见下表 |\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | **叶子类目 ID**（须选到最细子类目，与同族 `bg.goods.attrs.get` 一致） |\n\n### 响应（`result` 常见结构）\n\n与同族 `bg.goods.attrs.get` 返回的类目属性模板一致，顶层字段示例：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| inputMaxSpecNum | integer | 允许的自定义规格数量上限 |\n| chooseAllQualifySpec | boolean | 限定规格是否须全选 |\n| singleSpecValueNum | integer | 单个自定义规格值数量上限 |\n| properties | array | 属性模板列表，见下表 |\n\n#### `properties[]` 元素\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| pid | integer | 基础属性 ID |\n| templatePid | integer | 模板属性 ID |\n| refPid | integer | 引用属性 ID |\n| name | string | 属性名称 |\n| lang2Name | string | 第二语言名称 |\n| required | boolean | 是否必填 |\n| isSale | boolean | 是否销售属性（规格维度） |\n| mainSale | integer | 是否主销售属性 |\n| controlType | integer | 控件类型（输入/勾选/时间/尺码选择器等） |\n| propertyValueType | integer | 属性值类型（文本/数值/日期等） |\n| valueRule | integer | 数值规则 |\n| chooseMaxNum | integer | 最大可勾选数 |\n| inputMaxNum | integer | 最大可输入数；0 表示不可输入 |\n| valuePrecision | integer | 小数精度；0 表示不允许小数 |\n| maxValue | string | 输入上限 |\n| valueUnit | array | 属性值单位列表 |\n| parentSpecId | integer | 父规格 ID（销售属性相关） |\n| parentTemplatePid | integer | 模板父属性 ID |\n| values | array | 可选属性值，见下表 |\n| showCondition | array | 按父属性展示条件 `{ parentRefPid, parentVids[] }` |\n\n#### `properties[].values[]` 元素\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| vid | integer | 属性值 ID（发品时填入 `productPropertyReqs`） |\n| value | string | 展示值 |\n| specId | integer | 规格 ID（部分销售属性） |\n| group | string | 分组 |\n| extendInfo | string | 扩展信息 |\n| parentVidList | array | 父属性值 ID 列表 |\n\n### 示例\n\n```bash\npython scripts/us_goods_attrs.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'\n```\n\n### 网关响应示例（结构）\n\n```json\n{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"errorMsg\\\":\\\"\\\",\\\"requestId\\\":\\\"us-xxx\\\",\\\"result\\\":{\\\"inputMaxSpecNum\\\":2,\\\"properties\\\":[{\\\"pid\\\":1,\\\"name\\\":\\\"Color\\\",\\\"required\\\":true,\\\"isSale\\\":true,\\\"values\\\":[{\\\"vid\\\":100,\\\"value\\\":\\\"Red\\\"}]}]}}\"\n}\n```\n\n---\n\n## 2. 获取商品规格 — `temu.local.product.variation.get`\n\n- **Partner 文档分区**：`sub_menu_code=d23bfec96065492ebe8290c6fe867a19`\n- **脚本**：`scripts/us_goods_variation.py`\n- **用途**：获取指定类目支持的 **Variation / 规格维度**（如颜色、尺码）及可选值，供 `temu.local.goods.v2.add` 组装 `productSpecPropertyReqs` / `skuList`。\n\n### 网关 Body\n\n网关字段同 §1，`type` 固定为 `temu.local.product.variation.get`。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | 叶子类目 ID |\n\n> 若官方文档另有 `parentSpecId`、`siteId` 等字段，按 Partner 后台该接口说明追加；多数场景仅需 `catId`。\n\n### 响应（`result` 常见结构）\n\n与同族规格查询接口一致，常见为「父规格 + 子规格值」或「可售规格维度列表」：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecList / variationList / specList | array | 规格维度列表（命名以实网为准） |\n\n#### 规格维度元素（典型）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecId | integer | 父规格 ID |\n| parentSpecName | string | 父规格名称（如 Color、Size） |\n| specId | integer | 子规格/规格值 ID |\n| specName | string | 规格值名称 |\n| values | array | 可选规格值列表 `{ specId, specName }` |\n\n多规格发品时，SKU 的 `skuSpecList` 需引用此处返回的 `specId` / `parentSpecId`。\n\n### 示例\n\n```bash\npython scripts/us_goods_variation.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'\n```\n\n---\n\n## 3. 商品类目树 — `bg.goods.cats.get`\n\n- **sub_menu_code**：`7f9ded1bfce7485798c3862467d5c30e`\n- **脚本**：`scripts/us_goods_cats.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| siteId | integer | 是 | 站点 ID，当前固定传 `1` |\n| parentCatId | integer | 否 | 父类目 ID，查顶级类目可不传 |\n| showHidden | boolean | 否 | 是否展示隐藏类目，默认 false |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| categoryDTOList | array | 类目列表 |\n\n#### `categoryDTOList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| catId | integer | 类目 ID |\n| catName | string | 类目名称 |\n| catLevel | integer | 层级 |\n| parentCatId | integer | 父类目 ID |\n| isLeaf | boolean | 是否叶子类目 |\n| catType | integer | 1=服饰，其它=非服饰 |\n| isHidden | boolean | 是否隐藏 |\n\n### 示例\n\n```bash\npython scripts/us_goods_cats.py '{\n  \"accessToken\": \"TOKEN\",\n  \"parentCatId\": 0,\n  \"showHidden\": false\n}'\n```\n\n---\n\n## 4. 类目属性模板（跨境 type）— `bg.goods.attrs.get`\n\n- **sub_menu_code**：`2b42b46f51c348b69bf8f69c5397279e`\n- **脚本**：`scripts/us_goods_attrs_bg.py`\n- **说明**：与 §1 `temu.local.product.attributes.get` 返回结构相同，**type 不同**；半托管跨境发品常用此 type。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | 叶子类目 ID |\n\n响应字段见 **§1** `properties[]` 表。\n\n### 示例\n\n```bash\npython scripts/us_goods_attrs_bg.py '{\n  \"accessToken\": \"TOKEN\",\n  \"catId\": 12345\n}'\n```\n\n---\n\n## 5. 父规格列表 — `bg.glo.goods.parentspec.get`\n\n- **sub_menu_code**：`8a6a6e8b14814d518fe8f004f35b2192`\n- **脚本**：`scripts/us_goods_parent_spec.py`\n- **说明**：无业务入参，返回平台支持的父规格维度。\n\n### 业务参数（`params`）\n\n无，传 `{}` 即可。\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecDTOS | array | 父规格列表 |\n\n#### `parentSpecDTOS[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecId | integer | 父规格 ID |\n| parentSpecName | string | 父规格名称 |\n\n### 示例\n\n```bash\npython scripts/us_goods_parent_spec.py '{\"accessToken\": \"TOKEN\"}'\n```\n\n---\n\n## 6. 可绑定品牌 — `bg.glo.goods.brand.get`\n\n- **sub_menu_code**：`f8065a07b2d6441f9f33c2d808dcc593`\n- **脚本**：`scripts/us_goods_brand.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | integer | 是 | 页码 |\n| pageSize | integer | 是 | 每页条数 |\n| vid | integer | 否 | 搜索的属性 ID |\n| BrandName | string | 否 | 品牌名称（注意大小写） |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| total | integer | 总数 |\n| pageItems | array | 品牌列表 |\n\n#### `pageItems[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| brandId | integer | 品牌 ID |\n| brandNameEn | string | 品牌英文名 |\n| pid | integer | 基础属性值 ID |\n| vid | integer | 属性值 ID |\n| regSerialCode | string | 注册序列号 |\n\n### 示例\n\n```bash\npython scripts/us_goods_brand.py '{\n  \"accessToken\": \"TOKEN\",\n  \"page\": 1,\n  \"pageSize\": 20,\n  \"BrandName\": \"Nike\"\n}'\n```\n\n---\n\n## 7. 商品类目映射 — `bg.goods.category.mapping`\n\n- **sub_menu_code**：`3f15de61844e4a989d042767a385d8f5`\n- **脚本**：`scripts/us_goods_category_mapping.py`\n- **用途**：根据中英文商品名推荐类目。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsName | string | 是 | 商品中文名 |\n| goodsNameEn | string | 是 | 商品英文名 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| categoryId | integer | 推荐类目 ID（字段名以实网为准，亦可能为 `catId`） |\n\n### 示例\n\n```bash\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\": \"TOKEN\",\n  \"goodsName\": \"测试商品\",\n  \"goodsNameEn\": \"Test Product\"\n}'\n```\n\n---\n\n## 相关文档\n\n- [商品发布](./product-publish-apis.md)\n- [商品查询](./product-query-apis.md)\n- [商品编辑](./product-edit-apis.md)\n- [库存与价格](./stock-price-apis.md)\n- [API 调用规范](./api.md)\n- [接口目录](./partner-us-catalog.md)\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\nFile v1.0.6:references/partner-us-catalog.md\n\n# Partner US — 商品（Product）API 目录\n\n**平台**：Partner Platform for US（`site=us`）  \n**菜单**：`Product`（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）  \n**网关**：`POST https://tool-gateway.linkfox.com/temu/proxy`\n\n---\n\n## A. Add Products — Recommended V2（4 个）\n\n菜单路径：**Product > Add Products > Recommended V2 Interfaces**\n\n| sub_menu_code | type | 脚本 | 说明 |\n|---------------|------|------|------|\n| `91657460a9be4a609df2eef01bc6deef` | `temu.local.goods.v2.add` | `us_goods_add.py` | 发布商品 V2 |\n| `1ecd9ad752a14d5e9f5297edfd6c8848` | `temu.local.product.attributes.get` | `us_goods_attrs.py` | 类目属性（US V2） |\n| `d23bfec96065492ebe8290c6fe867a19` | `temu.local.product.variation.get` | `us_goods_variation.py` | 商品规格 Variation |\n| `37d470d8c6e149f78953311aa0b0296d` | `temu.local.goods.image.v2.upload` | `us_goods_image_upload.py` | 图片上传 V2 |\n\n文档：[product-publish-apis.md](./product-publish-apis.md)、[category-spec-apis.md](./category-spec-apis.md) §1–§2\n\n**推荐发品顺序**：`attributes.get` → `variation.get` → `image.v2.upload` → `goods.v2.add`\n\n---\n\n## B. 标准商品接口（15 个）\n\n同一 `menu_code` 下商品能力扩展接口（`sub_menu_code` 与 Partner 文档页一一对应）。\n\n### 商品查询\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `c313f7e3983f407d82d0f7cd88ab5c62` | `temu.goods.list.get` | `us_goods_list.py` | [product-query-apis.md](./product-query-apis.md) §1 |\n| `7ce116fe6b87443ba2a5320b25bf2b20` | `temu.goods.detail.get` | `us_goods_detail.py` | [product-query-apis.md](./product-query-apis.md) §2 |\n\n### 商品编辑\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `e93835a33b7a40ce8769fdf75561aff4` | `temu.goods.update` | `us_goods_update.py` | [product-edit-apis.md](./product-edit-apis.md) §1 |\n| `93fecd4d21fd441a8abcfc1497fa085e` | `temu.goods.edit.property` | `us_goods_edit_property.py` | [product-edit-apis.md](./product-edit-apis.md) §2 |\n| `fc3de2c8546a496d8a5be8d36953e1bd` | `temu.goods.edit.sensitive.attr` | `us_goods_edit_sensitive.py` | [product-edit-apis.md](./product-edit-apis.md) §3 |\n| `a8f8f3dca5ac4e2c8b9e7bc9d64704c8` | `temu.goods.migrate` | `us_goods_migrate.py` | [product-edit-apis.md](./product-edit-apis.md) §4 |\n\n### 类目、属性、规格、品牌\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `7f9ded1bfce7485798c3862467d5c30e` | `bg.goods.cats.get` | `us_goods_cats.py` | [category-spec-apis.md](./category-spec-apis.md) §3 |\n| `2b42b46f51c348b69bf8f69c5397279e` | `bg.goods.attrs.get` | `us_goods_attrs_bg.py` | [category-spec-apis.md](./category-spec-apis.md) §4 |\n| `8a6a6e8b14814d518fe8f004f35b2192` | `bg.glo.goods.parentspec.get` | `us_goods_parent_spec.py` | [category-spec-apis.md](./category-spec-apis.md) §5 |\n| `f8065a07b2d6441f9f33c2d808dcc593` | `bg.glo.goods.brand.get` | `us_goods_brand.py` | [category-spec-apis.md](./category-spec-apis.md) §6 |\n| `3f15de61844e4a989d042767a385d8f5` | `bg.goods.category.mapping` | `us_goods_category_mapping.py` | [category-spec-apis.md](./category-spec-apis.md) §7 |\n\n### 库存、价格、发品（非 V2）\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `d72b66d07b1f499bbd80720367e58e1f` | `bg.btg.goods.stock.quantity.get` | `us_goods_stock_get.py` | [stock-price-apis.md](./stock-price-apis.md) §1 |\n| `e84f651da04f4fedb85d37e375a4e2d8` | `bg.btg.goods.stock.quantity.update` | `us_goods_stock_update.py` | [stock-price-apis.md](./stock-price-apis.md) §2 |\n| `a084faecbad64d7f93c485378b5bd9bf` | `temu.goods.price.list.get` | `us_goods_price_list.py` | [stock-price-apis.md](./stock-price-apis.md) §3 |\n| `1b99296745854ae08d39a7bbe1e4f7a8` | `temu.goods.add` | `us_goods_add_legacy.py` | [product-publish-apis.md](./product-publish-apis.md) §3 |\n\n---\n\n## 站点与鉴权\n\n| 项 | 值 |\n|----|-----|\n| 默认 `site` | `us` |\n| 默认 `managementType` | `semi-managed` |\n| 默认 `tokenPurpose` | `product-inventory` |\n| LinkFox | `LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token` |\n| Temu | Body `accessToken` 或 `storeKey` |\n\n授权步骤见 `references/access-token.md`。\n\n---\n\n## 未封装接口\n\n`scripts/temu_us_proxy.py` 透传任意 `type`；加签文件下载用 `temu_us_file_download.py` → `/temu/fileDownload`。\n\n---\n\n## 参数文档索引\n\n| 文档 | 内容 |\n|------|------|\n| [api.md](./api.md) | 网关、鉴权、通用响应 |\n| [product-query-apis.md](./product-query-apis.md) | 列表、详情 |\n| [product-edit-apis.md](./product-edit-apis.md) | 更新、改属性、敏感品、迁移 |\n| [product-publish-apis.md](./product-publish-apis.md) | V2 发品、图片、legacy 发品 |\n| [category-spec-apis.md](./category-spec-apis.md) | V2 属性/规格 + 类目/品牌/映射 |\n| [stock-price-apis.md](./stock-price-apis.md) | 库存、供货价 |\n\nFile v1.0.6:references/product-edit-apis.md\n\n# 商品编辑 API — 参数参考\n\n经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 更新商品 — `temu.goods.update`\n\n- **sub_menu_code**：`e93835a33b7a40ce8769fdf75561aff4`\n- **脚本**：`scripts/us_goods_update.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| supplierId | integer | 是 | 供应商 ID |\n| productWhExtAttrReq | object | 是 | 仓配扩展 |\n| productWhExtAttrReq.productOrigin.region1ShortName | string | 是 | 产地一级区域二字码（如 `CN`、`US`） |\n| productWhExtAttrReq.productOrigin.region2Id | integer | 条件 | 省份 ID（`region1ShortName=CN` 时必填） |\n\n### 响应\n\n成功时 `success=true`，`result` 可为空对象。\n\n### 示例\n\n```bash\npython scripts/us_goods_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"supplierId\": 123,\n  \"productWhExtAttrReq\": {\n    \"productOrigin\": { \"region1ShortName\": \"CN\", \"region2Id\": 310000 }\n  }\n}'\n```\n\n---\n\n## 2. 编辑商品属性 — `temu.goods.edit.property`\n\n- **sub_menu_code**：`93fecd4d21fd441a8abcfc1497fa085e`\n- **脚本**：`scripts/us_goods_edit_property.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| productProperties | array | 是 | 属性列表 |\n\n#### `productProperties[]`\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| pid | integer | 是 | 属性 ID |\n| templatePid | integer | 是 | 模板属性 ID |\n| refPid | integer | 是 | 引用属性 ID |\n| vid | integer | 否 | 属性值 ID，无则传 0 |\n| propName | string | 是 | 属性名 |\n| propValue | string | 是 | 属性值 |\n| numberInputValue | string | 是 | 数值录入 |\n| valueUnit | string | 否 | 单位，无则空串 |\n\n### 示例\n\n```bash\npython scripts/us_goods_edit_property.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"productProperties\": [{\n    \"pid\": 1, \"templatePid\": 1, \"refPid\": 1,\n    \"vid\": 100, \"propName\": \"Material\", \"propValue\": \"Cotton\",\n    \"numberInputValue\": \"\", \"valueUnit\": \"\"\n  }]\n}'\n```\n\n---\n\n## 3. 编辑敏感品属性 — `temu.goods.edit.sensitive.attr`\n\n- **sub_menu_code**：`fc3de2c8546a496d8a5be8d36953e1bd`\n- **脚本**：`scripts/us_goods_edit_sensitive.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| skuReqList | array | 是 | SKU 敏感属性列表 |\n\n#### `skuReqList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuId | integer | 货品 SKU ID |\n| productSkuSensitiveAttrReq.isSensitive | integer | 0 非敏感，1 敏感 |\n| productSkuSensitiveAttrReq.sensitiveList | array | 敏感类型码（如纯电、内电、液体等） |\n| productSkuSensitiveLimitReq | object | 敏感限制（容量、刀长等），无限制可传 `{}` |\n\n### 示例\n\n```bash\npython scripts/us_goods_edit_sensitive.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"skuReqList\": [{\n    \"productSkuId\": 58224724203874,\n    \"productSkuSensitiveAttrReq\": { \"isSensitive\": 0, \"sensitiveList\": [] },\n    \"productSkuSensitiveLimitReq\": {}\n  }]\n}'\n```\n\n---\n\n## 4. 半托管货品迁移 — `temu.goods.migrate`\n\n- **sub_menu_code**：`a8f8f3dca5ac4e2c8b9e7bc9d64704c8`\n- **脚本**：`scripts/us_goods_migrate.py`\n- **用途**：同主体下将全托管店铺货品搬运至半托管。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| migrationList | array | 是 | 搬运列表 |\n\n#### `migrationList[]` 主要字段\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSemiManagedReq.bindSiteIds | array | 绑定站点 |\n| productSemiManagedReq.semiManagedSiteMode | integer | 半托管售卖模式 |\n| productWarehouseRouteReq.targetRouteList | array | 站点-仓路由 `{ siteIdList, warehouseId }` |\n| skcDetails | array | SKC/SKU 规格明细 |\n\n### 示例\n\n```bash\npython scripts/us_goods_migrate.py '{\n  \"accessToken\": \"TOKEN\",\n  \"migrationList\": [{ \"productSemiManagedReq\": { \"bindSiteIds\": [100] } }]\n}'\n```\n\nFile v1.0.6:references/product-publish-apis.md\n\n# 商品发布 API — 参数参考（V2 Recommended）\n\nPartner US 菜单：**Product > Add Products > Recommended V2 Interfaces**。  \n经 `POST /temu/proxy` 转发，网关与响应信封见 [api.md](./api.md)。\n\n发品前请先调用 [category-spec-apis.md](./category-spec-apis.md) 中的属性与规格接口，并完成图片上传。\n\n---\n\n## 1. 发布商品 V2 — `temu.local.goods.v2.add`\n\n- **Partner 文档分区**：`sub_menu_code=91657460a9be4a609df2eef01bc6deef`\n- **脚本**：`scripts/us_goods_add.py`\n- **用途**：在美国站创建新商品（V2 推荐发品接口）。与同族 `bg.local.goods.add`、`temu.goods.add` 载荷结构一致或为其超集。\n\n### 网关 Body\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | 默认 `us` |\n| managementType | string | 是 | 默认 `semi-managed` |\n| accessToken / storeKey | string | 是 | 二选一 |\n| tokenPurpose | string | 否 | 默认 `product-inventory` |\n| type | string | 是 | 固定 `temu.local.goods.v2.add` |\n| params | object | 是 | 发品载荷，见下文 |\n\n### 业务参数（`params`）— 顶层\n\n以下字段来自同族 `bg.local.goods.add` / `temu.goods.add` 发品模型；**具体必填项由类目属性接口返回的 `required` 决定**。\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsBasic | object | 是 | 商品基础信息（标题、类目、轮播图等） |\n| skuList | array | 是 | SKU 列表（价格、库存、规格、图片等） |\n| certificationInfo | object | 否 | 合规/认证（证书、GPSR、实拍图等，类目要求时必填） |\n| productPropertyReqs | array | 否 | 普通属性（亦可放在 `goodsBasic` 内，以官方字段为准） |\n| productSpecPropertyReqs | array | 否 | 销售规格属性 |\n| productSemiManagedReq | object | 否 | 半托管绑定站点等 |\n| productShipmentReq | object | 否 | 半托管配送/运费模板 |\n| addProductChannelType | integer | 是 | 发品渠道（同族接口必填） |\n\n#### `goodsBasic` 常见字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId / leafCatId | integer | 是 | 叶子类目 ID（或 cat1Id…cat10Id 逐级类目，与同族 `temu.goods.add` 一致） |\n| productName | string | 是 | 商品标题，通常 1–250 字符 |\n| carouselImageUrls | array | 是 | 轮播图 URL 列表（须先 `image.v2.upload`），常 ≥5 张 |\n| materialImgUrl | string | 否 | 素材图 URL |\n| carouselImageI18nReqs | array | 否 | 多语言轮播图（非服饰类常必填） |\n| productOuterPackageImageReqs | array | 否 | 外包装图 |\n| productOuterPackageReq | object | 否 | 外包装信息 |\n| productPropertyReqs | array | 是 | 类目属性值，元素见下表 |\n| productSpecPropertyReqs | array | 条件 | 多规格时的规格属性 |\n| productWhExtAttrReq | object | 是 | 仓配扩展（产地、重量体积等） |\n| productSaleExtAttrReq | object | 否 | 销售扩展 |\n| productSkcReqs | array | 是 | SKC 维度数据（含 SKU 列表） |\n| sizeTemplateIds | array | 否 | 尺码表模板 ID，无尺码传 `[]` |\n| showSizeTemplateIds | array | 否 | 展示用尺码表，至多 2 个 |\n| goodsModelReqs | array | 否 | 模特信息 |\n| productGuideFileReqs | array | 否 | 说明书文件 |\n| goodsLayerDecorationReqs | array | 否 | 商详装饰模块 |\n| personalizationSwitch | integer | 否 | 0 非定制品，1 定制品 |\n| productCarouseVideoReqList | array | 否 | 主图视频 |\n| materialMultiLanguages | array | 否 | 图片多语言 |\n| addProductChannelType | integer | 是 | 发品渠道 |\n\n#### `productPropertyReqs[]` 元素（发品回填属性）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| pid | integer | 属性 ID（来自 attributes.get） |\n| vid | integer | 属性值 ID |\n| propName | string | 属性名 |\n| propValue | string | 属性值文本 |\n| templatePid | integer | 模板属性 ID |\n| refPid | integer | 引用属性 ID |\n| numberInputValue | string | 数值录入 |\n| valueUnit | string | 单位 |\n\n#### `skuList[]` 元素（同族 `bg.local.goods.add`）\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| images | array | 是 | SKU 图片 URL 列表 |\n| quantity | integer | 是 | 库存数量 |\n| externalProductType | integer | 否 | 外部商品类型 |\n| supplierPrice / price | object | 条件 | 供货价（金额 + 币种） |\n| specIdList | array | 条件 | 规格 ID 列表（多规格） |\n| outSkuSn / extCode | string | 否 | 商家 SKU 编码 |\n| multiplePackage | object | 否 | 多件装：`numberOfPieces`、`individuallyPacked`、`skuClassification` 等 |\n\n#### `certificationInfo` 常见块（合规类目）\n\n| 块 | 说明 |\n|----|------|\n| certificateInfo | 证书类型、文件 URL、authCode 等 |\n| extraTemplate | 合规模板扩展字段 |\n| actualPhoto | 实拍图（`skuPhotoInfoList`、`position`） |\n| gpsrInfo | 欧盟 GPSR：制造商、责任人 |\n| repInfo | 代表信息 |\n\n完整嵌套字段以 Partner 后台 **Add Product V2** 文档为准；上表覆盖 EU 同族 `bg.local.goods.add` 公开示例中的主要块。\n\n### 响应（`result` 常见结构）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 新建货品 ID |\n| goodsId | integer | 商品 ID（部分接口命名） |\n| productSkcList | array | `{ productSkcId }` |\n| productSkuList | array | `{ productSkuId, productSkcId, extCode, skuSpecList[] }` |\n\n### 示例\n\n```bash\npython scripts/us_goods_add.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": {\n    \"goodsBasic\": {\n      \"catId\": 12345,\n      \"productName\": \"Example Product\",\n      \"carouselImageUrls\": [\"https://...\"],\n      \"productPropertyReqs\": [{ \"pid\": 1, \"vid\": 100 }],\n      \"addProductChannelType\": 0\n    },\n    \"skuList\": [{\n      \"images\": [\"https://...\"],\n      \"quantity\": 99,\n      \"supplierPrice\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n    }]\n  }\n}'\n```\n\n---\n\n## 2. 商品图片上传 V2 — `temu.local.goods.image.v2.upload`\n\n- **Partner 文档分区**：`sub_menu_code=37d470d8c6e149f78953311aa0b0296d`\n- **脚本**：`scripts/us_goods_image_upload.py`\n- **用途**：上传商品图片（Base64），返回可用于 `goods.v2.add` 的 URL。与同族 `bg.goods.image.upload.global` 一致。\n\n### 网关 Body\n\n网关字段同 §1，`type` 固定为 `temu.local.goods.image.v2.upload`。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| image | string | 是 | 图片 **Base64**（支持 jpg/jpeg、png 等） |\n| imageBizType | integer | 否 | `0` 默认；`1` 外包装专用 URL |\n| options | object | 否 | 裁剪/增强选项，见下表 |\n\n#### `options`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| boost | boolean | 是否 AI 清晰度提升 |\n| doIntelligenceCrop | boolean | 是否智能裁剪（true 时可能返回 1 原图 + 3 裁剪图） |\n| cateId | integer | 叶子类目 ID（`doIntelligenceCrop=true` 时生效） |\n| sizeMode | integer | `0` 原图；`1` 800×800；`2` 1350×1800 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| imageUrl | string | 原图链接 |\n| url | string | 单张 AI 裁图链接 |\n| urls | array | 多张 AI 裁图链接 |\n\n将 `imageUrl` 或 `urls[]` 填入 `goods.v2.add` 的 `carouselImageUrls`、`skuList[].images`、`materialImgUrl` 等。\n\n### 示例\n\n```bash\npython scripts/us_goods_image_upload.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": {\n    \"image\": \"<BASE64>\",\n    \"options\": {\n      \"doIntelligenceCrop\": true,\n      \"cateId\": 12345,\n      \"sizeMode\": 1\n    }\n  }\n}'\n```\n\n### 网关响应示例（结构）\n\n```json\n{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"result\\\":{\\\"imageUrl\\\":\\\"https://...\\\",\\\"url\\\":\\\"https://...\\\",\\\"urls\\\":[\\\"https://...\\\"]}}\"\n}\n```\n\n---\n\n## 3. 发布商品（半托管/跨境）— `temu.goods.add`\n\n- **sub_menu_code**：`1b99296745854ae08d39a7bbe1e4f7a8`\n- **脚本**：`scripts/us_goods_add_legacy.py`\n- **说明**：非 V2 发品接口；美国站 Partner US 发品优先用 **§1** `temu.local.goods.v2.add`。载荷与同族 `temu.goods.add` 一致。\n\n### 业务参数（`params`）\n\n与 [§1](#1-发布商品-v2--temulocalgoodsv2add) 类似，主要块包括：\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cat1Id … cat10Id | integer | 是 | 各级类目（至少到叶子） |\n| productName | string | 是 | 商品标题 |\n| carouselImageUrls | array | 是 | 轮播图 URL，通常 ≥5 张 |\n| productPropertyReqs | array | 是 | 类目属性 |\n| productSkcReqs | array | 是 | SKC/SKU 结构 |\n| addProductChannelType | integer | 是 | 发品渠道 |\n\n完整字段见 §1 `goodsBasic` / `skuList` 说明。\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 新建货品 ID |\n| productSkcList | array | `{ productSkcId }` |\n| productSkuList | array | `{ productSkuId, extCode, skuSpecList }` |\n\n### 示例\n\n```bash\npython scripts/us_goods_add_legacy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"params\": { \"...\": \"同 temu.goods.add 文档结构\" }\n}'\n```\n\n---\n\n## 相关文档\n\n- [类目属性与规格](./category-spec-apis.md)\n- [商品查询](./product-query-apis.md)\n- [商品编辑](./product-edit-apis.md)\n- [API 调用规范](./api.md)\n- [接口目录](./partner-us-catalog.md)\n\nFile v1.0.6:references/product-query-apis.md\n\n# 商品查询 API — 参数参考\n\nPartner US 菜单 **Product**（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）。经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 商品列表查询 — `temu.goods.list.get`\n\n- **sub_menu_code**：`c313f7e3983f407d82d0f7cd88ab5c62`\n- **脚本**：`scripts/us_goods_list.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | integer | 是 | 页码，从 1 起 |\n| pageSize | integer | 是 | 每页条数 |\n| productName | string | 否 | 货品名称（模糊） |\n| productSkcIds | array | 否 | SKC ID 列表 |\n| skcExtCode | string | 否 | SKC 外部编码 |\n| skuExtCodes | array | 否 | SKU 货号列表 |\n| cat1Id … cat10Id | integer | 否 | 各级类目 ID 筛选 |\n| bindSiteIds | array | 否 | 经营站点 ID 列表 |\n| skcSiteStatus | integer | 否 | SKC 加站点状态：0 未加入，1 已加入 |\n| matchJitMode | boolean | 否 | 是否 JIT 模式 |\n| quickSellAgtSignStatus | integer | 否 | 快速售卖协议：0 未签，1 已签 |\n| supportPersonalization | integer | 否 | 是否支持定制品 |\n| createdAtStart | string | 否 | 创建时间起（`YYYY-MM-DD HH:mm:ss`） |\n| createdAtEnd | string | 否 | 创建时间止 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| data | array | 商品列表，元素见 `entity.Goods` |\n| totalCount | integer | 总条数 |\n\n#### `data[]` 主要字段\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productSkcId | integer | SKC ID |\n| productName | string | 货品名称 |\n| extCode | string | SKC 外部编码 |\n| mainImageUrl | string | 主图 |\n| leafCat | object | 叶子类目 `{ catId, catName }` |\n| skcSiteStatus | integer | 站点上架状态 |\n| productSkuSummaries | array | SKU 摘要（库存、规格等） |\n\n### 示例\n\n```bash\npython scripts/us_goods_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"page\": 1,\n  \"pageSize\": 20\n}'\n```\n\n---\n\n## 2. 商品详情查询 — `temu.goods.detail.get`\n\n- **sub_menu_code**：`7ce116fe6b87443ba2a5320b25bf2b20`\n- **脚本**：`scripts/us_goods_detail.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productName | string | 商品名称 |\n| categories | object | 类目树 cat1…cat10、leafCat |\n| goodsLayerDecorationList | array | 商详装饰楼层 |\n| productWhExtAttr | object | 仓配扩展（如产地 `productOrigin`） |\n\n### 示例\n\n```bash\npython scripts/us_goods_detail.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112\n}'\n```\n\nFile v1.0.6:references/stock-price-apis.md\n\n# 库存与价格 API — 参数参考\n\n经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 虚拟库存查询 — `bg.btg.goods.stock.quantity.get`\n\n- **sub_menu_code**：`d72b66d07b1f499bbd80720367e58e1f`\n- **脚本**：`scripts/us_goods_stock_get.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productSkcId | integer | 是 | 货品 SKC ID |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| total | integer | 条数 |\n| productSkuStockList | array | SKU 库存列表 |\n\n#### `productSkuStockList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuId | integer | SKU ID |\n| skuStockQuantity | integer | 虚拟库存（不可查看时为 null） |\n| warehouseId | string | 仓库 ID（欧区可分仓） |\n| shippingMode | integer | 1 卖家自发货，2 认证仓 |\n| tempLockQuantity | integer | 未支付锁定库存 |\n\n### 示例\n\n```bash\npython scripts/us_goods_stock_get.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productSkcId\": 123456789\n}'\n```\n\n---\n\n## 2. 虚拟库存更新 — `bg.btg.goods.stock.quantity.update`\n\n- **sub_menu_code**：`e84f651da04f4fedb85d37e375a4e2d8`\n- **脚本**：`scripts/us_goods_stock_update.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| quantityChangeMode | integer | 是 | `1` 增减变更；`2` 覆盖变更（默认 1） |\n| productSkcId | integer | 否 | SKC ID |\n| skuStockChangeList | array | 是 | 库存调整项 |\n\n#### `skuStockChangeList[]`\n\n| 字段 | 类型 | 条件 | 说明 |\n|------|------|------|------|\n| productSkuId | integer | 是 | SKU ID |\n| warehouseId | string | 是 | 发货仓 ID |\n| stockDiff | integer | mode=1 | 增减量（正增负减） |\n| targetStockAvailable | integer | mode=2 | 覆盖后的目标库存（≥0） |\n| currentShippingMode | integer | 否 | 当前发货模式 |\n| currentStockAvailable | integer | 否 | 当前库存 |\n\n### 示例\n\n```bash\npython scripts/us_goods_stock_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"quantityChangeMode\": 1,\n  \"skuStockChangeList\": [{\n    \"productSkuId\": 58224724203874,\n    \"warehouseId\": \"WH001\",\n    \"stockDiff\": 10\n  }]\n}'\n```\n\n---\n\n## 3. 供货价列表 — `temu.goods.price.list.get`\n\n- **sub_menu_code**：`a084faecbad64d7f93c485378b5bd9bf`\n- **脚本**：`scripts/us_goods_price_list.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productSkuIds | array | 是 | 货品 SKU ID 列表 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuSupplierPriceList | array | 供货价列表 |\n\n#### `productSkuSupplierPriceList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productSkcId | integer | SKC ID |\n| productSkuId | integer | SKU ID |\n| supplierPrice | number | 供货价 |\n| currencyType | string/number | 币种 |\n| siteSupplierPrices | array | 分站点供货价（半托管） |\n\n### 示例\n\n```bash\npython scripts/us_goods_price_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productSkuIds\": [58224724203874, 58224724203875]\n}'\n```\n\nArchive v1.0.5: 47 files, 57003 bytes\n\nFiles: references/access-token.md (4527b), references/api.md (5567b), references/authorization-flow.md (1186b), references/category-spec-apis.md (9759b), references/onboarding.md (2046b), references/partner-us-catalog.md (4992b), references/product-edit-apis.md (4208b), references/product-publish-apis.md (9358b), references/product-query-apis.md (2784b), references/stock-price-apis.md (3187b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12429b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3209b), scripts/_us_product_script.py (444b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), 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_proxy.py (2124b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (719b), scripts/temu_us_proxy.py (899b), scripts/us_goods_add_legacy.py (244b), scripts/us_goods_add.py (218b), scripts/us_goods_attrs_bg.py (217b), scripts/us_goods_attrs.py (227b), scripts/us_goods_brand.py (202b), scripts/us_goods_category_mapping.py (297b), scripts/us_goods_cats.py (191b), scripts/us_goods_detail.py (198b), scripts/us_goods_edit_property.py (217b), scripts/us_goods_edit_sensitive.py (233b), scripts/us_goods_image_upload.py (251b), scripts/us_goods_list.py (198b), scripts/us_goods_migrate.py (220b), scripts/us_goods_parent_spec.py (218b), scripts/us_goods_price_list.py (220b), scripts/us_goods_stock_get.py (233b), scripts/us_goods_stock_update.py (242b), scripts/us_goods_update.py (190b), scripts/us_goods_variation.py (248b), skill-card.md (3390b), SKILL.md (6053b), _meta.json (146b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: linkfox-temu-add-product-us\ndescription: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。\n---\n\n# Temu 美国站发品 API（Partner US）\n\n本 skill（`linkfox-temu-add-product-us`）覆盖 Partner Platform for US **Product** 菜单（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）下 **19 个商品接口**：**4 个 V2 推荐发品** + **15 个标准商品 API**（查询、编辑、类目、库存、价格等）。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 网关路径 |\n|------|------|----------|\n| 商品 OpenAPI（全部 `us_goods_*`、`temu_us_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载（`temu_us_file_download`） | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n商品 `type` 写在 Body，**不是** URL 路径。\n\n> **不是订单 skill**：订单、发货、物流见 `linkfox-temu-order-us` 或其它履约类 skill。\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/linkfox-temu-add-product-us-<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 | `us` | Partner US |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose（storeKey） | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts\n\n### V2 推荐发品\n\n| 脚本 | type |\n|------|------|\n| `us_goods_attrs.py` | `temu.local.product.attributes.get` |\n| `us_goods_variation.py` | `temu.local.product.variation.get` |\n| `us_goods_image_upload.py` | `temu.local.goods.image.v2.upload` |\n| `us_goods_add.py` | `temu.local.goods.v2.add` |\n\n### 查询 / 编辑 / 类目 / 库存\n\n| 脚本 | type |\n|------|------|\n| `us_goods_list.py` | `temu.goods.list.get` |\n| `us_goods_detail.py` | `temu.goods.detail.get` |\n| `us_goods_update.py` | `temu.goods.update` |\n| `us_goods_edit_property.py` | `temu.goods.edit.property` |\n| `us_goods_edit_sensitive.py` | `temu.goods.edit.sensitive.attr` |\n| `us_goods_migrate.py` | `temu.goods.migrate` |\n| `us_goods_cats.py` | `bg.goods.cats.get` |\n| `us_goods_attrs_bg.py` | `bg.goods.attrs.get` |\n| `us_goods_parent_spec.py` | `bg.glo.goods.parentspec.get` |\n| `us_goods_brand.py` | `bg.glo.goods.brand.get` |\n| `us_goods_category_mapping.py` | `bg.goods.category.mapping` |\n| `us_goods_stock_get.py` | `bg.btg.goods.stock.quantity.get` |\n| `us_goods_stock_update.py` | `bg.btg.goods.stock.quantity.update` |\n| `us_goods_price_list.py` | `temu.goods.price.list.get` |\n| `us_goods_add_legacy.py` | `temu.goods.add` |\n| `temu_us_proxy.py` | 任意 `type` |\n| `temu_us_file_download.py` | 加签文件下载 |\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 商品列表\npython scripts/us_goods_list.py '{\"accessToken\":\"TOKEN\",\"page\":1,\"pageSize\":20}'\n\n# 类目映射\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\":\"TOKEN\",\n  \"goodsName\":\"测试商品\",\n  \"goodsNameEn\":\"Test Product\"\n}'\n\n# V2 发品流程\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\npython scripts/us_goods_image_upload.py '{\"accessToken\":\"TOKEN\",\"params\":{\"image\":\"<BASE64>\"}}'\npython scripts/us_goods_add.py '{\"accessToken\":\"TOKEN\",\"params\":{\"...\"}}'\n```\n\n**Feedback：** `skillName`：`linkfox-temu-add-product-us`\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:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-add-product-us\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1786101080061\n}\n\nFile v1.0.5: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）（如未配置 按 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=us` / `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-us.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-add-product-us — API 参考\r\n\r\nTemu **美国站商品发布**（Partner US **Product > Add Products > Recommended V2 Interfaces**），经本 skill `temu_us_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}`（可用 `LINKFOX_TOOL_GATEWAY` / `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 商品 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或环境变量 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token` / `linkfoxToken`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（由网关按 `site` 解析，调用方勿直连） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `us`（本 skill 默认）；半托跨境发品偶用 `cn` / `partner` |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌，最长约 8192 |\r\n| storeKey | string | 与 accessToken 二选一 | 本地 `~/.linkfox/temu-access-tokens.json` 中的店铺键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory`（酷鸟卖家助手） |\r\n| type | string | 是 | Temu 接口名，如 `temu.local.goods.v2.add` |\r\n| params | object | 否 | 业务参数，结构见下文各接口文档 |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON **字符串**；脚本会尽量解析为 `temuBody` |\r\n| code | integer | 网关错误码（非 Temu 业务码），如 `1002` 参数/用户 Token 无效，`1003` 转发失败 |\r\n\r\n解析顺序：**先看网关 `code`/`message`** → 再 `JSON.parse(body)` → 读 Temu 层 `success`、`errorCode`、`errorMsg`、`result`。\r\n\r\n### Temu 业务响应信封（`body` 解析后）\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| success | boolean | 是否成功 |\r\n| errorCode | integer | 业务错误码；`1000000` 或 `0` 常表示成功（以实网为准） |\r\n| errorMsg | string | 错误说明，成功时多为空 |\r\n| requestId | string | 请求追踪 ID |\r\n| result | object | 业务数据，结构因 `type` 而异 |\r\n\r\n### curl 示例（经网关）\r\n\r\n```bash\r\ncurl -X POST https://tool-gateway.linkfox.com/temu/proxy \\\r\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Token: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\r\n    \"site\": \"us\",\r\n    \"managementType\": \"semi-managed\",\r\n    \"accessToken\": \"TEMU_PRODUCT_TOKEN\",\r\n    \"type\": \"temu.local.product.attributes.get\",\r\n    \"params\": { \"catId\": 12345 }\r\n  }'\r\n```\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；脚本会通过 `extract_business_params` 提取后写入网关 Body 的 `params`。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n共 **19** 个商品接口（4 V2 + 15 标准），完整 `sub_menu_code` 对照见 [partner-us-catalog.md](./partner-us-catalog.md)。\r\n\r\n| 分组 | 文档 |\r\n|------|------|\r\n| 查询（list / detail） | [product-query-apis.md](./product-query-apis.md) |\r\n| 编辑（update / property / sensitive / migrate） | [product-edit-apis.md](./product-edit-apis.md) |\r\n| 发品 V2 + 图片 + legacy add | [product-publish-apis.md](./product-publish-apis.md) |\r\n| 类目 / 属性 / 规格 / 品牌 / 映射 | [category-spec-apis.md](./category-spec-apis.md) |\r\n| 库存 / 供货价 | [stock-price-apis.md](./stock-price-apis.md) |\r\n\r\n---\r\n\r\n## 推荐 V2 发品流程\r\n\r\n```text\r\n1. temu.local.product.attributes.get   → catId 拉属性模板\r\n2. temu.local.product.variation.get    → catId 拉规格\r\n3. temu.local.goods.image.v2.upload    → 上传图片\r\n4. temu.local.goods.v2.add             → 提交商品\r\n```\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 `accessToken`、白名单、网络；可退避重试 |\r\n| 402 | HTTP 402 | 按 SKILL.md 的 **## 解决认证和积分问题** 处理。 |\r\n\r\nTemu 业务层 `errorCode` / `errorMsg` 在 `body` 内，需结合 `success` 判断。\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n与工具网关分离，勿混用 Base URL。\r\n\r\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\r\n- **Content-Type:** `application/json`\r\n\r\n```json\r\n{\r\n  \"skillName\": \"linkfox-temu-add-product-us\",\r\n  \"sentiment\": \"POSITIVE\",\r\n  \"category\": \"OTHER\",\r\n  \"content\": \"Results were accurate, user was satisfied.\"\r\n}\r\n```\r\n\r\n- `skillName`: **`linkfox-temu-add-product-us`**\r\n- `sentiment`: `POSITIVE` | `NEUTRAL` | `NEGATIVE`\r\n- `category`: `BUG` | `COMPLAINT` | `SUGGESTION` | `OTHER`\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/category-spec-apis.md\n\n# 类目、属性与规格 API — 参数参考\n\nPartner US 菜单 **Product**（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）。经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n- **§1–§2**：Add Products **V2 Recommended**（`temu.local.*`）\n- **§3–§7**：标准商品类目/属性/规格/品牌/映射接口\n\n---\n\n## 1. 获取类目属性模板 — `temu.local.product.attributes.get`\n\n- **Partner 文档分区**：`sub_menu_code=1ecd9ad752a14d5e9f5297edfd6c8848`\n- **脚本**：`scripts/us_goods_attrs.py`\n- **用途**：按**叶子类目 ID** 获取发品所需属性模板（必填/选填、控件类型、属性值列表等）。发品前必须先调用。\n\n### 网关 Body\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | 默认 `us` |\n| managementType | string | 是 | 默认 `semi-managed` |\n| accessToken / storeKey | string | 是 | 二选一 |\n| tokenPurpose | string | 否 | 默认 `product-inventory` |\n| type | string | 是 | 固定 `temu.local.product.attributes.get` |\n| params | object | 是 | 见下表 |\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | **叶子类目 ID**（须选到最细子类目，与同族 `bg.goods.attrs.get` 一致） |\n\n### 响应（`result` 常见结构）\n\n与同族 `bg.goods.attrs.get` 返回的类目属性模板一致，顶层字段示例：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| inputMaxSpecNum | integer | 允许的自定义规格数量上限 |\n| chooseAllQualifySpec | boolean | 限定规格是否须全选 |\n| singleSpecValueNum | integer | 单个自定义规格值数量上限 |\n| properties | array | 属性模板列表，见下表 |\n\n#### `properties[]` 元素\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| pid | integer | 基础属性 ID |\n| templatePid | integer | 模板属性 ID |\n| refPid | integer | 引用属性 ID |\n| name | string | 属性名称 |\n| lang2Name | string | 第二语言名称 |\n| required | boolean | 是否必填 |\n| isSale | boolean | 是否销售属性（规格维度） |\n| mainSale | integer | 是否主销售属性 |\n| controlType | integer | 控件类型（输入/勾选/时间/尺码选择器等） |\n| propertyValueType | integer | 属性值类型（文本/数值/日期等） |\n| valueRule | integer | 数值规则 |\n| chooseMaxNum | integer | 最大可勾选数 |\n| inputMaxNum | integer | 最大可输入数；0 表示不可输入 |\n| valuePrecision | integer | 小数精度；0 表示不允许小数 |\n| maxValue | string | 输入上限 |\n| valueUnit | array | 属性值单位列表 |\n| parentSpecId | integer | 父规格 ID（销售属性相关） |\n| parentTemplatePid | integer | 模板父属性 ID |\n| values | array | 可选属性值，见下表 |\n| showCondition | array | 按父属性展示条件 `{ parentRefPid, parentVids[] }` |\n\n#### `properties[].values[]` 元素\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| vid | integer | 属性值 ID（发品时填入 `productPropertyReqs`） |\n| value | string | 展示值 |\n| specId | integer | 规格 ID（部分销售属性） |\n| group | string | 分组 |\n| extendInfo | string | 扩展信息 |\n| parentVidList | array | 父属性值 ID 列表 |\n\n### 示例\n\n```bash\npython scripts/us_goods_attrs.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'\n```\n\n### 网关响应示例（结构）\n\n```json\n{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"errorMsg\\\":\\\"\\\",\\\"requestId\\\":\\\"us-xxx\\\",\\\"result\\\":{\\\"inputMaxSpecNum\\\":2,\\\"properties\\\":[{\\\"pid\\\":1,\\\"name\\\":\\\"Color\\\",\\\"required\\\":true,\\\"isSale\\\":true,\\\"values\\\":[{\\\"vid\\\":100,\\\"value\\\":\\\"Red\\\"}]}]}}\"\n}\n```\n\n---\n\n## 2. 获取商品规格 — `temu.local.product.variation.get`\n\n- **Partner 文档分区**：`sub_menu_code=d23bfec96065492ebe8290c6fe867a19`\n- **脚本**：`scripts/us_goods_variation.py`\n- **用途**：获取指定类目支持的 **Variation / 规格维度**（如颜色、尺码）及可选值，供 `temu.local.goods.v2.add` 组装 `productSpecPropertyReqs` / `skuList`。\n\n### 网关 Body\n\n网关字段同 §1，`type` 固定为 `temu.local.product.variation.get`。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | 叶子类目 ID |\n\n> 若官方文档另有 `parentSpecId`、`siteId` 等字段，按 Partner 后台该接口说明追加；多数场景仅需 `catId`。\n\n### 响应（`result` 常见结构）\n\n与同族规格查询接口一致，常见为「父规格 + 子规格值」或「可售规格维度列表」：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecList / variationList / specList | array | 规格维度列表（命名以实网为准） |\n\n#### 规格维度元素（典型）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecId | integer | 父规格 ID |\n| parentSpecName | string | 父规格名称（如 Color、Size） |\n| specId | integer | 子规格/规格值 ID |\n| specName | string | 规格值名称 |\n| values | array | 可选规格值列表 `{ specId, specName }` |\n\n多规格发品时，SKU 的 `skuSpecList` 需引用此处返回的 `specId` / `parentSpecId`。\n\n### 示例\n\n```bash\npython scripts/us_goods_variation.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'\n```\n\n---\n\n## 3. 商品类目树 — `bg.goods.cats.get`\n\n- **sub_menu_code**：`7f9ded1bfce7485798c3862467d5c30e`\n- **脚本**：`scripts/us_goods_cats.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| siteId | integer | 是 | 站点 ID，当前固定传 `1` |\n| parentCatId | integer | 否 | 父类目 ID，查顶级类目可不传 |\n| showHidden | boolean | 否 | 是否展示隐藏类目，默认 false |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| categoryDTOList | array | 类目列表 |\n\n#### `categoryDTOList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| catId | integer | 类目 ID |\n| catName | string | 类目名称 |\n| catLevel | integer | 层级 |\n| parentCatId | integer | 父类目 ID |\n| isLeaf | boolean | 是否叶子类目 |\n| catType | integer | 1=服饰，其它=非服饰 |\n| isHidden | boolean | 是否隐藏 |\n\n### 示例\n\n```bash\npython scripts/us_goods_cats.py '{\n  \"accessToken\": \"TOKEN\",\n  \"parentCatId\": 0,\n  \"showHidden\": false\n}'\n```\n\n---\n\n## 4. 类目属性模板（跨境 type）— `bg.goods.attrs.get`\n\n- **sub_menu_code**：`2b42b46f51c348b69bf8f69c5397279e`\n- **脚本**：`scripts/us_goods_attrs_bg.py`\n- **说明**：与 §1 `temu.local.product.attributes.get` 返回结构相同，**type 不同**；半托管跨境发品常用此 type。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | 叶子类目 ID |\n\n响应字段见 **§1** `properties[]` 表。\n\n### 示例\n\n```bash\npython scripts/us_goods_attrs_bg.py '{\n  \"accessToken\": \"TOKEN\",\n  \"catId\": 12345\n}'\n```\n\n---\n\n## 5. 父规格列表 — `bg.glo.goods.parentspec.get`\n\n- **sub_menu_code**：`8a6a6e8b14814d518fe8f004f35b2192`\n- **脚本**：`scripts/us_goods_parent_spec.py`\n- **说明**：无业务入参，返回平台支持的父规格维度。\n\n### 业务参数（`params`）\n\n无，传 `{}` 即可。\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecDTOS | array | 父规格列表 |\n\n#### `parentSpecDTOS[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecId | integer | 父规格 ID |\n| parentSpecName | string | 父规格名称 |\n\n### 示例\n\n```bash\npython scripts/us_goods_parent_spec.py '{\"accessToken\": \"TOKEN\"}'\n```\n\n---\n\n## 6. 可绑定品牌 — `bg.glo.goods.brand.get`\n\n- **sub_menu_code**：`f8065a07b2d6441f9f33c2d808dcc593`\n- **脚本**：`scripts/us_goods_brand.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | integer | 是 | 页码 |\n| pageSize | integer | 是 | 每页条数 |\n| vid | integer | 否 | 搜索的属性 ID |\n| BrandName | string | 否 | 品牌名称（注意大小写） |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| total | integer | 总数 |\n| pageItems | array | 品牌列表 |\n\n#### `pageItems[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| brandId | integer | 品牌 ID |\n| brandNameEn | string | 品牌英文名 |\n| pid | integer | 基础属性值 ID |\n| vid | integer | 属性值 ID |\n| regSerialCode | string | 注册序列号 |\n\n### 示例\n\n```bash\npython scripts/us_goods_brand.py '{\n  \"accessToken\": \"TOKEN\",\n  \"page\": 1,\n  \"pageSize\": 20,\n  \"BrandName\": \"Nike\"\n}'\n```\n\n---\n\n## 7. 商品类目映射 — `bg.goods.category.mapping`\n\n- **sub_menu_code**：`3f15de61844e4a989d042767a385d8f5`\n- **脚本**：`scripts/us_goods_category_mapping.py`\n- **用途**：根据中英文商品名推荐类目。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsName | string | 是 | 商品中文名 |\n| goodsNameEn | string | 是 | 商品英文名 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| categoryId | integer | 推荐类目 ID（字段名以实网为准，亦可能为 `catId`） |\n\n### 示例\n\n```bash\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\": \"TOKEN\",\n  \"goodsName\": \"测试商品\",\n  \"goodsNameEn\": \"Test Product\"\n}'\n```\n\n---\n\n## 相关文档\n\n- [商品发布](./product-publish-apis.md)\n- [商品查询](./product-query-apis.md)\n- [商品编辑](./product-edit-apis.md)\n- [库存与价格](./stock-price-apis.md)\n- [API 调用规范](./api.md)\n- [接口目录](./partner-us-catalog.md)\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\nFile v1.0.5:references/partner-us-catalog.md\n\n# Partner US — 商品（Product）API 目录\n\n**平台**：Partner Platform for US（`site=us`）  \n**菜单**：`Product`（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）  \n**网关**：`POST https://tool-gateway.linkfox.com/temu/proxy`\n\n---\n\n## A. Add Products — Recommended V2（4 个）\n\n菜单路径：**Product > Add Products > Recommended V2 Interfaces**\n\n| sub_menu_code | type | 脚本 | 说明 |\n|---------------|------|------|------|\n| `91657460a9be4a609df2eef01bc6deef` | `temu.local.goods.v2.add` | `us_goods_add.py` | 发布商品 V2 |\n| `1ecd9ad752a14d5e9f5297edfd6c8848` | `temu.local.product.attributes.get` | `us_goods_attrs.py` | 类目属性（US V2） |\n| `d23bfec96065492ebe8290c6fe867a19` | `temu.local.product.variation.get` | `us_goods_variation.py` | 商品规格 Variation |\n| `37d470d8c6e149f78953311aa0b0296d` | `temu.local.goods.image.v2.upload` | `us_goods_image_upload.py` | 图片上传 V2 |\n\n文档：[product-publish-apis.md](./product-publish-apis.md)、[category-spec-apis.md](./category-spec-apis.md) §1–§2\n\n**推荐发品顺序**：`attributes.get` → `variation.get` → `image.v2.upload` → `goods.v2.add`\n\n---\n\n## B. 标准商品接口（15 个）\n\n同一 `menu_code` 下商品能力扩展接口（`sub_menu_code` 与 Partner 文档页一一对应）。\n\n### 商品查询\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `c313f7e3983f407d82d0f7cd88ab5c62` | `temu.goods.list.get` | `us_goods_list.py` | [product-query-apis.md](./product-query-apis.md) §1 |\n| `7ce116fe6b87443ba2a5320b25bf2b20` | `temu.goods.detail.get` | `us_goods_detail.py` | [product-query-apis.md](./product-query-apis.md) §2 |\n\n### 商品编辑\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `e93835a33b7a40ce8769fdf75561aff4` | `temu.goods.update` | `us_goods_update.py` | [product-edit-apis.md](./product-edit-apis.md) §1 |\n| `93fecd4d21fd441a8abcfc1497fa085e` | `temu.goods.edit.property` | `us_goods_edit_property.py` | [product-edit-apis.md](./product-edit-apis.md) §2 |\n| `fc3de2c8546a496d8a5be8d36953e1bd` | `temu.goods.edit.sensitive.attr` | `us_goods_edit_sensitive.py` | [product-edit-apis.md](./product-edit-apis.md) §3 |\n| `a8f8f3dca5ac4e2c8b9e7bc9d64704c8` | `temu.goods.migrate` | `us_goods_migrate.py` | [product-edit-apis.md](./product-edit-apis.md) §4 |\n\n### 类目、属性、规格、品牌\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `7f9ded1bfce7485798c3862467d5c30e` | `bg.goods.cats.get` | `us_goods_cats.py` | [category-spec-apis.md](./category-spec-apis.md) §3 |\n| `2b42b46f51c348b69bf8f69c5397279e` | `bg.goods.attrs.get` | `us_goods_attrs_bg.py` | [category-spec-apis.md](./category-spec-apis.md) §4 |\n| `8a6a6e8b14814d518fe8f004f35b2192` | `bg.glo.goods.parentspec.get` | `us_goods_parent_spec.py` | [category-spec-apis.md](./category-spec-apis.md) §5 |\n| `f8065a07b2d6441f9f33c2d808dcc593` | `bg.glo.goods.brand.get` | `us_goods_brand.py` | [category-spec-apis.md](./category-spec-apis.md) §6 |\n| `3f15de61844e4a989d042767a385d8f5` | `bg.goods.category.mapping` | `us_goods_category_mapping.py` | [category-spec-apis.md](./category-spec-apis.md) §7 |\n\n### 库存、价格、发品（非 V2）\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `d72b66d07b1f499bbd80720367e58e1f` | `bg.btg.goods.stock.quantity.get` | `us_goods_stock_get.py` | [stock-price-apis.md](./stock-price-apis.md) §1 |\n| `e84f651da04f4fedb85d37e375a4e2d8` | `bg.btg.goods.stock.quantity.update` | `us_goods_stock_update.py` | [stock-price-apis.md](./stock-price-apis.md) §2 |\n| `a084faecbad64d7f93c485378b5bd9bf` | `temu.goods.price.list.get` | `us_goods_price_list.py` | [stock-price-apis.md](./stock-price-apis.md) §3 |\n| `1b99296745854ae08d39a7bbe1e4f7a8` | `temu.goods.add` | `us_goods_add_legacy.py` | [product-publish-apis.md](./product-publish-apis.md) §3 |\n\n---\n\n## 站点与鉴权\n\n| 项 | 值 |\n|----|-----|\n| 默认 `site` | `us` |\n| 默认 `managementType` | `semi-managed` |\n| 默认 `tokenPurpose` | `product-inventory` |\n| LinkFox | `LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token` |\n| Temu | Body `accessToken` 或 `storeKey` |\n\n授权步骤见 `references/access-token.md`。\n\n---\n\n## 未封装接口\n\n`scripts/temu_us_proxy.py` 透传任意 `type`；加签文件下载用 `temu_us_file_download.py` → `/temu/fileDownload`。\n\n---\n\n## 参数文档索引\n\n| 文档 | 内容 |\n|------|------|\n| [api.md](./api.md) | 网关、鉴权、通用响应 |\n| [product-query-apis.md](./product-query-apis.md) | 列表、详情 |\n| [product-edit-apis.md](./product-edit-apis.md) | 更新、改属性、敏感品、迁移 |\n| [product-publish-apis.md](./product-publish-apis.md) | V2 发品、图片、legacy 发品 |\n| [category-spec-apis.md](./category-spec-apis.md) | V2 属性/规格 + 类目/品牌/映射 |\n| [stock-price-apis.md](./stock-price-apis.md) | 库存、供货价 |\n\nFile v1.0.5:references/product-edit-apis.md\n\n# 商品编辑 API — 参数参考\n\n经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 更新商品 — `temu.goods.update`\n\n- **sub_menu_code**：`e93835a33b7a40ce8769fdf75561aff4`\n- **脚本**：`scripts/us_goods_update.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| supplierId | integer | 是 | 供应商 ID |\n| productWhExtAttrReq | object | 是 | 仓配扩展 |\n| productWhExtAttrReq.productOrigin.region1ShortName | string | 是 | 产地一级区域二字码（如 `CN`、`US`） |\n| productWhExtAttrReq.productOrigin.region2Id | integer | 条件 | 省份 ID（`region1ShortName=CN` 时必填） |\n\n### 响应\n\n成功时 `success=true`，`result` 可为空对象。\n\n### 示例\n\n```bash\npython scripts/us_goods_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"supplierId\": 123,\n  \"productWhExtAttrReq\": {\n    \"productOrigin\": { \"region1ShortName\": \"CN\", \"region2Id\": 310000 }\n  }\n}'\n```\n\n---\n\n## 2. 编辑商品属性 — `temu.goods.edit.property`\n\n- **sub_menu_code**：`93fecd4d21fd441a8abcfc1497fa085e`\n- **脚本**：`scripts/us_goods_edit_property.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| productProperties | array | 是 | 属性列表 |\n\n#### `productProperties[]`\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| pid | integer | 是 | 属性 ID |\n| templatePid | integer | 是 | 模板属性 ID |\n| refPid | integer | 是 | 引用属性 ID |\n| vid | integer | 否 | 属性值 ID，无则传 0 |\n| propName | string | 是 | 属性名 |\n| propValue | string | 是 | 属性值 |\n| numberInputValue | string | 是 | 数值录入 |\n| valueUnit | string | 否 | 单位，无则空串 |\n\n### 示例\n\n```bash\npython scripts/us_goods_edit_property.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"productProperties\": [{\n    \"pid\": 1, \"templatePid\": 1, \"refPid\": 1,\n    \"vid\": 100, \"propName\": \"Material\", \"propValue\": \"Cotton\",\n    \"numberInputValue\": \"\", \"valueUnit\": \"\"\n  }]\n}'\n```\n\n---\n\n## 3. 编辑敏感品属性 — `temu.goods.edit.sensitive.attr`\n\n- **sub_menu_code**：`fc3de2c8546a496d8a5be8d36953e1bd`\n- **脚本**：`scripts/us_goods_edit_sensitive.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| skuReqList | array | 是 | SKU 敏感属性列表 |\n\n#### `skuReqList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuId | integer | 货品 SKU ID |\n| productSkuSensitiveAttrReq.isSensitive | integer | 0 非敏感，1 敏感 |\n| productSkuSensitiveAttrReq.sensitiveList | array | 敏感类型码（如纯电、内电、液体等） |\n| productSkuSensitiveLimitReq | object | 敏感限制（容量、刀长等），无限制可传 `{}` |\n\n### 示例\n\n```bash\npython scripts/us_goods_edit_sensitive.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"skuReqList\": [{\n    \"productSkuId\": 58224724203874,\n    \"productSkuSensitiveAttrReq\": { \"isSensitive\": 0, \"sensitiveList\": [] },\n    \"productSkuSensitiveLimitReq\": {}\n  }]\n}'\n```\n\n---\n\n## 4. 半托管货品迁移 — `temu.goods.migrate`\n\n- **sub_menu_code**：`a8f8f3dca5ac4e2c8b9e7bc9d64704c8`\n- **脚本**：`scripts/us_goods_migrate.py`\n- **用途**：同主体下将全托管店铺货品搬运至半托管。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| migrationList | array | 是 | 搬运列表 |\n\n#### `migrationList[]` 主要字段\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSemiManagedReq.bindSiteIds | array | 绑定站点 |\n| productSemiManagedReq.semiManagedSiteMode | integer | 半托管售卖模式 |\n| productWarehouseRouteReq.targetRouteList | array | 站点-仓路由 `{ siteIdList, warehouseId }` |\n| skcDetails | array | SKC/SKU 规格明细 |\n\n### 示例\n\n```bash\npython scripts/us_goods_migrate.py '{\n  \"accessToken\": \"TOKEN\",\n  \"migrationList\": [{ \"productSemiManagedReq\": { \"bindSiteIds\": [100] } }]\n}'\n```\n\nFile v1.0.5:references/product-publish-apis.md\n\n# 商品发布 API — 参数参考（V2 Recommended）\n\nPartner US 菜单：**Product > Add Products > Recommended V2 Interfaces**。  \n经 `POST /temu/proxy` 转发，网关与响应信封见 [api.md](./api.md)。\n\n发品前请先调用 [category-spec-apis.md](./category-spec-apis.md) 中的属性与规格接口，并完成图片上传。\n\n---\n\n## 1. 发布商品 V2 — `temu.local.goods.v2.add`\n\n- **Partner 文档分区**：`sub_menu_code=91657460a9be4a609df2eef01bc6deef`\n- **脚本**：`scripts/us_goods_add.py`\n- **用途**：在美国站创建新商品（V2 推荐发品接口）。与同族 `bg.local.goods.add`、`temu.goods.add` 载荷结构一致或为其超集。\n\n### 网关 Body\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | 默认 `us` |\n| managementType | string | 是 | 默认 `semi-managed` |\n| accessToken / storeKey | string | 是 | 二选一 |\n| tokenPurpose | string | 否 | 默认 `product-inventory` |\n| type | string | 是 | 固定 `temu.local.goods.v2.add` |\n| params | object | 是 | 发品载荷，见下文 |\n\n### 业务参数（`params`）— 顶层\n\n以下字段来自同族 `bg.local.goods.add` / `temu.goods.add` 发品模型；**具体必填项由类目属性接口返回的 `required` 决定**。\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsBasic | object | 是 | 商品基础信息（标题、类目、轮播图等） |\n| skuList | array | 是 | SKU 列表（价格、库存、规格、图片等） |\n| certificationInfo | object | 否 | 合规/认证（证书、GPSR、实拍图等，类目要求时必填） |\n| productPropertyReqs | array | 否 | 普通属性（亦可放在 `goodsBasic` 内，以官方字段为准） |\n| productSpecPropertyReqs | array | 否 | 销售规格属性 |\n| productSemiManagedReq | object | 否 | 半托管绑定站点等 |\n| productShipmentReq | object | 否 | 半托管配送/运费模板 |\n| addProductChannelType | integer | 是 | 发品渠道（同族接口必填） |\n\n#### `goodsBasic` 常见字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId / leafCatId | integer | 是 | 叶子类目 ID（或 cat1Id…cat10Id 逐级类目，与同族 `temu.goods.add` 一致） |\n| productName | string | 是 | 商品标题，通常 1–250 字符 |\n| carouselImageUrls | array | 是 | 轮播图 URL 列表（须先 `image.v2.upload`），常 ≥5 张 |\n| materialImgUrl | string | 否 | 素材图 URL |\n| carouselImageI18nReqs | array | 否 | 多语言轮播图（非服饰类常必填） |\n| productOuterPackageImageReqs | array | 否 | 外包装图 |\n| productOuterPackageReq | object | 否 | 外包装信息 |\n| productPropertyReqs | array | 是 | 类目属性值，元素见下表 |\n| productSpecPropertyReqs | array | 条件 | 多规格时的规格属性 |\n| productWhExtAttrReq | object | 是 | 仓配扩展（产地、重量体积等） |\n| productSaleExtAttrReq | object | 否 | 销售扩展 |\n| productSkcReqs | array | 是 | SKC 维度数据（含 SKU 列表） |\n| sizeTemplateIds | array | 否 | 尺码表模板 ID，无尺码传 `[]` |\n| showSizeTemplateIds | array | 否 | 展示用尺码表，至多 2 个 |\n| goodsModelReqs | array | 否 | 模特信息 |\n| productGuideFileReqs | array | 否 | 说明书文件 |\n| goodsLayerDecorationReqs | array | 否 | 商详装饰模块 |\n| personalizationSwitch | integer | 否 | 0 非定制品，1 定制品 |\n| productCarouseVideoReqList | array | 否 | 主图视频 |\n| materialMultiLanguages | array | 否 | 图片多语言 |\n| addProductChannelType | integer | 是 | 发品渠道 |\n\n#### `productPropertyReqs[]` 元素（发品回填属性）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| pid | integer | 属性 ID（来自 attributes.get） |\n| vid | integer | 属性值 ID |\n| propName | string | 属性名 |\n| propValue | string | 属性值文本 |\n| templatePid | integer | 模板属性 ID |\n| refPid | integer | 引用属性 ID |\n| numberInputValue | string | 数值录入 |\n| valueUnit | string | 单位 |\n\n#### `skuList[]` 元素（同族 `bg.local.goods.add`）\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| images | array | 是 | SKU 图片 URL 列表 |\n| quantity | integer | 是 | 库存数量 |\n| externalProductType | integer | 否 | 外部商品类型 |\n| supplierPrice / price | object | 条件 | 供货价（金额 + 币种） |\n| specIdList | array | 条件 | 规格 ID 列表（多规格） |\n| outSkuSn / extCode | string | 否 | 商家 SKU 编码 |\n| multiplePackage | object | 否 | 多件装：`numberOfPieces`、`individuallyPacked`、`skuClassification` 等 |\n\n#### `certificationInfo` 常见块（合规类目）\n\n| 块 | 说明 |\n|----|------|\n| certificateInfo | 证书类型、文件 URL、authCode 等 |\n| extraTemplate | 合规模板扩展字段 |\n| actualPhoto | 实拍图（`skuPhotoInfoList`、`position`） |\n| gpsrInfo | 欧盟 GPSR：制造商、责任人 |\n| repInfo | 代表信息 |\n\n完整嵌套字段以 Partner 后台 **Add Product V2** 文档为准；上表覆盖 EU 同族 `bg.local.goods.add` 公开示例中的主要块。\n\n### 响应（`result` 常见结构）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 新建货品 ID |\n| goodsId | integer | 商品 ID（部分接口命名） |\n| productSkcList | array | `{ productSkcId }` |\n| productSkuList | array | `{ productSkuId, productSkcId, extCode, skuSpecList[] }` |\n\n### 示例\n\n```bash\npython scripts/us_goods_add.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": {\n    \"goodsBasic\": {\n      \"catId\": 12345,\n      \"productName\": \"Example Product\",\n      \"carouselImageUrls\": [\"https://...\"],\n      \"productPropertyReqs\": [{ \"pid\": 1, \"vid\": 100 }],\n      \"addProductChannelType\": 0\n    },\n    \"skuList\": [{\n      \"images\": [\"https://...\"],\n      \"quantity\": 99,\n      \"supplierPrice\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n    }]\n  }\n}'\n```\n\n---\n\n## 2. 商品图片上传 V2 — `temu.local.goods.image.v2.upload`\n\n- **Partner 文档分区**：`sub_menu_code=37d470d8c6e149f78953311aa0b0296d`\n- **脚本**：`scripts/us_goods_image_upload.py`\n- **用途**：上传商品图片（Base64），返回可用于 `goods.v2.add` 的 URL。与同族 `bg.goods.image.upload.global` 一致。\n\n### 网关 Body\n\n网关字段同 §1，`type` 固定为 `temu.local.goods.image.v2.upload`。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| image | string | 是 | 图片 **Base64**（支持 jpg/jpeg、png 等） |\n| imageBizType | integer | 否 | `0` 默认；`1` 外包装专用 URL |\n| options | object | 否 | 裁剪/增强选项，见下表 |\n\n#### `options`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| boost | boolean | 是否 AI 清晰度提升 |\n| doIntelligenceCrop | boolean | 是否智能裁剪（true 时可能返回 1 原图 + 3 裁剪图） |\n| cateId | integer | 叶子类目 ID（`doIntelligenceCrop=true` 时生效） |\n| sizeMode | integer | `0` 原图；`1` 800×800；`2` 1350×1800 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| imageUrl | string | 原图链接 |\n| url | string | 单张 AI 裁图链接 |\n| urls | array | 多张 AI 裁图链接 |\n\n将 `imageUrl` 或 `urls[]` 填入 `goods.v2.add` 的 `carouselImageUrls`、`skuList[].images`、`materialImgUrl` 等。\n\n### 示例\n\n```bash\npython scripts/us_goods_image_upload.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": {\n    \"image\": \"<BASE64>\",\n    \"options\": {\n      \"doIntelligenceCrop\": true,\n      \"cateId\": 12345,\n      \"sizeMode\": 1\n    }\n  }\n}'\n```\n\n### 网关响应示例（结构）\n\n```json\n{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"result\\\":{\\\"imageUrl\\\":\\\"https://...\\\",\\\"url\\\":\\\"https://...\\\",\\\"urls\\\":[\\\"https://...\\\"]}}\"\n}\n```\n\n---\n\n## 3. 发布商品（半托管/跨境）— `temu.goods.add`\n\n- **sub_menu_code**：`1b99296745854ae08d39a7bbe1e4f7a8`\n- **脚本**：`scripts/us_goods_add_legacy.py`\n- **说明**：非 V2 发品接口；美国站 Partner US 发品优先用 **§1** `temu.local.goods.v2.add`。载荷与同族 `temu.goods.add` 一致。\n\n### 业务参数（`params`）\n\n与 [§1](#1-发布商品-v2--temulocalgoodsv2add) 类似，主要块包括：\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cat1Id … cat10Id | integer | 是 | 各级类目（至少到叶子） |\n| productName | string | 是 | 商品标题 |\n| carouselImageUrls | array | 是 | 轮播图 URL，通常 ≥5 张 |\n| productPropertyReqs | array | 是 | 类目属性 |\n| productSkcReqs | array | 是 | SKC/SKU 结构 |\n| addProductChannelType | integer | 是 | 发品渠道 |\n\n完整字段见 §1 `goodsBasic` / `skuList` 说明。\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 新建货品 ID |\n| productSkcList | array | `{ productSkcId }` |\n| productSkuList | array | `{ productSkuId, extCode, skuSpecList }` |\n\n### 示例\n\n```bash\npython scripts/us_goods_add_legacy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"params\": { \"...\": \"同 temu.goods.add 文档结构\" }\n}'\n```\n\n---\n\n## 相关文档\n\n- [类目属性与规格](./category-spec-apis.md)\n- [商品查询](./product-query-apis.md)\n- [商品编辑](./product-edit-apis.md)\n- [API 调用规范](./api.md)\n- [接口目录](./partner-us-catalog.md)\n\nFile v1.0.5:references/product-query-apis.md\n\n# 商品查询 API — 参数参考\n\nPartner US 菜单 **Product**（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）。经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 商品列表查询 — `temu.goods.list.get`\n\n- **sub_menu_code**：`c313f7e3983f407d82d0f7cd88ab5c62`\n- **脚本**：`scripts/us_goods_list.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | integer | 是 | 页码，从 1 起 |\n| pageSize | integer | 是 | 每页条数 |\n| productName | string | 否 | 货品名称（模糊） |\n| productSkcIds | array | 否 | SKC ID 列表 |\n| skcExtCode | string | 否 | SKC 外部编码 |\n| skuExtCodes | array | 否 | SKU 货号列表 |\n| cat1Id … cat10Id | integer | 否 | 各级类目 ID 筛选 |\n| bindSiteIds | array | 否 | 经营站点 ID 列表 |\n| skcSiteStatus | integer | 否 | SKC 加站点状态：0 未加入，1 已加入 |\n| matchJitMode | boolean | 否 | 是否 JIT 模式 |\n| quickSellAgtSignStatus | integer | 否 | 快速售卖协议：0 未签，1 已签 |\n| supportPersonalization | integer | 否 | 是否支持定制品 |\n| createdAtStart | string | 否 | 创建时间起（`YYYY-MM-DD HH:mm:ss`） |\n| createdAtEnd | string | 否 | 创建时间止 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| data | array | 商品列表，元素见 `entity.Goods` |\n| totalCount | integer | 总条数 |\n\n#### `data[]` 主要字段\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productSkcId | integer | SKC ID |\n| productName | string | 货品名称 |\n| extCode | string | SKC 外部编码 |\n| mainImageUrl | string | 主图 |\n| leafCat | object | 叶子类目 `{ catId, catName }` |\n| skcSiteStatus | integer | 站点上架状态 |\n| productSkuSummaries | array | SKU 摘要（库存、规格等） |\n\n### 示例\n\n```bash\npython scripts/us_goods_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"page\": 1,\n  \"pageSize\": 20\n}'\n```\n\n---\n\n## 2. 商品详情查询 — `temu.goods.detail.get`\n\n- **sub_menu_code**：`7ce116fe6b87443ba2a5320b25bf2b20`\n- **脚本**：`scripts/us_goods_detail.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productName | string | 商品名称 |\n| categories | object | 类目树 cat1…cat10、leafCat |\n| goodsLayerDecorationList | array | 商详装饰楼层 |\n| productWhExtAttr | object | 仓配扩展（如产地 `productOrigin`） |\n\n### 示例\n\n```bash\npython scripts/us_goods_detail.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112\n}'\n```\n\nFile v1.0.5:references/stock-price-apis.md\n\n# 库存与价格 API — 参数参考\n\n经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 虚拟库存查询 — `bg.btg.goods.stock.quantity.get`\n\n- **sub_menu_code**：`d72b66d07b1f499bbd80720367e58e1f`\n- **脚本**：`scripts/us_goods_stock_get.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productSkcId | integer | 是 | 货品 SKC ID |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| total | integer | 条数 |\n| productSkuStockList | array | SKU 库存列表 |\n\n#### `productSkuStockList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuId | integer | SKU ID |\n| skuStockQuantity | integer | 虚拟库存（不可查看时为 null） |\n| warehouseId | string | 仓库 ID（欧区可分仓） |\n| shippingMode | integer | 1 卖家自发货，2 认证仓 |\n| tempLockQuantity | integer | 未支付锁定库存 |\n\n### 示例\n\n```bash\npython scripts/us_goods_stock_get.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productSkcId\": 123456789\n}'\n```\n\n---\n\n## 2. 虚拟库存更新 — `bg.btg.goods.stock.quantity.update`\n\n- **sub_menu_code**：`e84f651da04f4fedb85d37e375a4e2d8`\n- **脚本**：`scripts/us_goods_stock_update.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| quantityChangeMode | integer | 是 | `1` 增减变更；`2` 覆盖变更（默认 1） |\n| productSkcId | integer | 否 | SKC ID |\n| skuStockChangeList | array | 是 | 库存调整项 |\n\n#### `skuStockChangeList[]`\n\n| 字段 | 类型 | 条件 | 说明 |\n|------|------|------|------|\n| productSkuId | integer | 是 | SKU ID |\n| warehouseId | string | 是 | 发货仓 ID |\n| stockDiff | integer | mode=1 | 增减量（正增负减） |\n| targetStockAvailable | integer | mode=2 | 覆盖后的目标库存（≥0） |\n| currentShippingMode | integer | 否 | 当前发货模式 |\n| currentStockAvailable | integer | 否 | 当前库存 |\n\n### 示例\n\n```bash\npython scripts/us_goods_stock_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"quantityChangeMode\": 1,\n  \"skuStockChangeList\": [{\n    \"productSkuId\": 58224724203874,\n    \"warehouseId\": \"WH001\",\n    \"stockDiff\": 10\n  }]\n}'\n```\n\n---\n\n## 3. 供货价列表 — `temu.goods.price.list.get`\n\n- **sub_menu_code**：`a084faecbad64d7f93c485378b5bd9bf`\n- **脚本**：`scripts/us_goods_price_list.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productSkuIds | array | 是 | 货品 SKU ID 列表 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuSupplierPriceList | array | 供货价列表 |\n\n#### `productSkuSupplierPriceList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productSkcId | integer | SKC ID |\n| productSkuId | integer | SKU ID |\n| supplierPrice | number | 供货价 |\n| currencyType | string/number | 币种 |\n| siteSupplierPrices | array | 分站点供货价（半托管） |\n\n### 示例\n\n```bash\npython scripts/us_goods_price_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productSkuIds\": [58224724203874, 58224724203875]\n}'\n```\n\nArchive v1.0.4: 45 files, 47898 bytes\n\nFiles: references/access-token.md (4527b), references/api.md (5567b), references/authorization-flow.md (1186b), references/category-spec-apis.md (9759b), references/partner-us-catalog.md (4992b), references/product-edit-apis.md (4208b), references/product-publish-apis.md (9358b), references/product-query-apis.md (2784b), references/stock-price-apis.md (3187b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12429b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3209b), scripts/_us_product_script.py (444b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (719b), scripts/temu_us_proxy.py (899b), scripts/us_goods_add_legacy.py (244b), scripts/us_goods_add.py (218b), scripts/us_goods_attrs_bg.py (217b), scripts/us_goods_attrs.py (227b), scripts/us_goods_brand.py (202b), scripts/us_goods_category_mapping.py (297b), scripts/us_goods_cats.py (191b), scripts/us_goods_detail.py (198b), scripts/us_goods_edit_property.py (217b), scripts/us_goods_edit_sensitive.py (233b), scripts/us_goods_image_upload.py (251b), scripts/us_goods_list.py (198b), scripts/us_goods_migrate.py (220b), scripts/us_goods_parent_spec.py (218b), scripts/us_goods_price_list.py (220b), scripts/us_goods_stock_get.py (233b), scripts/us_goods_stock_update.py (242b), scripts/us_goods_update.py (190b), scripts/us_goods_variation.py (248b), skill-card.md (2880b), SKILL.md (6670b), _meta.json (146b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: linkfox-temu-add-product-us\ndescription: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。\n---\n\n# Temu 美国站发品 API（Partner US）\n\n本 skill（`linkfox-temu-add-product-us`）覆盖 Partner Platform for US **Product** 菜单（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）下 **19 个商品接口**：**4 个 V2 推荐发品** + **15 个标准商品 API**（查询、编辑、类目、库存、价格等）。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 网关路径 |\n|------|------|----------|\n| 商品 OpenAPI（全部 `us_goods_*`、`temu_us_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载（`temu_us_file_download`） | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n商品 `type` 写在 Body，**不是** URL 路径。\n\n> **不是订单 skill**：订单、发货、物流见 `linkfox-temu-order-us` 或其它履约类 skill。\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/linkfox-temu-add-product-us-<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 | `us` | Partner US |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose（storeKey） | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts\n\n### V2 推荐发品\n\n| 脚本 | type |\n|------|------|\n| `us_goods_attrs.py` | `temu.local.product.attributes.get` |\n| `us_goods_variation.py` | `temu.local.product.variation.get` |\n| `us_goods_image_upload.py` | `temu.local.goods.image.v2.upload` |\n| `us_goods_add.py` | `temu.local.goods.v2.add` |\n\n### 查询 / 编辑 / 类目 / 库存\n\n| 脚本 | type |\n|------|------|\n| `us_goods_list.py` | `temu.goods.list.get` |\n| `us_goods_detail.py` | `temu.goods.detail.get` |\n| `us_goods_update.py` | `temu.goods.update` |\n| `us_goods_edit_property.py` | `temu.goods.edit.property` |\n| `us_goods_edit_sensitive.py` | `temu.goods.edit.sensitive.attr` |\n| `us_goods_migrate.py` | `temu.goods.migrate` |\n| `us_goods_cats.py` | `bg.goods.cats.get` |\n| `us_goods_attrs_bg.py` | `bg.goods.attrs.get` |\n| `us_goods_parent_spec.py` | `bg.glo.goods.parentspec.get` |\n| `us_goods_brand.py` | `bg.glo.goods.brand.get` |\n| `us_goods_category_mapping.py` | `bg.goods.category.mapping` |\n| `us_goods_stock_get.py` | `bg.btg.goods.stock.quantity.get` |\n| `us_goods_stock_update.py` | `bg.btg.goods.stock.quantity.update` |\n| `us_goods_price_list.py` | `temu.goods.price.list.get` |\n| `us_goods_add_legacy.py` | `temu.goods.add` |\n| `temu_us_proxy.py` | 任意 `type` |\n| `temu_us_file_download.py` | 加签文件下载 |\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 商品列表\npython scripts/us_goods_list.py '{\"accessToken\":\"TOKEN\",\"page\":1,\"pageSize\":20}'\n\n# 类目映射\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\":\"TOKEN\",\n  \"goodsName\":\"测试商品\",\n  \"goodsNameEn\":\"Test Product\"\n}'\n\n# V2 发品流程\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\npython scripts/us_goods_image_upload.py '{\"accessToken\":\"TOKEN\",\"params\":{\"image\":\"<BASE64>\"}}'\npython scripts/us_goods_add.py '{\"accessToken\":\"TOKEN\",\"params\":{\"...\"}}'\n```\n\n**Feedback：** `skillName`：`linkfox-temu-add-product-us`\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:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-add-product-us\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1783945714749\n}\n\nFile v1.0.4: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）（如未配置 按 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=us` / `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-us.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-add-product-us — API 参考\r\n\r\nTemu **美国站商品发布**（Partner US **Product > Add Products > Recommended V2 Interfaces**），经本 skill `temu_us_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}`（可用 `LINKFOX_TOOL_GATEWAY` / `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 商品 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或环境变量 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token` / `linkfoxToken`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（由网关按 `site` 解析，调用方勿直连） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `us`（本 skill 默认）；半托跨境发品偶用 `cn` / `partner` |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌，最长约 8192 |\r\n| storeKey | string | 与 accessToken 二选一 | 本地 `~/.linkfox/temu-access-tokens.json` 中的店铺键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory`（酷鸟卖家助手） |\r\n| type | string | 是 | Temu 接口名，如 `temu.local.goods.v2.add` |\r\n| params | object | 否 | 业务参数，结构见下文各接口文档 |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON **字符串**；脚本会尽量解析为 `temuBody` |\r\n| code | integer | 网关错误码（非 Temu 业务码），如 `1002` 参数/用户 Token 无效，`1003` 转发失败 |\r\n\r\n解析顺序：**先看网关 `code`/`message`** → 再 `JSON.parse(body)` → 读 Temu 层 `success`、`errorCode`、`errorMsg`、`result`。\r\n\r\n### Temu 业务响应信封（`body` 解析后）\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| success | boolean | 是否成功 |\r\n| errorCode | integer | 业务错误码；`1000000` 或 `0` 常表示成功（以实网为准） |\r\n| errorMsg | string | 错误说明，成功时多为空 |\r\n| requestId | string | 请求追踪 ID |\r\n| result | object | 业务数据，结构因 `type` 而异 |\r\n\r\n### curl 示例（经网关）\r\n\r\n```bash\r\ncurl -X POST https://tool-gateway.linkfox.com/temu/proxy \\\r\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Token: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\r\n    \"site\": \"us\",\r\n    \"managementType\": \"semi-managed\",\r\n    \"accessToken\": \"TEMU_PRODUCT_TOKEN\",\r\n    \"type\": \"temu.local.product.attributes.get\",\r\n    \"params\": { \"catId\": 12345 }\r\n  }'\r\n```\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；脚本会通过 `extract_business_params` 提取后写入网关 Body 的 `params`。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n共 **19** 个商品接口（4 V2 + 15 标准），完整 `sub_menu_code` 对照见 [partner-us-catalog.md](./partner-us-catalog.md)。\r\n\r\n| 分组 | 文档 |\r\n|------|------|\r\n| 查询（list / detail） | [product-query-apis.md](./product-query-apis.md) |\r\n| 编辑（update / property / sensitive / migrate） | [product-edit-apis.md](./product-edit-apis.md) |\r\n| 发品 V2 + 图片 + legacy add | [product-publish-apis.md](./product-publish-apis.md) |\r\n| 类目 / 属性 / 规格 / 品牌 / 映射 | [category-spec-apis.md](./category-spec-apis.md) |\r\n| 库存 / 供货价 | [stock-price-apis.md](./stock-price-apis.md) |\r\n\r\n---\r\n\r\n## 推荐 V2 发品流程\r\n\r\n```text\r\n1. temu.local.product.attributes.get   → catId 拉属性模板\r\n2. temu.local.product.variation.get    → catId 拉规格\r\n3. temu.local.goods.image.v2.upload    → 上传图片\r\n4. temu.local.goods.v2.add             → 提交商品\r\n```\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 `accessToken`、白名单、网络；可退避重试 |\r\n| 402 | HTTP 402 | 按 SKILL.md 的 **## 解决认证和积分问题** 处理。 |\r\n\r\nTemu 业务层 `errorCode` / `errorMsg` 在 `body` 内，需结合 `success` 判断。\r\n\r\n---\r\n\r\n## Feedback API\r\n\r\n与工具网关分离，勿混用 Base URL。\r\n\r\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\r\n- **Content-Type:** `application/json`\r\n\r\n```json\r\n{\r\n  \"skillName\": \"linkfox-temu-add-product-us\",\r\n  \"sentiment\": \"POSITIVE\",\r\n  \"category\": \"OTHER\",\r\n  \"content\": \"Results were accurate, user was satisfied.\"\r\n}\r\n```\r\n\r\n- `skillName`: **`linkfox-temu-add-product-us`**\r\n- `sentiment`: `POSITIVE` | `NEUTRAL` | `NEGATIVE`\r\n- `category`: `BUG` | `COMPLAINT` | `SUGGESTION` | `OTHER`\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/category-spec-apis.md\n\n# 类目、属性与规格 API — 参数参考\n\nPartner US 菜单 **Product**（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）。经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n- **§1–§2**：Add Products **V2 Recommended**（`temu.local.*`）\n- **§3–§7**：标准商品类目/属性/规格/品牌/映射接口\n\n---\n\n## 1. 获取类目属性模板 — `temu.local.product.attributes.get`\n\n- **Partner 文档分区**：`sub_menu_code=1ecd9ad752a14d5e9f5297edfd6c8848`\n- **脚本**：`scripts/us_goods_attrs.py`\n- **用途**：按**叶子类目 ID** 获取发品所需属性模板（必填/选填、控件类型、属性值列表等）。发品前必须先调用。\n\n### 网关 Body\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | 默认 `us` |\n| managementType | string | 是 | 默认 `semi-managed` |\n| accessToken / storeKey | string | 是 | 二选一 |\n| tokenPurpose | string | 否 | 默认 `product-inventory` |\n| type | string | 是 | 固定 `temu.local.product.attributes.get` |\n| params | object | 是 | 见下表 |\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | **叶子类目 ID**（须选到最细子类目，与同族 `bg.goods.attrs.get` 一致） |\n\n### 响应（`result` 常见结构）\n\n与同族 `bg.goods.attrs.get` 返回的类目属性模板一致，顶层字段示例：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| inputMaxSpecNum | integer | 允许的自定义规格数量上限 |\n| chooseAllQualifySpec | boolean | 限定规格是否须全选 |\n| singleSpecValueNum | integer | 单个自定义规格值数量上限 |\n| properties | array | 属性模板列表，见下表 |\n\n#### `properties[]` 元素\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| pid | integer | 基础属性 ID |\n| templatePid | integer | 模板属性 ID |\n| refPid | integer | 引用属性 ID |\n| name | string | 属性名称 |\n| lang2Name | string | 第二语言名称 |\n| required | boolean | 是否必填 |\n| isSale | boolean | 是否销售属性（规格维度） |\n| mainSale | integer | 是否主销售属性 |\n| controlType | integer | 控件类型（输入/勾选/时间/尺码选择器等） |\n| propertyValueType | integer | 属性值类型（文本/数值/日期等） |\n| valueRule | integer | 数值规则 |\n| chooseMaxNum | integer | 最大可勾选数 |\n| inputMaxNum | integer | 最大可输入数；0 表示不可输入 |\n| valuePrecision | integer | 小数精度；0 表示不允许小数 |\n| maxValue | string | 输入上限 |\n| valueUnit | array | 属性值单位列表 |\n| parentSpecId | integer | 父规格 ID（销售属性相关） |\n| parentTemplatePid | integer | 模板父属性 ID |\n| values | array | 可选属性值，见下表 |\n| showCondition | array | 按父属性展示条件 `{ parentRefPid, parentVids[] }` |\n\n#### `properties[].values[]` 元素\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| vid | integer | 属性值 ID（发品时填入 `productPropertyReqs`） |\n| value | string | 展示值 |\n| specId | integer | 规格 ID（部分销售属性） |\n| group | string | 分组 |\n| extendInfo | string | 扩展信息 |\n| parentVidList | array | 父属性值 ID 列表 |\n\n### 示例\n\n```bash\npython scripts/us_goods_attrs.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'\n```\n\n### 网关响应示例（结构）\n\n```json\n{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"errorMsg\\\":\\\"\\\",\\\"requestId\\\":\\\"us-xxx\\\",\\\"result\\\":{\\\"inputMaxSpecNum\\\":2,\\\"properties\\\":[{\\\"pid\\\":1,\\\"name\\\":\\\"Color\\\",\\\"required\\\":true,\\\"isSale\\\":true,\\\"values\\\":[{\\\"vid\\\":100,\\\"value\\\":\\\"Red\\\"}]}]}}\"\n}\n```\n\n---\n\n## 2. 获取商品规格 — `temu.local.product.variation.get`\n\n- **Partner 文档分区**：`sub_menu_code=d23bfec96065492ebe8290c6fe867a19`\n- **脚本**：`scripts/us_goods_variation.py`\n- **用途**：获取指定类目支持的 **Variation / 规格维度**（如颜色、尺码）及可选值，供 `temu.local.goods.v2.add` 组装 `productSpecPropertyReqs` / `skuList`。\n\n### 网关 Body\n\n网关字段同 §1，`type` 固定为 `temu.local.product.variation.get`。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | 叶子类目 ID |\n\n> 若官方文档另有 `parentSpecId`、`siteId` 等字段，按 Partner 后台该接口说明追加；多数场景仅需 `catId`。\n\n### 响应（`result` 常见结构）\n\n与同族规格查询接口一致，常见为「父规格 + 子规格值」或「可售规格维度列表」：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecList / variationList / specList | array | 规格维度列表（命名以实网为准） |\n\n#### 规格维度元素（典型）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecId | integer | 父规格 ID |\n| parentSpecName | string | 父规格名称（如 Color、Size） |\n| specId | integer | 子规格/规格值 ID |\n| specName | string | 规格值名称 |\n| values | array | 可选规格值列表 `{ specId, specName }` |\n\n多规格发品时，SKU 的 `skuSpecList` 需引用此处返回的 `specId` / `parentSpecId`。\n\n### 示例\n\n```bash\npython scripts/us_goods_variation.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'\n```\n\n---\n\n## 3. 商品类目树 — `bg.goods.cats.get`\n\n- **sub_menu_code**：`7f9ded1bfce7485798c3862467d5c30e`\n- **脚本**：`scripts/us_goods_cats.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| siteId | integer | 是 | 站点 ID，当前固定传 `1` |\n| parentCatId | integer | 否 | 父类目 ID，查顶级类目可不传 |\n| showHidden | boolean | 否 | 是否展示隐藏类目，默认 false |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| categoryDTOList | array | 类目列表 |\n\n#### `categoryDTOList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| catId | integer | 类目 ID |\n| catName | string | 类目名称 |\n| catLevel | integer | 层级 |\n| parentCatId | integer | 父类目 ID |\n| isLeaf | boolean | 是否叶子类目 |\n| catType | integer | 1=服饰，其它=非服饰 |\n| isHidden | boolean | 是否隐藏 |\n\n### 示例\n\n```bash\npython scripts/us_goods_cats.py '{\n  \"accessToken\": \"TOKEN\",\n  \"parentCatId\": 0,\n  \"showHidden\": false\n}'\n```\n\n---\n\n## 4. 类目属性模板（跨境 type）— `bg.goods.attrs.get`\n\n- **sub_menu_code**：`2b42b46f51c348b69bf8f69c5397279e`\n- **脚本**：`scripts/us_goods_attrs_bg.py`\n- **说明**：与 §1 `temu.local.product.attributes.get` 返回结构相同，**type 不同**；半托管跨境发品常用此 type。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId | integer | 是 | 叶子类目 ID |\n\n响应字段见 **§1** `properties[]` 表。\n\n### 示例\n\n```bash\npython scripts/us_goods_attrs_bg.py '{\n  \"accessToken\": \"TOKEN\",\n  \"catId\": 12345\n}'\n```\n\n---\n\n## 5. 父规格列表 — `bg.glo.goods.parentspec.get`\n\n- **sub_menu_code**：`8a6a6e8b14814d518fe8f004f35b2192`\n- **脚本**：`scripts/us_goods_parent_spec.py`\n- **说明**：无业务入参，返回平台支持的父规格维度。\n\n### 业务参数（`params`）\n\n无，传 `{}` 即可。\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecDTOS | array | 父规格列表 |\n\n#### `parentSpecDTOS[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| parentSpecId | integer | 父规格 ID |\n| parentSpecName | string | 父规格名称 |\n\n### 示例\n\n```bash\npython scripts/us_goods_parent_spec.py '{\"accessToken\": \"TOKEN\"}'\n```\n\n---\n\n## 6. 可绑定品牌 — `bg.glo.goods.brand.get`\n\n- **sub_menu_code**：`f8065a07b2d6441f9f33c2d808dcc593`\n- **脚本**：`scripts/us_goods_brand.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | integer | 是 | 页码 |\n| pageSize | integer | 是 | 每页条数 |\n| vid | integer | 否 | 搜索的属性 ID |\n| BrandName | string | 否 | 品牌名称（注意大小写） |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| total | integer | 总数 |\n| pageItems | array | 品牌列表 |\n\n#### `pageItems[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| brandId | integer | 品牌 ID |\n| brandNameEn | string | 品牌英文名 |\n| pid | integer | 基础属性值 ID |\n| vid | integer | 属性值 ID |\n| regSerialCode | string | 注册序列号 |\n\n### 示例\n\n```bash\npython scripts/us_goods_brand.py '{\n  \"accessToken\": \"TOKEN\",\n  \"page\": 1,\n  \"pageSize\": 20,\n  \"BrandName\": \"Nike\"\n}'\n```\n\n---\n\n## 7. 商品类目映射 — `bg.goods.category.mapping`\n\n- **sub_menu_code**：`3f15de61844e4a989d042767a385d8f5`\n- **脚本**：`scripts/us_goods_category_mapping.py`\n- **用途**：根据中英文商品名推荐类目。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsName | string | 是 | 商品中文名 |\n| goodsNameEn | string | 是 | 商品英文名 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| categoryId | integer | 推荐类目 ID（字段名以实网为准，亦可能为 `catId`） |\n\n### 示例\n\n```bash\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\": \"TOKEN\",\n  \"goodsName\": \"测试商品\",\n  \"goodsNameEn\": \"Test Product\"\n}'\n```\n\n---\n\n## 相关文档\n\n- [商品发布](./product-publish-apis.md)\n- [商品查询](./product-query-apis.md)\n- [商品编辑](./product-edit-apis.md)\n- [库存与价格](./stock-price-apis.md)\n- [API 调用规范](./api.md)\n- [接口目录](./partner-us-catalog.md)\n\nFile v1.0.4:references/partner-us-catalog.md\n\n# Partner US — 商品（Product）API 目录\n\n**平台**：Partner Platform for US（`site=us`）  \n**菜单**：`Product`（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）  \n**网关**：`POST https://tool-gateway.linkfox.com/temu/proxy`\n\n---\n\n## A. Add Products — Recommended V2（4 个）\n\n菜单路径：**Product > Add Products > Recommended V2 Interfaces**\n\n| sub_menu_code | type | 脚本 | 说明 |\n|---------------|------|------|------|\n| `91657460a9be4a609df2eef01bc6deef` | `temu.local.goods.v2.add` | `us_goods_add.py` | 发布商品 V2 |\n| `1ecd9ad752a14d5e9f5297edfd6c8848` | `temu.local.product.attributes.get` | `us_goods_attrs.py` | 类目属性（US V2） |\n| `d23bfec96065492ebe8290c6fe867a19` | `temu.local.product.variation.get` | `us_goods_variation.py` | 商品规格 Variation |\n| `37d470d8c6e149f78953311aa0b0296d` | `temu.local.goods.image.v2.upload` | `us_goods_image_upload.py` | 图片上传 V2 |\n\n文档：[product-publish-apis.md](./product-publish-apis.md)、[category-spec-apis.md](./category-spec-apis.md) §1–§2\n\n**推荐发品顺序**：`attributes.get` → `variation.get` → `image.v2.upload` → `goods.v2.add`\n\n---\n\n## B. 标准商品接口（15 个）\n\n同一 `menu_code` 下商品能力扩展接口（`sub_menu_code` 与 Partner 文档页一一对应）。\n\n### 商品查询\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `c313f7e3983f407d82d0f7cd88ab5c62` | `temu.goods.list.get` | `us_goods_list.py` | [product-query-apis.md](./product-query-apis.md) §1 |\n| `7ce116fe6b87443ba2a5320b25bf2b20` | `temu.goods.detail.get` | `us_goods_detail.py` | [product-query-apis.md](./product-query-apis.md) §2 |\n\n### 商品编辑\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `e93835a33b7a40ce8769fdf75561aff4` | `temu.goods.update` | `us_goods_update.py` | [product-edit-apis.md](./product-edit-apis.md) §1 |\n| `93fecd4d21fd441a8abcfc1497fa085e` | `temu.goods.edit.property` | `us_goods_edit_property.py` | [product-edit-apis.md](./product-edit-apis.md) §2 |\n| `fc3de2c8546a496d8a5be8d36953e1bd` | `temu.goods.edit.sensitive.attr` | `us_goods_edit_sensitive.py` | [product-edit-apis.md](./product-edit-apis.md) §3 |\n| `a8f8f3dca5ac4e2c8b9e7bc9d64704c8` | `temu.goods.migrate` | `us_goods_migrate.py` | [product-edit-apis.md](./product-edit-apis.md) §4 |\n\n### 类目、属性、规格、品牌\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `7f9ded1bfce7485798c3862467d5c30e` | `bg.goods.cats.get` | `us_goods_cats.py` | [category-spec-apis.md](./category-spec-apis.md) §3 |\n| `2b42b46f51c348b69bf8f69c5397279e` | `bg.goods.attrs.get` | `us_goods_attrs_bg.py` | [category-spec-apis.md](./category-spec-apis.md) §4 |\n| `8a6a6e8b14814d518fe8f004f35b2192` | `bg.glo.goods.parentspec.get` | `us_goods_parent_spec.py` | [category-spec-apis.md](./category-spec-apis.md) §5 |\n| `f8065a07b2d6441f9f33c2d808dcc593` | `bg.glo.goods.brand.get` | `us_goods_brand.py` | [category-spec-apis.md](./category-spec-apis.md) §6 |\n| `3f15de61844e4a989d042767a385d8f5` | `bg.goods.category.mapping` | `us_goods_category_mapping.py` | [category-spec-apis.md](./category-spec-apis.md) §7 |\n\n### 库存、价格、发品（非 V2）\n\n| sub_menu_code | type | 脚本 | 文档 |\n|---------------|------|------|------|\n| `d72b66d07b1f499bbd80720367e58e1f` | `bg.btg.goods.stock.quantity.get` | `us_goods_stock_get.py` | [stock-price-apis.md](./stock-price-apis.md) §1 |\n| `e84f651da04f4fedb85d37e375a4e2d8` | `bg.btg.goods.stock.quantity.update` | `us_goods_stock_update.py` | [stock-price-apis.md](./stock-price-apis.md) §2 |\n| `a084faecbad64d7f93c485378b5bd9bf` | `temu.goods.price.list.get` | `us_goods_price_list.py` | [stock-price-apis.md](./stock-price-apis.md) §3 |\n| `1b99296745854ae08d39a7bbe1e4f7a8` | `temu.goods.add` | `us_goods_add_legacy.py` | [product-publish-apis.md](./product-publish-apis.md) §3 |\n\n---\n\n## 站点与鉴权\n\n| 项 | 值 |\n|----|-----|\n| 默认 `site` | `us` |\n| 默认 `managementType` | `semi-managed` |\n| 默认 `tokenPurpose` | `product-inventory` |\n| LinkFox | `LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token` |\n| Temu | Body `accessToken` 或 `storeKey` |\n\n授权步骤见 `references/access-token.md`。\n\n---\n\n## 未封装接口\n\n`scripts/temu_us_proxy.py` 透传任意 `type`；加签文件下载用 `temu_us_file_download.py` → `/temu/fileDownload`。\n\n---\n\n## 参数文档索引\n\n| 文档 | 内容 |\n|------|------|\n| [api.md](./api.md) | 网关、鉴权、通用响应 |\n| [product-query-apis.md](./product-query-apis.md) | 列表、详情 |\n| [product-edit-apis.md](./product-edit-apis.md) | 更新、改属性、敏感品、迁移 |\n| [product-publish-apis.md](./product-publish-apis.md) | V2 发品、图片、legacy 发品 |\n| [category-spec-apis.md](./category-spec-apis.md) | V2 属性/规格 + 类目/品牌/映射 |\n| [stock-price-apis.md](./stock-price-apis.md) | 库存、供货价 |\n\nFile v1.0.4:references/product-edit-apis.md\n\n# 商品编辑 API — 参数参考\n\n经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 更新商品 — `temu.goods.update`\n\n- **sub_menu_code**：`e93835a33b7a40ce8769fdf75561aff4`\n- **脚本**：`scripts/us_goods_update.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| supplierId | integer | 是 | 供应商 ID |\n| productWhExtAttrReq | object | 是 | 仓配扩展 |\n| productWhExtAttrReq.productOrigin.region1ShortName | string | 是 | 产地一级区域二字码（如 `CN`、`US`） |\n| productWhExtAttrReq.productOrigin.region2Id | integer | 条件 | 省份 ID（`region1ShortName=CN` 时必填） |\n\n### 响应\n\n成功时 `success=true`，`result` 可为空对象。\n\n### 示例\n\n```bash\npython scripts/us_goods_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"supplierId\": 123,\n  \"productWhExtAttrReq\": {\n    \"productOrigin\": { \"region1ShortName\": \"CN\", \"region2Id\": 310000 }\n  }\n}'\n```\n\n---\n\n## 2. 编辑商品属性 — `temu.goods.edit.property`\n\n- **sub_menu_code**：`93fecd4d21fd441a8abcfc1497fa085e`\n- **脚本**：`scripts/us_goods_edit_property.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| productProperties | array | 是 | 属性列表 |\n\n#### `productProperties[]`\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| pid | integer | 是 | 属性 ID |\n| templatePid | integer | 是 | 模板属性 ID |\n| refPid | integer | 是 | 引用属性 ID |\n| vid | integer | 否 | 属性值 ID，无则传 0 |\n| propName | string | 是 | 属性名 |\n| propValue | string | 是 | 属性值 |\n| numberInputValue | string | 是 | 数值录入 |\n| valueUnit | string | 否 | 单位，无则空串 |\n\n### 示例\n\n```bash\npython scripts/us_goods_edit_property.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"productProperties\": [{\n    \"pid\": 1, \"templatePid\": 1, \"refPid\": 1,\n    \"vid\": 100, \"propName\": \"Material\", \"propValue\": \"Cotton\",\n    \"numberInputValue\": \"\", \"valueUnit\": \"\"\n  }]\n}'\n```\n\n---\n\n## 3. 编辑敏感品属性 — `temu.goods.edit.sensitive.attr`\n\n- **sub_menu_code**：`fc3de2c8546a496d8a5be8d36953e1bd`\n- **脚本**：`scripts/us_goods_edit_sensitive.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n| skuReqList | array | 是 | SKU 敏感属性列表 |\n\n#### `skuReqList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuId | integer | 货品 SKU ID |\n| productSkuSensitiveAttrReq.isSensitive | integer | 0 非敏感，1 敏感 |\n| productSkuSensitiveAttrReq.sensitiveList | array | 敏感类型码（如纯电、内电、液体等） |\n| productSkuSensitiveLimitReq | object | 敏感限制（容量、刀长等），无限制可传 `{}` |\n\n### 示例\n\n```bash\npython scripts/us_goods_edit_sensitive.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112,\n  \"skuReqList\": [{\n    \"productSkuId\": 58224724203874,\n    \"productSkuSensitiveAttrReq\": { \"isSensitive\": 0, \"sensitiveList\": [] },\n    \"productSkuSensitiveLimitReq\": {}\n  }]\n}'\n```\n\n---\n\n## 4. 半托管货品迁移 — `temu.goods.migrate`\n\n- **sub_menu_code**：`a8f8f3dca5ac4e2c8b9e7bc9d64704c8`\n- **脚本**：`scripts/us_goods_migrate.py`\n- **用途**：同主体下将全托管店铺货品搬运至半托管。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| migrationList | array | 是 | 搬运列表 |\n\n#### `migrationList[]` 主要字段\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSemiManagedReq.bindSiteIds | array | 绑定站点 |\n| productSemiManagedReq.semiManagedSiteMode | integer | 半托管售卖模式 |\n| productWarehouseRouteReq.targetRouteList | array | 站点-仓路由 `{ siteIdList, warehouseId }` |\n| skcDetails | array | SKC/SKU 规格明细 |\n\n### 示例\n\n```bash\npython scripts/us_goods_migrate.py '{\n  \"accessToken\": \"TOKEN\",\n  \"migrationList\": [{ \"productSemiManagedReq\": { \"bindSiteIds\": [100] } }]\n}'\n```\n\nFile v1.0.4:references/product-publish-apis.md\n\n# 商品发布 API — 参数参考（V2 Recommended）\n\nPartner US 菜单：**Product > Add Products > Recommended V2 Interfaces**。  \n经 `POST /temu/proxy` 转发，网关与响应信封见 [api.md](./api.md)。\n\n发品前请先调用 [category-spec-apis.md](./category-spec-apis.md) 中的属性与规格接口，并完成图片上传。\n\n---\n\n## 1. 发布商品 V2 — `temu.local.goods.v2.add`\n\n- **Partner 文档分区**：`sub_menu_code=91657460a9be4a609df2eef01bc6deef`\n- **脚本**：`scripts/us_goods_add.py`\n- **用途**：在美国站创建新商品（V2 推荐发品接口）。与同族 `bg.local.goods.add`、`temu.goods.add` 载荷结构一致或为其超集。\n\n### 网关 Body\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | 默认 `us` |\n| managementType | string | 是 | 默认 `semi-managed` |\n| accessToken / storeKey | string | 是 | 二选一 |\n| tokenPurpose | string | 否 | 默认 `product-inventory` |\n| type | string | 是 | 固定 `temu.local.goods.v2.add` |\n| params | object | 是 | 发品载荷，见下文 |\n\n### 业务参数（`params`）— 顶层\n\n以下字段来自同族 `bg.local.goods.add` / `temu.goods.add` 发品模型；**具体必填项由类目属性接口返回的 `required` 决定**。\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| goodsBasic | object | 是 | 商品基础信息（标题、类目、轮播图等） |\n| skuList | array | 是 | SKU 列表（价格、库存、规格、图片等） |\n| certificationInfo | object | 否 | 合规/认证（证书、GPSR、实拍图等，类目要求时必填） |\n| productPropertyReqs | array | 否 | 普通属性（亦可放在 `goodsBasic` 内，以官方字段为准） |\n| productSpecPropertyReqs | array | 否 | 销售规格属性 |\n| productSemiManagedReq | object | 否 | 半托管绑定站点等 |\n| productShipmentReq | object | 否 | 半托管配送/运费模板 |\n| addProductChannelType | integer | 是 | 发品渠道（同族接口必填） |\n\n#### `goodsBasic` 常见字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| catId / leafCatId | integer | 是 | 叶子类目 ID（或 cat1Id…cat10Id 逐级类目，与同族 `temu.goods.add` 一致） |\n| productName | string | 是 | 商品标题，通常 1–250 字符 |\n| carouselImageUrls | array | 是 | 轮播图 URL 列表（须先 `image.v2.upload`），常 ≥5 张 |\n| materialImgUrl | string | 否 | 素材图 URL |\n| carouselImageI18nReqs | array | 否 | 多语言轮播图（非服饰类常必填） |\n| productOuterPackageImageReqs | array | 否 | 外包装图 |\n| productOuterPackageReq | object | 否 | 外包装信息 |\n| productPropertyReqs | array | 是 | 类目属性值，元素见下表 |\n| productSpecPropertyReqs | array | 条件 | 多规格时的规格属性 |\n| productWhExtAttrReq | object | 是 | 仓配扩展（产地、重量体积等） |\n| productSaleExtAttrReq | object | 否 | 销售扩展 |\n| productSkcReqs | array | 是 | SKC 维度数据（含 SKU 列表） |\n| sizeTemplateIds | array | 否 | 尺码表模板 ID，无尺码传 `[]` |\n| showSizeTemplateIds | array | 否 | 展示用尺码表，至多 2 个 |\n| goodsModelReqs | array | 否 | 模特信息 |\n| productGuideFileReqs | array | 否 | 说明书文件 |\n| goodsLayerDecorationReqs | array | 否 | 商详装饰模块 |\n| personalizationSwitch | integer | 否 | 0 非定制品，1 定制品 |\n| productCarouseVideoReqList | array | 否 | 主图视频 |\n| materialMultiLanguages | array | 否 | 图片多语言 |\n| addProductChannelType | integer | 是 | 发品渠道 |\n\n#### `productPropertyReqs[]` 元素（发品回填属性）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| pid | integer | 属性 ID（来自 attributes.get） |\n| vid | integer | 属性值 ID |\n| propName | string | 属性名 |\n| propValue | string | 属性值文本 |\n| templatePid | integer | 模板属性 ID |\n| refPid | integer | 引用属性 ID |\n| numberInputValue | string | 数值录入 |\n| valueUnit | string | 单位 |\n\n#### `skuList[]` 元素（同族 `bg.local.goods.add`）\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| images | array | 是 | SKU 图片 URL 列表 |\n| quantity | integer | 是 | 库存数量 |\n| externalProductType | integer | 否 | 外部商品类型 |\n| supplierPrice / price | object | 条件 | 供货价（金额 + 币种） |\n| specIdList | array | 条件 | 规格 ID 列表（多规格） |\n| outSkuSn / extCode | string | 否 | 商家 SKU 编码 |\n| multiplePackage | object | 否 | 多件装：`numberOfPieces`、`individuallyPacked`、`skuClassification` 等 |\n\n#### `certificationInfo` 常见块（合规类目）\n\n| 块 | 说明 |\n|----|------|\n| certificateInfo | 证书类型、文件 URL、authCode 等 |\n| extraTemplate | 合规模板扩展字段 |\n| actualPhoto | 实拍图（`skuPhotoInfoList`、`position`） |\n| gpsrInfo | 欧盟 GPSR：制造商、责任人 |\n| repInfo | 代表信息 |\n\n完整嵌套字段以 Partner 后台 **Add Product V2** 文档为准；上表覆盖 EU 同族 `bg.local.goods.add` 公开示例中的主要块。\n\n### 响应（`result` 常见结构）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 新建货品 ID |\n| goodsId | integer | 商品 ID（部分接口命名） |\n| productSkcList | array | `{ productSkcId }` |\n| productSkuList | array | `{ productSkuId, productSkcId, extCode, skuSpecList[] }` |\n\n### 示例\n\n```bash\npython scripts/us_goods_add.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": {\n    \"goodsBasic\": {\n      \"catId\": 12345,\n      \"productName\": \"Example Product\",\n      \"carouselImageUrls\": [\"https://...\"],\n      \"productPropertyReqs\": [{ \"pid\": 1, \"vid\": 100 }],\n      \"addProductChannelType\": 0\n    },\n    \"skuList\": [{\n      \"images\": [\"https://...\"],\n      \"quantity\": 99,\n      \"supplierPrice\": { \"amount\": \"19.99\", \"currency\": \"USD\" }\n    }]\n  }\n}'\n```\n\n---\n\n## 2. 商品图片上传 V2 — `temu.local.goods.image.v2.upload`\n\n- **Partner 文档分区**：`sub_menu_code=37d470d8c6e149f78953311aa0b0296d`\n- **脚本**：`scripts/us_goods_image_upload.py`\n- **用途**：上传商品图片（Base64），返回可用于 `goods.v2.add` 的 URL。与同族 `bg.goods.image.upload.global` 一致。\n\n### 网关 Body\n\n网关字段同 §1，`type` 固定为 `temu.local.goods.image.v2.upload`。\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| image | string | 是 | 图片 **Base64**（支持 jpg/jpeg、png 等） |\n| imageBizType | integer | 否 | `0` 默认；`1` 外包装专用 URL |\n| options | object | 否 | 裁剪/增强选项，见下表 |\n\n#### `options`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| boost | boolean | 是否 AI 清晰度提升 |\n| doIntelligenceCrop | boolean | 是否智能裁剪（true 时可能返回 1 原图 + 3 裁剪图） |\n| cateId | integer | 叶子类目 ID（`doIntelligenceCrop=true` 时生效） |\n| sizeMode | integer | `0` 原图；`1` 800×800；`2` 1350×1800 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| imageUrl | string | 原图链接 |\n| url | string | 单张 AI 裁图链接 |\n| urls | array | 多张 AI 裁图链接 |\n\n将 `imageUrl` 或 `urls[]` 填入 `goods.v2.add` 的 `carouselImageUrls`、`skuList[].images`、`materialImgUrl` 等。\n\n### 示例\n\n```bash\npython scripts/us_goods_image_upload.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": {\n    \"image\": \"<BASE64>\",\n    \"options\": {\n      \"doIntelligenceCrop\": true,\n      \"cateId\": 12345,\n      \"sizeMode\": 1\n    }\n  }\n}'\n```\n\n### 网关响应示例（结构）\n\n```json\n{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"result\\\":{\\\"imageUrl\\\":\\\"https://...\\\",\\\"url\\\":\\\"https://...\\\",\\\"urls\\\":[\\\"https://...\\\"]}}\"\n}\n```\n\n---\n\n## 3. 发布商品（半托管/跨境）— `temu.goods.add`\n\n- **sub_menu_code**：`1b99296745854ae08d39a7bbe1e4f7a8`\n- **脚本**：`scripts/us_goods_add_legacy.py`\n- **说明**：非 V2 发品接口；美国站 Partner US 发品优先用 **§1** `temu.local.goods.v2.add`。载荷与同族 `temu.goods.add` 一致。\n\n### 业务参数（`params`）\n\n与 [§1](#1-发布商品-v2--temulocalgoodsv2add) 类似，主要块包括：\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cat1Id … cat10Id | integer | 是 | 各级类目（至少到叶子） |\n| productName | string | 是 | 商品标题 |\n| carouselImageUrls | array | 是 | 轮播图 URL，通常 ≥5 张 |\n| productPropertyReqs | array | 是 | 类目属性 |\n| productSkcReqs | array | 是 | SKC/SKU 结构 |\n| addProductChannelType | integer | 是 | 发品渠道 |\n\n完整字段见 §1 `goodsBasic` / `skuList` 说明。\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 新建货品 ID |\n| productSkcList | array | `{ productSkcId }` |\n| productSkuList | array | `{ productSkuId, extCode, skuSpecList }` |\n\n### 示例\n\n```bash\npython scripts/us_goods_add_legacy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"params\": { \"...\": \"同 temu.goods.add 文档结构\" }\n}'\n```\n\n---\n\n## 相关文档\n\n- [类目属性与规格](./category-spec-apis.md)\n- [商品查询](./product-query-apis.md)\n- [商品编辑](./product-edit-apis.md)\n- [API 调用规范](./api.md)\n- [接口目录](./partner-us-catalog.md)\n\nFile v1.0.4:references/product-query-apis.md\n\n# 商品查询 API — 参数参考\n\nPartner US 菜单 **Product**（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）。经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 商品列表查询 — `temu.goods.list.get`\n\n- **sub_menu_code**：`c313f7e3983f407d82d0f7cd88ab5c62`\n- **脚本**：`scripts/us_goods_list.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| page | integer | 是 | 页码，从 1 起 |\n| pageSize | integer | 是 | 每页条数 |\n| productName | string | 否 | 货品名称（模糊） |\n| productSkcIds | array | 否 | SKC ID 列表 |\n| skcExtCode | string | 否 | SKC 外部编码 |\n| skuExtCodes | array | 否 | SKU 货号列表 |\n| cat1Id … cat10Id | integer | 否 | 各级类目 ID 筛选 |\n| bindSiteIds | array | 否 | 经营站点 ID 列表 |\n| skcSiteStatus | integer | 否 | SKC 加站点状态：0 未加入，1 已加入 |\n| matchJitMode | boolean | 否 | 是否 JIT 模式 |\n| quickSellAgtSignStatus | integer | 否 | 快速售卖协议：0 未签，1 已签 |\n| supportPersonalization | integer | 否 | 是否支持定制品 |\n| createdAtStart | string | 否 | 创建时间起（`YYYY-MM-DD HH:mm:ss`） |\n| createdAtEnd | string | 否 | 创建时间止 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| data | array | 商品列表，元素见 `entity.Goods` |\n| totalCount | integer | 总条数 |\n\n#### `data[]` 主要字段\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productSkcId | integer | SKC ID |\n| productName | string | 货品名称 |\n| extCode | string | SKC 外部编码 |\n| mainImageUrl | string | 主图 |\n| leafCat | object | 叶子类目 `{ catId, catName }` |\n| skcSiteStatus | integer | 站点上架状态 |\n| productSkuSummaries | array | SKU 摘要（库存、规格等） |\n\n### 示例\n\n```bash\npython scripts/us_goods_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"page\": 1,\n  \"pageSize\": 20\n}'\n```\n\n---\n\n## 2. 商品详情查询 — `temu.goods.detail.get`\n\n- **sub_menu_code**：`7ce116fe6b87443ba2a5320b25bf2b20`\n- **脚本**：`scripts/us_goods_detail.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productId | integer | 是 | 货品 ID |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productName | string | 商品名称 |\n| categories | object | 类目树 cat1…cat10、leafCat |\n| goodsLayerDecorationList | array | 商详装饰楼层 |\n| productWhExtAttr | object | 仓配扩展（如产地 `productOrigin`） |\n\n### 示例\n\n```bash\npython scripts/us_goods_detail.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productId\": 604269868588112\n}'\n```\n\nFile v1.0.4:references/stock-price-apis.md\n\n# 库存与价格 API — 参数参考\n\n经 `POST /temu/proxy` 转发，网关见 [api.md](./api.md)。\n\n---\n\n## 1. 虚拟库存查询 — `bg.btg.goods.stock.quantity.get`\n\n- **sub_menu_code**：`d72b66d07b1f499bbd80720367e58e1f`\n- **脚本**：`scripts/us_goods_stock_get.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productSkcId | integer | 是 | 货品 SKC ID |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| total | integer | 条数 |\n| productSkuStockList | array | SKU 库存列表 |\n\n#### `productSkuStockList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuId | integer | SKU ID |\n| skuStockQuantity | integer | 虚拟库存（不可查看时为 null） |\n| warehouseId | string | 仓库 ID（欧区可分仓） |\n| shippingMode | integer | 1 卖家自发货，2 认证仓 |\n| tempLockQuantity | integer | 未支付锁定库存 |\n\n### 示例\n\n```bash\npython scripts/us_goods_stock_get.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productSkcId\": 123456789\n}'\n```\n\n---\n\n## 2. 虚拟库存更新 — `bg.btg.goods.stock.quantity.update`\n\n- **sub_menu_code**：`e84f651da04f4fedb85d37e375a4e2d8`\n- **脚本**：`scripts/us_goods_stock_update.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| quantityChangeMode | integer | 是 | `1` 增减变更；`2` 覆盖变更（默认 1） |\n| productSkcId | integer | 否 | SKC ID |\n| skuStockChangeList | array | 是 | 库存调整项 |\n\n#### `skuStockChangeList[]`\n\n| 字段 | 类型 | 条件 | 说明 |\n|------|------|------|------|\n| productSkuId | integer | 是 | SKU ID |\n| warehouseId | string | 是 | 发货仓 ID |\n| stockDiff | integer | mode=1 | 增减量（正增负减） |\n| targetStockAvailable | integer | mode=2 | 覆盖后的目标库存（≥0） |\n| currentShippingMode | integer | 否 | 当前发货模式 |\n| currentStockAvailable | integer | 否 | 当前库存 |\n\n### 示例\n\n```bash\npython scripts/us_goods_stock_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"quantityChangeMode\": 1,\n  \"skuStockChangeList\": [{\n    \"productSkuId\": 58224724203874,\n    \"warehouseId\": \"WH001\",\n    \"stockDiff\": 10\n  }]\n}'\n```\n\n---\n\n## 3. 供货价列表 — `temu.goods.price.list.get`\n\n- **sub_menu_code**：`a084faecbad64d7f93c485378b5bd9bf`\n- **脚本**：`scripts/us_goods_price_list.py`\n\n### 业务参数（`params`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| productSkuIds | array | 是 | 货品 SKU ID 列表 |\n\n### 响应（`result`）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productSkuSupplierPriceList | array | 供货价列表 |\n\n#### `productSkuSupplierPriceList[]`\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| productId | integer | 货品 ID |\n| productSkcId | integer | SKC ID |\n| productSkuId | integer | SKU ID |\n| supplierPrice | number | 供货价 |\n| currencyType | string/number | 币种 |\n| siteSupplierPrices | array | 分站点供货价（半托管） |\n\n### 示例\n\n```bash\npython scripts/us_goods_price_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"productSkuIds\": [58224724203874, 58224724203875]\n}'\n```\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nHelps agents use LinkFox's gateway and bundled scripts to publish and manage Temu Partner US product listings, including V2 add-product flows, category attributes, images, listing queries, edits, stock, and supply-price operations. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal sellers, operators, and developers use this skill to prepare and execute Temu US product-management workflows through LinkFox, including product creation, catalog lookup, image upload, inventory updates, and pricing checks. <br>\n\n### Deployment Geography for Use: <br>\nUnited States <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Authenticated Temu product-management operations can create or modify listings, stock, pricing, migration state, and other commerce data. <br>\nMitigation: Use least-privilege Temu and LinkFox tokens, review commands and JSON payloads before execution, and avoid broad proxy calls unless the requested operation is clear. <br>\nRisk: Tokens and API responses may be stored or printed in plaintext by the bundled scripts. <br>\nMitigation: Avoid sharing production tokens in chats or shell history, keep token-store and response directories out of source control, and delete or protect local output files after use. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/linkfox-ai/skills/linkfox-temu-add-product-us) <br>\n- [API reference](references/api.md) <br>\n- [Access token authorization](references/access-token.md) <br>\n- [Authorization flow](references/authorization-flow.md) <br>\n- [Partner US catalog](references/partner-us-catalog.md) <br>\n- [Product publish APIs](references/product-publish-apis.md) <br>\n- [Product query APIs](references/product-query-apis.md) <br>\n- [Product edit APIs](references/product-edit-apis.md) <br>\n- [Category and specification APIs](references/category-spec-apis.md) <br>\n- [Stock and price APIs](references/stock-price-apis.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, JSON files, API calls, guidance] <br>\n**Output Format:** [Markdown guidance with shell commands and JSON request or response files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Scripts save full LinkFox responses under a local linkfox session directory and may print small responses or summaries to stdout.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.3: 45 files, 47389 bytes\n\nFiles: references/access-token.md (4450b), references/api.md (5406b), references/authorization-flow.md (1186b), references/category-spec-apis.md (9759b), references/partner-us-catalog.md (4992b), references/product-edit-apis.md (4208b), references/product-publish-apis.md (9358b), references/product-query-apis.md (2784b), references/stock-price-apis.md (3187b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12429b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3209b), scripts/_us_product_script.py (444b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (719b), scripts/temu_us_proxy.py (899b), scripts/us_goods_add_legacy.py (244b), scripts/us_goods_add.py (218b), scripts/us_goods_attrs_bg.py (217b), scripts/us_goods_attrs.py (227b), scripts/us_goods_brand.py (202b), scripts/us_goods_category_mapping.py (297b), scripts/us_goods_cats.py (191b), scripts/us_goods_detail.py (198b), scripts/us_goods_edit_property.py (217b), scripts/us_goods_edit_sensitive.py (233b), scripts/us_goods_image_upload.py (251b), scripts/us_goods_list.py (198b), scripts/us_goods_migrate.py (220b), scripts/us_goods_parent_spec.py (218b), scripts/us_goods_price_list.py (220b), scripts/us_goods_stock_get.py (233b), scripts/us_goods_stock_update.py (242b), scripts/us_goods_update.py (190b), scripts/us_goods_variation.py (248b), skill-card.md (3327b), SKILL.md (5654b), _meta.json (146b)\n\nFile v1.0.3:SKILL.md\n\n---\r\nname: linkfox-temu-add-product-us\r\ndescription: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。\r\n---\r\n\r\n# Temu 美国站发品 API（Partner US）\r\n\r\n本 skill（`linkfox-temu-add-product-us`）覆盖 Partner Platform for US **Product** 菜单（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）下 **19 个商品接口**：**4 个 V2 推荐发品** + **15 个标准商品 API**（查询、编辑、类目、库存、价格等）。\r\n\r\n**网关（本 skill 内置）**：\r\n\r\n| 能力 | 方法 | 网关路径 |\r\n|------|------|----------|\r\n| 商品 OpenAPI（全部 `us_goods_*`、`temu_us_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\r\n| 加签文件下载（`temu_us_file_download`） | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\r\n\r\n商品 `type` 写在 Body，**不是** URL 路径。\r\n\r\n> **不是订单 skill**：订单、发货、物流见 `linkfox-temu-order-us` 或其它履约类 skill。\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/linkfox-temu-add-product-us-<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 | `us` | Partner US |\r\n| managementType | `semi-managed` | 半托管 |\r\n| tokenPurpose（storeKey） | `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\r\n\r\n### V2 推荐发品\r\n\r\n| 脚本 | type |\r\n|------|------|\r\n| `us_goods_attrs.py` | `temu.local.product.attributes.get` |\r\n| `us_goods_variation.py` | `temu.local.product.variation.get` |\r\n| `us_goods_image_upload.py` | `temu.local.goods.image.v2.upload` |\r\n| `us_goods_add.py` | `temu.local.goods.v2.add` |\r\n\r\n### 查询 / 编辑 / 类目 / 库存\r\n\r\n| 脚本 | type |\r\n|------|------|\r\n| `us_goods_list.py` | `temu.goods.list.get` |\r\n| `us_goods_detail.py` | `temu.goods.detail.get` |\r\n| `us_goods_update.py` | `temu.goods.update` |\r\n| `us_goods_edit_property.py` | `temu.goods.edit.property` |\r\n| `us_goods_edit_sensitive.py` | `temu.goods.edit.sensitive.attr` |\r\n| `us_goods_migrate.py` | `temu.goods.migrate` |\r\n| `us_goods_cats.py` | `bg.goods.cats.get` |\r\n| `us_goods_attrs_bg.py` | `bg.goods.attrs.get` |\r\n| `us_goods_parent_spec.py` | `bg.glo.goods.parentspec.get` |\r\n| `us_goods_brand.py` | `bg.glo.goods.brand.get` |\r\n| `us_goods_category_mapping.py` | `bg.goods.category.mapping` |\r\n| `us_goods_stock_get.py` | `bg.btg.goods.stock.quantity.get` |\r\n| `us_goods_stock_update.py` | `bg.btg.goods.stock.quantity.update` |\r\n| `us_goods_price_list.py` | `temu.goods.price.list.get` |\r\n| `us_goods_add_legacy.py` | `temu.goods.add` |\r\n| `temu_us_proxy.py` | 任意 `type` |\r\n| `temu_us_file_download.py` | 加签文件下载 |\r\n\r\n## 示例\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\n\r\n# 商品列表\r\npython scripts/us_goods_list.py '{\"accessToken\":\"TOKEN\",\"page\":1,\"pageSize\":20}'\r\n\r\n# 类目映射\r\npython scripts/us_goods_category_mapping.py '{\r\n  \"accessToken\":\"TOKEN\",\r\n  \"goodsName\":\"测试商品\",\r\n  \"goodsNameEn\":\"Test Product\"\r\n}'\r\n\r\n# V2 发品流程\r\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\r\npython scripts/us_goods_image_upload.py '{\"accessToken\":\"TOKEN\",\"params\":{\"image\":\"<BASE64>\"}}'\r\npython scripts/us_goods_add.py '{\"accessToken\":\"TOKEN\",\"params\":{\"...\"}}'\r\n```\r\n\r\n**Feedback：** `skillName`：`linkfox-temu-add-product-us`\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:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-add-product-us\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1783337826860\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=us` / `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-us.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-add-product-us — API 参考\r\n\r\nTemu **美国站商品发布**（Partner US **Product > Add Products > Recommended V2 Interfaces**），经本 skill `temu_us_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}`（可用 `LINKFOX_TOOL_GATEWAY` / `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 商品 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或环境变量 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token` / `linkfoxToken` |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（由网关按 `site` 解析，调用方勿直连） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `us`（本 skill 默认）；半托跨境发品偶用 `cn` / `partner` |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌，最长约 8192 |\r\n| storeKey | string | 与 accessToken 二选一 | 本地 `~/.linkfox/temu-access-tokens.json` 中的店铺键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory`（酷鸟卖家助手） |\r\n| type | string | 是 | Temu 接口名，如 `temu.local.goods.v2.add` |\r\n| params | object | 否 | 业务参数，结构见下文各接口文档 |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON **字符串**；脚本会尽量解析为 `temuBody` |\r\n| code | integer | 网关错误码（非 Temu 业务码），如 `1002` 参数/用户 Token 无效，`1003` 转发失败 |\r\n\r\n解析顺序：**先看网关 `code`/`message`** → 再 `JSON.parse(body)` → 读 Temu 层 `success`、`errorCode`、`errorMsg`、`result`。\r\n\r\n### Temu 业务响应信封（`body` 解析后）\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| success | boolean | 是否成功 |\r\n| errorCode | integer | 业务错误码；`1000000` 或 `0` 常表示成功（以实网为准） |\r\n| errorMsg | string | 错误说明，成功时多为空 |\r\n| requestId | string | 请求追踪 ID |\r\n| result | object | 业务数据，结构因 `type` 而异 |\r\n\r\n### curl 示例（经网关）\r\n\r\n```bash\r\ncurl -X POST https://tool-gateway.linkfox.com/temu/proxy \\\r\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Token: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\r\n    \"site\": \"us\",\r\n    \"managementType\": \"semi-managed\",\r\n    \"accessToken\": \"TEMU_PRODUCT_TOKEN\",\r\n    \"type\": \"temu.local.product.attributes.get\",\r\n    \"params\": { \"catId\": 12345 }\r\n  }'\r\n```\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；脚本会通过 `extract_business_params` 提取后写入网关 Body 的 `params`。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n共 **19** 个商品接口（4 V2 + 15 标准），完整 `sub_menu_code` 对照见 [partner-us-catalog.md](./partner-us-catalog.md)。\r\n\r\n| 分组 | 文档 |\r\n|------|------|\r\n| 查询（list / detail） | [product-query-apis.md](./product-query-apis.md) |\r\n| 编辑（update / property / sensitive / migrate） | [product-edit-apis.md](./product-edit-apis.md) |\r\n| 发品 V2 + 图片 + legacy add | [product-publish-apis.md](./product-publish-apis.md) |\r\n| 类目 / 属性 / 规格 / 品牌 / 映射 | [category-spec-apis.md](./category-spec-apis.md) |\r\n| 库存 / 供货价 | [stock-price-apis.md](./stock-price-apis.md) |\r\n\r\n---\r\n\r\n## 推荐 V2 发品流程\r\n\r\n```text\r\n1. temu.local.product.attributes.get   → catId 拉属性模板\r\n2. temu.local.product.variation.get    → catId 拉规格\r\n3. temu.local.goods.image.v2.upload    → 上传图片\r\n4. temu.local.goods.v2.add             → 提交商品\r\n```\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 `accessToken`、白名单、网络；可退避重试 |\r\n\r\nTemu 业务\n\nArchive v1.0.2: 44 files, 45822 bytes\n\nFiles: references/access-token.md (4450b), references/api.md (5406b), references/authorization-flow.md (1186b), references/category-spec-apis.md (9759b), references/partner-us-catalog.md (4992b), references/product-edit-apis.md (4208b), references/product-publish-apis.md (9358b), references/product-query-apis.md (2784b), references/stock-price-apis.md (3187b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12429b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3209b), scripts/_us_product_script.py (444b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1681b), scripts/temu_proxy.py (2124b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (719b), scripts/temu_us_proxy.py (899b), scripts/us_goods_add_legacy.py (244b), scripts/us_goods_add.py (218b), scripts/us_goods_attrs_bg.py (217b), scripts/us_goods_attrs.py (227b), scripts/us_goods_brand.py (202b), scripts/us_goods_category_mapping.py (297b), scripts/us_goods_cats.py (191b), scripts/us_goods_detail.py (198b), scripts/us_goods_edit_property.py (217b), scripts/us_goods_edit_sensitive.py (233b), scripts/us_goods_image_upload.py (251b), scripts/us_goods_list.py (198b), scripts/us_goods_migrate.py (220b), scripts/us_goods_parent_spec.py (218b), scripts/us_goods_price_list.py (220b), scripts/us_goods_stock_get.py (233b), scripts/us_goods_stock_update.py (242b), scripts/us_goods_update.py (190b), scripts/us_goods_variation.py (248b), SKILL.md (5654b), _meta.json (146b)\n\nArchive v1.0.0: 45 files, 44570 bytes\n\nFiles: references/access-token.md (4450b), references/api.md (5231b), references/authorization-flow.md (1186b), references/category-spec-apis.md (9759b), references/partner-us-catalog.md (4992b), references/product-edit-apis.md (4208b), references/product-publish-apis.md (9358b), references/product-query-apis.md (2784b), references/stock-price-apis.md (3187b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (5593b), scripts/_temu_token_store.py (4237b), scripts/_temu_us_common.py (3092b), scripts/_us_product_script.py (444b), scripts/check_linkfox_token.py (1797b), scripts/get_temu_access_token.py (1843b), scripts/list_temu_access_tokens.py (652b), scripts/save_temu_access_token.py (1377b), scripts/temu_file_download.py (1595b), scripts/temu_proxy.py (2027b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (650b), scripts/temu_us_proxy.py (823b), scripts/us_goods_add_legacy.py (244b), scripts/us_goods_add.py (218b), scripts/us_goods_attrs_bg.py (217b), scripts/us_goods_attrs.py (227b), scripts/us_goods_brand.py (202b), scripts/us_goods_category_mapping.py (297b), scripts/us_goods_cats.py (191b), scripts/us_goods_detail.py (198b), scripts/us_goods_edit_property.py (217b), scripts/us_goods_edit_sensitive.py (233b), scripts/us_goods_image_upload.py (251b), scripts/us_goods_list.py (198b), scripts/us_goods_migrate.py (220b), scripts/us_goods_parent_spec.py (218b), scripts/us_goods_price_list.py (220b), scripts/us_goods_stock_get.py (233b), scripts/us_goods_stock_update.py (242b), scripts/us_goods_update.py (190b), scripts/us_goods_variation.py (248b), skill-card.md (3265b), SKILL.md (5063b), _meta.json (146b)","readmeExcerpt":"Skill: Temu美国站-上架商品 Owner: linkfox-ai Summary: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。 Tags: latest:1.0.6 Version history: v1.0.6 | 2026-08-14T15:11:10.857Z | user Update from 1.0.5 to 1.0","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 商品列表\npython scripts/us_goods_list.py '{\"accessToken\":\"TOKEN\",\"page\":1,\"pageSize\":20}'\n\n# 类目映射\npython scripts/us_goods_category_mapping.py '{\n  \"accessToken\":\"TOKEN\",\n  \"goodsName\":\"测试商品\",\n  \"goodsNameEn\":\"Test Product\"\n}'\n\n# V2 发品流程\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\npython scripts/us_goods_image_upload.py '{\"accessToken\":\"TOKEN\",\"params\":{\"image\":\"<BASE64>\"}}'\npython scripts/us_goods_add.py '{\"accessToken\":\"TOKEN\",\"params\":{\"...\"}}'"},{"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":"用户确认店铺类型与用途\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"},{"language":"bash","snippet":"python scripts/us_goods_attrs.py '{\n  \"accessToken\": \"YOUR_TOKEN\",\n  \"params\": { \"catId\": 12345 }\n}'"},{"language":"json","snippet":"{\n  \"body\": \"{\\\"success\\\":true,\\\"errorCode\\\":1000000,\\\"errorMsg\\\":\\\"\\\",\\\"requestId\\\":\\\"us-xxx\\\",\\\"result\\\":{\\\"inputMaxSpecNum\\\":2,\\\"properties\\\":[{\\\"pid\\\":1,\\\"name\\\":\\\"Color\\\",\\\"required\\\":true,\\\"isSale\\\":true,\\\"values\\\":[{\\\"vid\\\":100,\\\"value\\\":\\\"Red\\\"}]}]}}\"\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: linkfox-temu-add-product-us\ndescription: Temu 美国站发品（Add Product）API，经 LinkFox 网关转发 Partner US 商品接口：V2发品(temu.local.goods.v2.add)、类目属性、规格、图片上传、商品列表/详情/编辑、类目映射、SKU库存、供货价等。当用户提到 Temu 美国站发品、Temu US Add Product、goods.list、goods.detail、temu.local.goods.v2.add、商品类目映射、SKU库存、供货价、Partner US 发品文档 时触发。订单/物流请用其他 Temu skill。\n---\n\n# Temu 美国站发品 API（Partner US）\n\n本 skill（`linkfox-temu-add-product-us`）覆盖 Partner Platform for US **Product** 菜单（`menu_code=fb16b05f7a904765aac4af3a24b87d4a`）下 **19 个商品接口**：**4 个 V2 推荐发品** + **15 个标准商品 API**（查询、编辑、类目、库存、价格等）。\n\n**网关（本 skill 内置）**：\n\n| 能力 | 方法 | 网关路径 |\n|------|------|----------|\n| 商品 OpenAPI（全部 `us_goods_*`、`temu_us_proxy`） | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载（`temu_us_file_download`） | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n商品 `type` 写在 Body，**不是** URL 路径。\n\n> **不是订单 skill**：订单、发货、物流见 `linkfox-temu-order-us` 或其它履约类 skill。\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/linkfox-temu-add-product-us-<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 | `us` | Partner US |\n| managementType | `semi-managed` | 半托管 |\n| tokenPurpose（storeKey） | `product-inventory` | 酷鸟卖家助手 token |\n\n## 鉴权\n\n1. **LinkFox**：`LINKFOXAGENT_API_KEY` → Header `Authorization` + `Token`\n2. **Temu**：`accessToken` 或 `storeKey`\n\n## Scripts\n\n### V2 推荐发品\n\n| 脚本 | type |\n|------|------|\n| `us_goods_attrs.py` | `temu.local.product.attributes.get` |\n| `us_goods_variation.py` | `temu.local.product.variation.get` |\n| `us_goods_image_upload.py` | `temu.local.goods.image.v2.upload` |\n| `us_goods_add.py` | `temu.local.goods.v2.add` |\n\n### 查询 / 编辑 / 类目 / 库存\n\n| 脚本 | type |\n|------|------|\n| `us_goods_list.py` | `temu.goods.list.get` |\n| `us_goods_detail.py` | `temu.goods.detail.get` |\n| `us_goods_update.py` | `temu.goods.update` |\n| `us_goods_edit_property.py` | `temu.goods.edit.property` |\n| `us_goods_edit_sensitive.py` | `temu.goods.edit.sensitive.attr` |\n| `us_goods_migrate.py` | `temu.goods.migrate` |\n| `us_goods_cats.py` | `bg.goods.cats.get` |\n| `us_goods_attrs_bg.py` | `bg.goods.attrs.get` |\n| `us_goods_parent_spec.p"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-add-product-us\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786720270857\n}"},{"path":"references/access-token.md","content":"# 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）（如未配置 按 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=us` / `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-us.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_"},{"path":"references/api.md","content":"# linkfox-temu-add-product-us — API 参考\r\n\r\nTemu **美国站商品发布**（Partner US **Product > Add Products > Recommended V2 Interfaces**），经本 skill `temu_us_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}`（可用 `LINKFOX_TOOL_GATEWAY` / `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\r\n| 商品 OpenAPI | `POST /temu/proxy` |\r\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\r\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或环境变量 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token` / `linkfoxToken`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\r\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\r\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=product-inventory` |\r\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（由网关按 `site` 解析，调用方勿直连） |\r\n\r\n### 网关请求 Body（`/temu/proxy`）\r\n\r\n| 参数 | 类型 | 必填 | 说明 |\r\n|------|------|------|------|\r\n| site | string | 是 | `us`（本 skill 默认）；半托跨境发品偶用 `cn` / `partner` |\r\n| managementType | string | 是 | `semi-managed` |\r\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌，最长约 8192 |\r\n| storeKey | string | 与 accessToken 二选一 | 本地 `~/.linkfox/temu-access-tokens.json` 中的店铺键 |\r\n| tokenPurpose | string | 否 | 建议 `product-inventory`（酷鸟卖家助手） |\r\n| type | string | 是 | Temu 接口名，如 `temu.local.goods.v2.add` |\r\n| params | object | 否 | 业务参数，结构见下文各接口文档 |\r\n\r\n### 网关响应\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| body | string | Temu 原始 JSON **字符串**；脚本会尽量解析为 `temuBody` |\r\n| code | integer | 网关错误码（非 Temu 业务码），如 `1002` 参数/用户 Token 无效，`1003` 转发失败 |\r\n\r\n解析顺序：**先看网关 `code`/`message`** → 再 `JSON.parse(body)` → 读 Temu 层 `success`、`errorCode`、`errorMsg`、`result`。\r\n\r\n### Temu 业务响应信封（`body` 解析后）\r\n\r\n| 字段 | 类型 | 说明 |\r\n|------|------|------|\r\n| success | boolean | 是否成功 |\r\n| errorCode | integer | 业务错误码；`1000000` 或 `0` 常表示成功（以实网为准） |\r\n| errorMsg | string | 错误说明，成功时多为空 |\r\n| requestId | string | 请求追踪 ID |\r\n| result | object | 业务数据，结构因 `type` 而异 |\r\n\r\n### curl 示例（经网关）\r\n\r\n```bash\r\ncurl -X POST https://tool-gateway.linkfox.com/temu/proxy \\\r\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Token: $LINKFOXAGENT_API_KEY\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\r\n    \"site\": \"us\",\r\n    \"managementType\": \"semi-managed\",\r\n    \"accessToken\": \"TEMU_PRODUCT_TOKEN\",\r\n    \"type\": \"temu.local.product.attributes.get\",\r\n    \"params\": { \"catId\": 12345 }\r\n  }'\r\n```\r\n\r\n### 脚本调用\r\n\r\n```bash\r\nexport LINKFOXAGENT_API_KEY=\"<key>\"\r\npython scripts/us_goods_attrs.py '{\"accessToken\":\"TOKEN\",\"params\":{\"catId\":12345}}'\r\n```\r\n\r\n业务字段可放在顶层或嵌套 `params`；脚本会通过 `extract_business_params` 提取后写入网关 Body 的 `params`。\r\n\r\n---\r\n\r\n## 接口一览\r\n\r\n共 **19** 个商品接口（4 V2 + 15 标准），完整 `sub_menu_code` 对照见 [partner-us-catalog.md](./partner-us-catalog.md)。\r\n\r\n| 分组 | 文档 |\r\n|------|------|\r\n| 查询（list / detail） | "},{"path":"references/authorization-flow.md","content":"# 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**。"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1117,"uniquenessScore":37,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T16:31:36.837Z","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:31:36.837Z","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:55:54.406Z","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"}]}}}