{"id":"5c0c5f1c-cae1-4b4c-bea1-eb6d526ae5a3","entityType":"agent","slug":"clawhub-linkfox-ai-linkfox-temu-fulfillment-us","name":"Temu美国站-发货","canonicalUrl":"https://www.xpersona.co/agent/clawhub-linkfox-ai-linkfox-temu-fulfillment-us","canonicalPath":"/agent/clawhub-linkfox-ai-linkfox-temu-fulfillment-us","generatedAt":"2026-10-10T21:53:41.140Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T16:00:46.866Z","emptyReason":null},"description":"Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。 Skill: Temu美国站-发货 Owner: linkfox-ai Summary: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。 Tags: latest:1.0.6 Version history: v1.0.6 | 2026-08-14T15:14:45.419Z | user Update from 1.0.5 to 1.0.6 v1.0.5 | 2026-08-07T11:16:29.140Z | user Update from 1.0.4 to 1.0.5 v1.0.4 | 2026-07-1","descriptionLabel":"Technical summary","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-fulfillment-us","sourceUrl":"https://clawhub.ai/linkfox-ai/linkfox-temu-fulfillment-us","homepage":"https://clawhub.ai/linkfox-ai/skills/linkfox-temu-fulfillment-us","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/linkfox-ai/linkfox-temu-fulfillment-us","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/linkfox-ai/skills/linkfox-temu-fulfillment-us","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:00:46.866Z","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:00:46.866Z","emptyReason":null},"stars":null,"forks":null,"downloads":1348,"packageName":null,"latestVersion":"1.0.6","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T16:00:46.866Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T16:00:46.866Z","lastCrawledAt":"2026-10-10T16:00:46.866Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T16:00:46.866Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.6","createdAt":"2026-08-14T15:14:45.419Z","changelog":"Update from 1.0.5 to 1.0.6","fileCount":78,"zipByteSize":150612},{"version":"1.0.5","createdAt":"2026-08-07T11:16:29.140Z","changelog":"Update from 1.0.4 to 1.0.5","fileCount":78,"zipByteSize":150721},{"version":"1.0.4","createdAt":"2026-07-13T12:34:25.644Z","changelog":"Update from 1.0.3 to 1.0.4","fileCount":76,"zipByteSize":141646},{"version":"1.0.3","createdAt":"2026-07-06T11:41:54.138Z","changelog":"Update from 1.0.2 to 1.0.3","fileCount":76,"zipByteSize":141131},{"version":"1.0.2","createdAt":"2026-07-03T09:41:44.175Z","changelog":"Update from 1.0.0 to 1.0.2","fileCount":75,"zipByteSize":139553},{"version":"1.0.0","createdAt":"2026-05-27T07:29:27.261Z","changelog":"Initial release","fileCount":76,"zipByteSize":138062}]},"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-fulfillment-us","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"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-fulfillment-us/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-us/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-us/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-us/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-us/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-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:53:41.135Z"}},"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-fulfillment-us/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-us/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-us/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-temu-fulfillment-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":"high","updatedAt":"2026-10-10T16:00:46.866Z","emptyReason":null},"readme":"Skill: Temu美国站-发货\n\nOwner: linkfox-ai\n\nSummary: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。\n\nTags: latest:1.0.6\n\nVersion history:\n\nv1.0.6 | 2026-08-14T15:14:45.419Z | user\n\nUpdate from 1.0.5 to 1.0.6\n\nv1.0.5 | 2026-08-07T11:16:29.140Z | user\n\nUpdate from 1.0.4 to 1.0.5\n\nv1.0.4 | 2026-07-13T12:34:25.644Z | user\n\nUpdate from 1.0.3 to 1.0.4\n\nv1.0.3 | 2026-07-06T11:41:54.138Z | user\n\nUpdate from 1.0.2 to 1.0.3\n\nv1.0.2 | 2026-07-03T09:41:44.175Z | user\n\nUpdate from 1.0.0 to 1.0.2\n\nv1.0.0 | 2026-05-27T07:29:27.261Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.6: 78 files, 150612 bytes\n\nFiles: references/access-token.md (4604b), references/api.md (9921b), references/apis/bg-cooperativewarehouse-fulfill-cancel.md (6135b), references/apis/bg-cooperativewarehouse-fulfill-submit.md (18045b), references/apis/bg-cooperativewarehouse-provider-list.md (7599b), references/apis/bg-cooperativewarehouse-token-authorization.md (7871b), references/apis/bg-logistics-companies-get.md (4206b), references/apis/bg-logistics-shipment-create.md (20968b), references/apis/bg-logistics-shipment-document-get.md (8032b), references/apis/bg-logistics-shipment-result-get.md (12266b), references/apis/bg-logistics-shipment-shippingtype-update.md (4078b), references/apis/bg-logistics-shipment-sub-confirm.md (3780b), references/apis/bg-logistics-shipment-update.md (22780b), references/apis/bg-logistics-shipment-v2-confirm.md (9830b), references/apis/bg-logistics-shipment-v2-get.md (7790b), references/apis/bg-logistics-shipped-package-confirm.md (12003b), references/apis/bg-logistics-shippingservices-get.md (16712b), references/apis/bg-logistics-warehouse-list-get.md (5890b), references/apis/bg-order-unshipped-package-get.md (8632b), references/apis/README.md (5874b), references/apis/temu-logistics-candidate-scanform-list-get.md (7852b), references/apis/temu-logistics-label-list-get.md (10665b), references/apis/temu-logistics-scanform-create.md (10879b), references/apis/temu-logistics-scanform-document-get.md (5609b), references/apis/temu-logistics-scanform-get.md (9688b), references/apis/temu-logistics-shiplogisticstype-get.md (6118b), references/apis/temu-logistics-shipment-pickup-reservation-cancel.md (5528b), references/apis/temu-logistics-shipment-pickup-reservation-create.md (7907b), references/apis/temu-logistics-shipment-pickup-reservation-result-get.md (6273b), references/apis/temu-track-trackinginfo-get.md (6094b), references/authorization-flow.md (1186b), references/onboarding.md (2046b), references/partner-us-catalog.md (12357b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12432b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3096b), scripts/_us_fulfillment_script.py (500b), 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 (1621b), scripts/temu_proxy.py (2053b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (668b), scripts/temu_us_proxy.py (868b), scripts/us_buy_shipping_logistics_candidate_scanform_list_get.py (340b), scripts/us_buy_shipping_logistics_label_list_get.py (290b), scripts/us_buy_shipping_logistics_scanform_create.py (309b), scripts/us_buy_shipping_logistics_scanform_document_get.py (302b), scripts/us_buy_shipping_logistics_scanform_get.py (298b), scripts/us_buy_shipping_logistics_shiplogisticstype_get.py (320b), scripts/us_buy_shipping_logistics_shipment_create.py (309b), scripts/us_buy_shipping_logistics_shipment_document_get.py (321b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_cancel.py (338b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_create.py (332b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_result_get.py (356b), scripts/us_buy_shipping_logistics_shipment_result_get.py (314b), scripts/us_buy_shipping_logistics_shipment_update.py (304b), scripts/us_buy_shipping_logistics_shipped_package_confirm.py (316b), scripts/us_buy_shipping_logistics_shippingservices_get.py (339b), scripts/us_buy_shipping_logistics_warehouse_list_get.py (307b), scripts/us_buy_shipping_order_unshipped_package_get.py (310b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py (307b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py (304b), scripts/us_co_warehouse_cooperativewarehouse_provider_list.py (304b), scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py (320b), scripts/us_self_fulfilled_logistics_companies_get.py (288b), scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py (328b), scripts/us_self_fulfilled_logistics_shipment_sub_confirm.py (309b), scripts/us_self_fulfilled_logistics_shipment_v2_confirm.py (311b), scripts/us_self_fulfilled_logistics_shipment_v2_get.py (298b), scripts/us_tracking_track_trackinginfo_get.py (268b), skill-card.md (3035b), SKILL.md (4745b), _meta.json (146b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: linkfox-temu-fulfillment-us\ndescription: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。\n---\n\n# Temu 美国站 — 电商履行 / 发货（Fulfillment）\n\n本 skill（`linkfox-temu-fulfillment-us`）合并原 **Buy-Shipping**、**Co-Warehouse**、**Self-Fulfilled Shipments**、**Tracking** 四个 skill，覆盖 Partner US **Fulfillment** 域 **27** 个已接入 `type`。\n\n| 域 | 脚本前缀 | 接口数 |\n|----|----------|--------|\n| Buy-Shipping | `us_buy_shipping_*` | 17 |\n| Co-Warehouse | `us_co_warehouse_*` | 4 |\n| Self-Fulfilled | `us_self_fulfilled_*` | 5 |\n| Tracking | `us_tracking_*` | 1 |\n\n详见 [partner-us-catalog.md](./references/partner-us-catalog.md)。\n\n**网关**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 履约 OpenAPI | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 订单列表/详情/地址 | `linkfox-temu-order-us` |\n| 取消订单 | `linkfox-temu-cancel-order-us` |\n| 商品管理 | `linkfox-temu-manage-product-us` |\n| 退货退款 | `linkfox-temu-returns-refunds-us` |\n| 全球站履约 | `linkfox-temu-fulfillment-global`（无 Scan Form） |\n\n## 默认参数\n\n| 字段 | 默认 |\n|------|------|\n| site | `us` |\n| managementType | `semi-managed` |\n| tokenPurpose | `order-shipping` |\n\n## Scripts（按域）\n\n### Buy-Shipping（`us_buy_shipping_*`）\n\n购标、面单、Scan Form、上门揽收等 — 见 [apis/README.md](./references/apis/README.md#buy-shipping购标面单scan-form)。\n\n### Co-Warehouse（`us_co_warehouse_*`）\n\n`bg.cooperativewarehouse.*` — 合作仓授权、提交/取消履约。\n\n### Self-Fulfilled（`us_self_fulfilled_*`）\n\n`bg.logistics.shipment.v2.*`、`shippingtype.update` 等 — 卖家自带运单号。\n\n### Tracking（`us_tracking_*`）\n\n`temu.track.trackinginfo.get`\n\n### 通用\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_us_proxy.py` | 任意 `type` |\n| `temu_us_file_download.py` | 加签文件下载 |\n\n薄封装统一调用 **`_us_fulfillment_script.run_cli`**。\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# Buy-Shipping 购标\npython scripts/us_buy_shipping_logistics_shipment_create.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": { }\n}'\n\n# 卖家自发货更新跟踪号\npython scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": { \"editPackageRequestList\": [{ \"packageSn\": \"PKG-1\", \"trackingNumber\": \"1Z...\" }] }\n}'\n```\n\n## 积分消耗规则\n\n不消耗积分。\n\n**Feedback：** `skillName`：`linkfox-temu-fulfillment-us`\n\nFile v1.0.6:references/apis/README.md\n\n# Fulfillment — 接口文档索引（US）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。\n\n## Buy-Shipping（购标/面单/Scan Form）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 仓库 / 物流基础\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.warehouse.list.get` | [bg-logistics-warehouse-list-get.md](./bg-logistics-warehouse-list-get.md) |\n\n## 查价 / 购标 / 面单\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.shippingservices.get` | [bg-logistics-shippingservices-get.md](./bg-logistics-shippingservices-get.md) |\n| `bg.logistics.shipment.create` | [bg-logistics-shipment-create.md](./bg-logistics-shipment-create.md) |\n| `bg.logistics.shipment.result.get` | [bg-logistics-shipment-result-get.md](./bg-logistics-shipment-result-get.md) |\n| `bg.logistics.shipment.update` | [bg-logistics-shipment-update.md](./bg-logistics-shipment-update.md) |\n| `bg.logistics.shipment.document.get` | [bg-logistics-shipment-document-get.md](./bg-logistics-shipment-document-get.md) |\n| `temu.logistics.shiplogisticstype.get` | [temu-logistics-shiplogisticstype-get.md](./temu-logistics-shiplogisticstype-get.md) |\n| `temu.logistics.label.list.get` | [temu-logistics-label-list-get.md](./temu-logistics-label-list-get.md) |\n| `temu.logistics.candidate.scanform.list.get` | [temu-logistics-candidate-scanform-list-get.md](./temu-logistics-candidate-scanform-list-get.md) |\n| `temu.logistics.scanform.create` | [temu-logistics-scanform-create.md](./temu-logistics-scanform-create.md) |\n| `temu.logistics.scanform.document.get` | [temu-logistics-scanform-document-get.md](./temu-logistics-scanform-document-get.md) |\n| `temu.logistics.scanform.get` | [temu-logistics-scanform-get.md](./temu-logistics-scanform-get.md) |\n\n## 订单 / 未发货包裹 / 确认发货\n\n| type | 文档 |\n|------|------|\n| `bg.order.unshipped.package.get` | [bg-order-unshipped-package-get.md](./bg-order-unshipped-package-get.md) |\n| `bg.logistics.shipped.package.confirm` | [bg-logistics-shipped-package-confirm.md](./bg-logistics-shipped-package-confirm.md) |\n\n## 上门揽收预约（Pickup Reservation）\n\n| type | 文档 |\n|------|------|\n| `temu.logistics.shipment.pickup.reservation.create` | [temu-logistics-shipment-pickup-reservation-create.md](./temu-logistics-shipment-pickup-reservation-create.md) |\n| `temu.logistics.shipment.pickup.reservation.result.get` | [temu-logistics-shipment-pickup-reservation-result-get.md](./temu-logistics-shipment-pickup-reservation-result-get.md) |\n| `temu.logistics.shipment.pickup.reservation.cancel` | [temu-logistics-shipment-pickup-reservation-cancel.md](./temu-logistics-shipment-pickup-reservation-cancel.md) |\n\n## 取消 / 改单（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## Co-Warehouse（合作仓履约）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n> **Semi-managed only**：本 skill 仅适用于半托管（`managementType=semi-managed`）合作仓履约场景。\n\n## 合作仓服务商 / 授权\n\n| type | 文档 |\n|------|------|\n| `bg.cooperativewarehouse.provider.list` | [bg-cooperativewarehouse-provider-list.md](./bg-cooperativewarehouse-provider-list.md) |\n| `bg.cooperativewarehouse.token.authorization` | [bg-cooperativewarehouse-token-authorization.md](./bg-cooperativewarehouse-token-authorization.md) |\n\n## 合作仓履约\n\n| type | 文档 |\n|------|------|\n| `bg.cooperativewarehouse.fulfill.submit` | [bg-cooperativewarehouse-fulfill-submit.md](./bg-cooperativewarehouse-fulfill-submit.md) |\n| `bg.cooperativewarehouse.fulfill.cancel` | [bg-cooperativewarehouse-fulfill-cancel.md](./bg-cooperativewarehouse-fulfill-cancel.md) |\n| `bg.cooperativewarehouse.fulfill.query` | _待接入_ |\n\n## SKU 关系\n\n| type | 文档 |\n|------|------|\n| `temu.cooperativewarehouse.skurelationship.create` | _待接入_ |\n| `temu.cooperativewarehouse.skurelationship.get` | _待接入_ |\n\n## Self-Fulfilled Shipments（卖家自发货）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 发货 / 确认发货\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.shipment.v2.confirm` | [bg-logistics-shipment-v2-confirm.md](./bg-logistics-shipment-v2-confirm.md) |\n| `bg.logistics.shipment.sub.confirm` | [bg-logistics-shipment-sub-confirm.md](./bg-logistics-shipment-sub-confirm.md) |\n| `bg.logistics.shipment.shippingtype.update` | [bg-logistics-shipment-shippingtype-update.md](./bg-logistics-shipment-shippingtype-update.md) |\n\n## 物流 / 面单 / 包裹\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.companies.get` | [bg-logistics-companies-get.md](./bg-logistics-companies-get.md) |\n| `bg.logistics.shipment.v2.get` | [bg-logistics-shipment-v2-get.md](./bg-logistics-shipment-v2-get.md) |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## Tracking（物流跟踪）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 物流跟踪\n\n| type | 文档 |\n|------|------|\n| `temu.track.trackinginfo.get` | [temu-track-trackinginfo-get.md](./temu-track-trackinginfo-get.md) |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-fulfillment-us\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786720485419\n}\n\nFile v1.0.6:references/access-token.md\n\n# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=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-fulfillment-us — API 参考\n\nTemu **美国站电商履行/发货**（Buy-Shipping + Co-Warehouse + Self-Fulfilled + Tracking），经 `temu_us_proxy`（`POST /temu/proxy`）转发。\n\n> 网关与鉴权见 `scripts/`；`tokenPurpose=order-shipping`。\n\n## 调用规范\n\n| 项 | 说明 |\n|----|------|\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\n| 履约 OpenAPI | `POST /temu/proxy` |\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=order-shipping` |\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（网关按 `site` 解析） |\n\n### 网关请求 Body（`/temu/proxy`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | `us`（本 skill 默认） |\n| managementType | string | 是 | `semi-managed` |\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\n| tokenPurpose | string | 否 | 建议 **`order-shipping`** |\n| type | string | 是 | Temu 接口名，如 Partner 文档中的 `bg.*` / `temu.*` |\n| params | object | 否 | 业务参数；多数接口业务块在 **`params.request`** |\n\n### 网关响应\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\n\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\n\n### 脚本调用\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/temu_us_proxy.py '{\"accessToken\":\"TOKEN\",\"tokenPurpose\":\"order-shipping\",\"type\":\"<API_TYPE>\",\"params\":{\"request\":{}}}'\n```\n\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\n\n---\n\n## 接口一览\n\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-us-catalog.md](./partner-us-catalog.md)。\n\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)（随接入递增）。\n\n| type | 说明 | 文档 |\n|------|------|------|\n| `bg.logistics.warehouse.list.get` | 获取店铺仓库列表（可筛支持购标仓库） | [apis/bg-logistics-warehouse-list-get.md](./apis/bg-logistics-warehouse-list-get.md) |\n| `temu.logistics.shiplogisticstype.get` | 获取在线发货物流类型（购标前选类型） | [apis/temu-logistics-shiplogisticstype-get.md](./apis/temu-logistics-shiplogisticstype-get.md) |\n| `bg.logistics.shippingservices.get` | 按包裹尺寸/重量查询可用物流渠道（Buy-Shipping 查价） | [apis/bg-logistics-shippingservices-get.md](./apis/bg-logistics-shippingservices-get.md) |\n| `bg.logistics.shipment.create` | 在线下单购标（创建包裹，返回 packageSnList） | [apis/bg-logistics-shipment-create.md](./apis/bg-logistics-shipment-create.md) |\n| `bg.logistics.shipment.result.get` | 查询购标/在线下单结果（shippingLabelStatus） | [apis/bg-logistics-shipment-result-get.md](./apis/bg-logistics-shipment-result-get.md) |\n| `bg.logistics.shipment.update` | 延后发货时限更新 / 购标失败包裹重试 | [apis/bg-logistics-shipment-update.md](./apis/bg-logistics-shipment-update.md) |\n| `bg.logistics.shipment.document.get` | 获取面单/运单文档 URL（PDF/PNG） | [apis/bg-logistics-shipment-document-get.md](./apis/bg-logistics-shipment-document-get.md) |\n| `bg.order.unshipped.package.get` | 查询 Temu 集成物流已履约、未发货确认的包裹 | [apis/bg-order-unshipped-package-get.md](./apis/bg-order-unshipped-package-get.md) |\n| `temu.logistics.label.list.get` | 查询 Temu 平台购标面单列表（筛选/分页） | [apis/temu-logistics-label-list-get.md](./apis/temu-logistics-label-list-get.md) |\n| `bg.logistics.shipped.package.confirm` | 批量确认包裹已发货（购标后出库） | [apis/bg-logistics-shipped-package-confirm.md](./apis/bg-logistics-shipped-package-confirm.md) |\n| `temu.logistics.candidate.scanform.list.get` | 查询可生成 Scan Form 的候选包裹分组 | [apis/temu-logistics-candidate-scanform-list-get.md](./apis/temu-logistics-candidate-scanform-list-get.md) |\n| `temu.logistics.scanform.create` | 创建 Scan Form（USPS manifestation 等） | [apis/temu-logistics-scanform-create.md](./apis/temu-logistics-scanform-create.md) |\n| `temu.logistics.scanform.get` | 查询 Scan Form 详情（状态、分页筛选） | [apis/temu-logistics-scanform-get.md](./apis/temu-logistics-scanform-get.md) |\n| `temu.logistics.scanform.document.get` | 获取 Scan Form 文档 URL | [apis/temu-logistics-scanform-document-get.md](./apis/temu-logistics-scanform-document-get.md) |\n| `temu.logistics.shipment.pickup.reservation.create` | 预约上门揽收（同渠道同仓，最多 50 包裹/次） | [apis/temu-logistics-shipment-pickup-reservation-create.md](./apis/temu-logistics-shipment-pickup-reservation-create.md) |\n| `temu.logistics.shipment.pickup.reservation.result.get` | 查询上门揽收预约结果（reservationSn / reservationStatus） | [apis/temu-logistics-shipment-pickup-reservation-result-get.md](./apis/temu-logistics-shipment-pickup-reservation-result-get.md) |\n| `temu.logistics.shipment.pickup.reservation.cancel` | 取消上门揽收预约（reservationSn） | [apis/temu-logistics-shipment-pickup-reservation-cancel.md](./apis/temu-logistics-shipment-pickup-reservation-cancel.md) |\n\n---\n\n## 典型 Buy-Shipping 流程\n\n```text\n1. linkfox-temu-order-us                    → 查待发货订单（注意 earliestTimeBuyShippingLabel 等字段）\n2. bg.logistics.warehouse.list.get          → 仓库列表 / warehouseId（购标可用仓库）\n3. temu.logistics.shiplogisticstype.get     → 在线发货物流类型 shipLogisticsType\n4. bg.logistics.shippingservices.get        → 可用渠道 / channelId、估价\n5. bg.logistics.shipment.create              → 购标，获得 packageSnList\n6. temu.logistics.shipment.pickup.reservation.create（可选） → 需上门揽收渠道时预约时段\n7. temu.logistics.shipment.pickup.reservation.result.get → 查询揽收预约结果\n8. temu.logistics.shipment.pickup.reservation.cancel（可选） → 取消揽收预约\n9. bg.logistics.shipment.result.get         → 轮询购标结果 / 面单状态\n10. bg.logistics.shipment.update             → 调整 shipLaterLimitTime 或失败包裹重试\n11. temu.logistics.candidate.scanform.list.get（可选） → 可合并 Scan Form 的候选包裹分组\n12. temu.logistics.scanform.create（可选）   → USPS 等创建 Scan Form / manifestation\n13. temu.logistics.scanform.get（可选）      → 查询 Scan Form 状态与详情\n14. temu.logistics.scanform.document.get    → Scan Form 文档 url\n15. bg.logistics.shipment.document.get      → 面单 URL；temu_us_file_download 下载 PDF/PNG\n16. temu.logistics.label.list.get            → 面单列表查询（状态/打印/时间窗筛选）\n17. bg.order.unshipped.package.get          → 已购标、待发货确认包裹列表\n18. bg.logistics.shipped.package.confirm    → 确认已发货（48h 内未确认可能自动转已发货）\n19. linkfox-temu-order-us                   → 刷新订单发货状态\n```\n\n订单列表/详情/地址解密等请用 **`linkfox-temu-order-us`**。卖家自带运单号发货请用 **`linkfox-temu-fulfillment-us`**。\n\n---\n\n## 网关错误码\n\n| code | 说明 | 处理 |\n|------|------|------|\n| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 `LINKFOXAGENT_API_KEY` |\n| 1003 | 转发失败 | 检查 Temu token、`tokenPurpose`、白名单、网络 |\n\n---\n\n## Feedback API\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- `skillName`: **`linkfox-temu-fulfillment-us`**\n\n## 典型 Co-Warehouse 流程\n\n```text\n1. linkfox-temu-order-us                         → 查待履约订单（合作仓相关字段）\n2. bg.cooperativewarehouse.provider.list         → 可选合作仓服务商、permitsStatus\n3. bg.cooperativewarehouse.token.authorization   → 服务商 Token 授权\n4. bg.cooperativewarehouse.fulfill.submit        → 提交合作仓履约\n5. bg.cooperativewarehouse.fulfill.cancel        → 取消合作仓履约单\n6. bg.cooperativewarehouse.fulfill.query         → 查询履约状态（待接入）\n7. linkfox-temu-fulfillment-us          → 物流轨迹（如需要）\n8. linkfox-temu-order-us                         → 刷新订单履约状态\n```\n\n---\n\n## 典型自发货流程\n\n```text\n1. linkfox-temu-order-us                    → 查待发货订单（fulfillmentType=fulfillBySeller）\n2. bg.logistics.companies.get               → carrierId（= logisticsServiceProviderId）\n3. linkfox-temu-fulfillment-us   → bg.logistics.warehouse.list.get（warehouseId）\n4. bg.logistics.shipment.v2.confirm         → 确认发货（主流程）\n5. bg.logistics.shipment.v2.get             → 核对运单/包裹/轨迹预警\n6. bg.logistics.shipment.sub.confirm        → 拆包追加子包裹（可选）\n7. bg.logistics.shipment.shippingtype.update → 更正跟踪号 / 集成改非集成（可选）\n8. linkfox-temu-order-us                    → 刷新订单发货状态\n```\n\n订单列表/详情/地址解密等请用 **`linkfox-temu-order-us`**；商品与库存请用 **`linkfox-temu-manage-product-us`**。\n\n---\n\n## 物流跟踪\n\n```text\ntemu.track.trackinginfo.get（本 skill，us_tracking_track_trackinginfo_get.py）\n```\n\nFile v1.0.6:references/apis/bg-cooperativewarehouse-fulfill-cancel.md\n\n# 取消合作仓履约单 — `bg.cooperativewarehouse.fulfill.cancel`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=085d46b8a6604228b371e0706ac4af7d |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.fulfill.cancel`，业务载荷放在 Body 的 `params` |\n\n**Description:** cooperation warehouse ERP order\n\n（取消已提交至**合作仓（Cooperative Warehouse）**的 **ERP 履约单**；按 **`erpFulfillNo`** 标识要取消的履约单。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **前置依赖：**  \n> - 须已完成 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md) 绑定合作仓服务商。  \n> - **`erpFulfillNo`** 通常来自 [**`bg.cooperativewarehouse.fulfill.submit`**](./bg-cooperativewarehouse-fulfill-submit.md) 提交成功后的返回，或 **`bg.cooperativewarehouse.fulfill.query`**（待接入）查询结果。  \n> - 若履约单不存在，返回错误码 **170020004**。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    └── erpFulfillNo (STRING, 必填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| erpFulfillNo | STRING | **是** | erpFulfillNo（合作仓 **ERP 履约单号**；卖家/ERP 侧用于标识该笔合作仓履约请求的唯一编号，须与提交履约时使用的 **`erpFulfillNo`** 一致） |\n\n> 官方 Request 表将顶层 **`request`** 标为选填（False），但 **`erpFulfillNo`** 为必填（True）。Partner **Request Example** CURL 将 **`erpFulfillNo`** 写在顶层；经 LinkFox 网关时建议放在 **`params.request.erpFulfillNo`**。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"erpFulfillNo\": \"ERP-FULFILL-20260101001\"\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 子行在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── erpFulfillNo (STRING)\n    └── cwFulfillNo (STRING)\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | 业务结果对象（取消履约结果） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| erpFulfillNo | STRING | ERP fulfillment order number（ERP 履约单号；与请求 **`erpFulfillNo`** 对应，用于确认已受理取消的履约单） |\n| cwFulfillNo | STRING | Cooperative warehouse fulfillment order number（合作仓侧履约单号；Temu/合作仓系统生成的履约单标识，与 **`erpFulfillNo`** 关联，便于在 **`fulfill.query`** 等接口中追踪） |\n\n> 调用成功时先判断 **`success === true`**，再核对 **`result.erpFulfillNo`** 与请求一致。取消是否最终生效可能还须通过 **`bg.cooperativewarehouse.fulfill.query`**（待接入）或订单状态复核。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 170020001 | This ERP provider is not supported. | 检查合作仓服务商是否受支持 |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 先完成 [**token.authorization**](./bg-cooperativewarehouse-token-authorization.md) |\n| 170020003 | The parameter is illegal, please check and try again. | 检查 **`erpFulfillNo`** 格式 |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. | 核对 **`erpFulfillNo`** 是否存在、是否已取消 |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | 客户编码与授权不一致，重新授权 |\n\n<details>\n<summary>完整错误码列表（5 条，Partner 原文）</summary>\n\n| 错误码 | 错误信息 |\n|--------|----------|\n| 170020001 | This ERP provider is not supported. |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. |\n| 170020003 | The parameter is illegal, please check and try again. |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. |\n\n</details>\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list      → 选择 warehouseProviderCode\n2. bg.cooperativewarehouse.token.authorization → 合作仓授权\n3. bg.cooperativewarehouse.fulfill.submit      → 提交履约，获得 erpFulfillNo\n4. bg.cooperativewarehouse.fulfill.cancel      → 本接口：按 erpFulfillNo 取消\n5. bg.cooperativewarehouse.fulfill.query       → 查询取消后状态（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"erpFulfillNo\": \"ERP-FULFILL-20260101001\"\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.cooperativewarehouse.fulfill.cancel\",\n  \"params\": {\n    \"request\": {\n      \"erpFulfillNo\": \"ERP-FULFILL-20260101001\"\n    }\n  }\n}'\n```\n\nFile v1.0.6:references/apis/bg-cooperativewarehouse-fulfill-submit.md\n\n# 提交合作仓履约 — `bg.cooperativewarehouse.fulfill.submit`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=d2d218ed9b8c4356aec5033744abe90b |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.fulfill.submit`，业务载荷放在 Body 的 `params` |\n\n**Description:** cooperativewarehouse_fulfill\n\n（向合作仓服务商提交一笔**合作仓履约单**：指定合作仓、ERP 履约号、尾程发货方式及子订单 SKU/数量等；平台返回履约状态与合作仓履约号。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **前置依赖：**  \n> - **`warehouseProviderCode`** 来自 [**`bg.cooperativewarehouse.provider.list`**](./bg-cooperativewarehouse-provider-list.md)。  \n> - 若 **`authorizeType=0`**（默认），须已完成 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md)，并填写 **`cwCustomerCode`**。  \n> - 若 **`authorizeType=1`**，须填写 **`authorizeToken`**（及可选 **`authorizeKey`**）。  \n> - **`orderSn`** / **`parentOrderSn`** 等通常来自 **`linkfox-temu-order-us`** 订单接口。  \n> **后续：** 可用 **`bg.cooperativewarehouse.fulfill.query`** 查询履约结果（待接入）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── warehouseProviderCode (STRING, 必填)\n    ├── authorizeType (INTEGER, 选填, 默认 0)\n    ├── authorizeKey (STRING, 选填)\n    ├── authorizeToken (STRING, 条件必填)\n    ├── cwCustomerCode (STRING, 条件必填)\n    ├── warehouseCode (STRING, 必填)\n    ├── erpFulfillNo (STRING, 必填)\n    ├── tailShippingMode (INTEGER, 选填)\n    ├── logisticsProductCode (STRING, 条件必填)\n    ├── packageSn (STRING, 条件必填)\n    ├── shipCompanyId (LONG, 选填)\n    ├── channelId (LONG, 选填)\n    ├── channelVersionId (LONG, 选填)\n    ├── shipCompanyName (STRING, 条件必填)\n    ├── trackingNumber (STRING, 条件必填)\n    ├── shippingLabelFileType (STRING, 条件必填)\n    ├── shippingLabelFileBase64 (STRING, 条件必填)\n    ├── shipLogisticsType (STRING, 条件必填)\n    └── orderList[] (OBJECT[], 必填)\n        ├── cwSkuCode (STRING, 必填)\n        ├── productSkuId (LONG, 选填)\n        ├── quantity (INTEGER, 必填)\n        ├── orderSn (STRING, 必填)\n        ├── parentOrderSn (STRING, 必填)\n        └── skuId (LONG, 选填)\n```\n\n> Partner **Request** 表在导出 HTML 中 **`orderList`** 子行未展开；上表 **`orderList[]`** 子字段按 **Request Example** 与 **Error Code**（170020024–170020027）补全。\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| warehouseProviderCode | STRING | **是** | cooperative warehouse provider code（合作仓服务商编码；与 [**provider.list**](./bg-cooperativewarehouse-provider-list.md) 中 **`warehouseProviderCode`** 一致） |\n| authorizeType | INTEGER | 否 | Cooperation warehouse authorization methods（合作仓授权方式：**`0`** = 使用平台授权信息（using platform authorization information）；**`1`** = 直接上传授权信息（directly uploading authorization information）。未传时**默认为 `0`**） |\n| authorizeKey | STRING | 否 | cooperative warehouse authorization app key（合作仓授权 App Key；部分服务商在 **`authorizeType=1`** 时与 **`authorizeToken`** 一并使用） |\n| authorizeToken | STRING | 条件 | Cooperative Warehouse Authorization Token, mandatory when authorizeType is 1（合作仓授权 Token；**`authorizeType=1`** 时**必填**，错误码 **170020038**） |\n| cwCustomerCode | STRING | 条件 | cooperative warehouse customer code, mandatory when authorizeType is 0（合作仓客户编码；**`authorizeType=0`**（含默认）时**必填**，错误码 **170020037**；须与已授权客户编码一致，见 **170020005**） |\n| warehouseCode | STRING | **是** | cooperative warehouse code（合作仓仓库编码） |\n| erpFulfillNo | STRING | **是** | erp fulfill number（ERP/WMS 侧履约单号；须唯一，重复提交见 **170020009**） |\n| tailShippingMode | INTEGER | 否 | tail shipping mode（尾程发货模式；不同取值下条件必填字段见下表及错误码 **170020028**–**170020036**） |\n| logisticsProductCode | STRING | 条件 | logistics product code（物流产品编码；**`tailShippingMode=0`** 时**必填**，错误码 **170020028**） |\n| packageSn | STRING | 条件 | package sn（包裹号；**`tailShippingMode=1`** 时**必填**，错误码 **170020029**；包裹不存在见 **170020039**） |\n| shipCompanyId | LONG | 否 | ship company id（承运商 ID；**`tailShippingMode=1`** 时**必填**，错误码 **170020034**；须与 **`shipCompanyName`** 映射一致，见 **170020011**） |\n| channelId | LONG | 否 | channel id（渠道 ID；**`tailShippingMode=1`** 时**必填**，错误码 **170020035**；须与 **`shipCompanyName`**、**`shipLogisticsType`** 匹配，见 **170020041**） |\n| channelVersionId | LONG | 否 | channel version id（渠道版本 ID） |\n| shipCompanyName | STRING | 条件 | ship company name（承运商名称；**`tailShippingMode=1`** 时**必填**，错误码 **170020030**） |\n| trackingNumber | STRING | 条件 | trackingNumber（运单号；**`tailShippingMode=1`** 时**必填**，错误码 **170020031**；须与包裹运单一致，见 **170020040**） |\n| shippingLabelFileType | STRING | 条件 | ship label file type（面单文件类型；**`tailShippingMode=1`** 时**必填**，错误码 **170020032**；类型非法见 **170020007**） |\n| shippingLabelFileBase64 | STRING | 条件 | shippingLabelFileBase64（面单文件 Base64 内容；**`tailShippingMode=1`** 时**必填**，错误码 **170020033**；内容非法见 **170020008**） |\n| shipLogisticsType | STRING | 条件 | shipLogisticsType（物流类型；**`tailShippingMode=1`** 时**必填**，错误码 **170020036**） |\n| orderList | OBJECT[] | **是** | sub order list（子订单列表；至少一条，错误码 **170020023**） |\n\n#### `authorizeType` 与授权字段\n\n| authorizeType | 含义 | 必填业务字段 |\n|---------------|------|----------------|\n| `0`（默认） | 使用平台授权信息 | **`cwCustomerCode`** |\n| `1` | 直接上传授权 | **`authorizeToken`**（可选 **`authorizeKey`**） |\n\n#### `tailShippingMode` 与尾程字段\n\n| tailShippingMode | 含义（Partner 表仅写 tail shipping mode；条件必填以 Error Code 为准） | 条件必填字段 |\n|------------------|------------------------------------------------------------------------|----------------|\n| `0` | 合作仓/平台物流产品发货 | **`logisticsProductCode`** |\n| `1` | 卖家/ERP 自带面单与运单 | **`packageSn`**、**`shipCompanyName`**、**`trackingNumber`**、**`shippingLabelFileType`**、**`shippingLabelFileBase64`**、**`shipCompanyId`**、**`channelId`**、**`shipLogisticsType`** |\n\n> 尾程模式非法见 **170020006**；当前承运商不支持面单见 **170020010**。\n\n### `orderList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cwSkuCode | STRING | **是** | 合作仓 SKU 编码（Partner Request Example 字段；错误码 **170020026**） |\n| productSkuId | LONG | 否 | 商品 SKU ID（Partner Request Example 示例为数值；Request 表未单独列出） |\n| quantity | INTEGER | **是** | 发货数量（错误码 **170020027**） |\n| orderSn | STRING | **是** | 子订单号（错误码 **170020024**；无效见 **170020012**） |\n| parentOrderSn | STRING | **是** | 父订单号（错误码 **170020025**） |\n| skuId | LONG | 否 | SKU ID（Partner Request Example 示例为数值；Request 表未单独列出） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"warehouseProviderCode\": \"PROVIDER_CODE\",\n    \"authorizeType\": 0,\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseCode\": \"WAREHOUSE_CODE\",\n    \"erpFulfillNo\": \"ERP_FULFILL_NO_001\",\n    \"tailShippingMode\": 0,\n    \"logisticsProductCode\": \"LOGISTICS_PRODUCT_CODE\",\n    \"orderList\": [\n      {\n        \"cwSkuCode\": \"CW_SKU_001\",\n        \"productSkuId\": 1,\n        \"quantity\": 1,\n        \"orderSn\": \"ORDER_SN\",\n        \"parentOrderSn\": \"PARENT_ORDER_SN\",\n        \"skuId\": 1\n      }\n    ]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"warehouseProviderCode\": \"PROVIDER_CODE\",\n    \"authorizeType\": 1,\n    \"authorizeKey\": \"AUTHORIZE_KEY\",\n    \"authorizeToken\": \"AUTHORIZE_TOKEN\",\n    \"warehouseCode\": \"WAREHOUSE_CODE\",\n    \"erpFulfillNo\": \"ERP_FULFILL_NO_002\",\n    \"tailShippingMode\": 1,\n    \"packageSn\": \"PACKAGE_SN\",\n    \"shipCompanyId\": 1,\n    \"channelId\": 1,\n    \"channelVersionId\": 1,\n    \"shipCompanyName\": \"CARRIER_NAME\",\n    \"trackingNumber\": \"TRACKING_NUMBER\",\n    \"shippingLabelFileType\": \"PDF\",\n    \"shippingLabelFileBase64\": \"BASE64_LABEL_CONTENT\",\n    \"shipLogisticsType\": \"LOGISTICS_TYPE\",\n    \"orderList\": [\n      {\n        \"cwSkuCode\": \"CW_SKU_001\",\n        \"quantity\": 1,\n        \"orderSn\": \"ORDER_SN\",\n        \"parentOrderSn\": \"PARENT_ORDER_SN\"\n      }\n    ]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 子行在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── fulfillStatus (INTEGER)\n    ├── erpFulfillNo (STRING)\n    └── cwFulfillNo (STRING)\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | response result（业务结果对象） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| fulfillStatus | INTEGER | 履约状态（Partner Response 表未展开；**Response Example** 示例值为 **`1`**，具体枚举以 Temu/合作仓文档为准） |\n| erpFulfillNo | STRING | erp fulfill number（回显提交的 ERP 履约单号） |\n| cwFulfillNo | STRING | 合作仓履约单号（合作仓侧生成的履约编号，用于后续查询/对账） |\n\n> 调用成功时先判断 **`success === true`**，再读 **`result.fulfillStatus`**、**`result.cwFulfillNo`**。若需轮询或核对，使用 **`bg.cooperativewarehouse.fulfill.query`**（待接入）。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 170020021 | Parameter [warehouseProviderCode] is required but not provided in the input | 填写 **`warehouseProviderCode`** |\n| 170020022 | Parameter [erpFulfillNo] is required but not provided in the input | 填写 **`erpFulfillNo`** |\n| 170020023 | Parameter [orderList] is required but not provided in the input | 提供 **`orderList`** 且至少一条 |\n| 170020024 | Parameter [orderSn] is required but not provided in the input | **`orderList[]`** 中填写 **`orderSn`** |\n| 170020025 | Parameter [parentOrderSn] is required but not provided in the input | 填写 **`parentOrderSn`** |\n| 170020026 | Parameter [cwSkuCode] is required but not provided in the input | 填写 **`cwSkuCode`** |\n| 170020027 | Parameter [quantity] is required but not provided in the input | 填写 **`quantity`** |\n| 170020028 | The [tailShippingMode] is 0, and the required parameter [logisticsProductCode] has not been filled in | **`tailShippingMode=0`** 时补 **`logisticsProductCode`** |\n| 170020029 | The [tailShippingMode] is 1, and the required parameter [packageSn] has not been filled in | **`tailShippingMode=1`** 时补 **`packageSn`** |\n| 170020030 | The [tailShippingMode] is 1, and the required parameter [shipCompanyName] has not been filled in | 补 **`shipCompanyName`** |\n| 170020031 | [tailShippingMode] is 1, and the required parameter [trackingNumber] has not been filled in | 补 **`trackingNumber`** |\n| 170020032 | The [tailShippingMode] is 1, and the required parameter [shippingLabelFileType] has not been filled in | 补 **`shippingLabelFileType`** |\n| 170020033 | The [tailShippingMode] is 1, and the required parameter [shippingLabelFileBase64] has not been filled in | 补 **`shippingLabelFileBase64`** |\n| 170020034 | The [tailShippingMode] is 1, and the required parameter [shipCompanyId] has not been filled in | 补 **`shipCompanyId`** |\n| 170020035 | The [tailShippingMode] is 1, and the required parameter [channelId] has not been filled in | 补 **`channelId`** |\n| 170020036 | The [tailShippingMode] is 1, and the required parameter [shipLogisticsType] has not been filled in | 补 **`shipLogisticsType`** |\n| 170020037 | The [authorizeType] is 0, and the required parameter [cwCustomerCode] has not been filled in | **`authorizeType=0`** 时补 **`cwCustomerCode`** |\n| 170020038 | The [authorizeType] is 1, and the required parameter [authorizeToken] has not been filled in | **`authorizeType=1`** 时补 **`authorizeToken`** |\n| 170020039 | The package number does not exist. | 检查 **`packageSn`** |\n| 170020040 | The tracking number corresponding to this package does not match the trackingNumber field. | **`trackingNumber`** 与包裹运单一致 |\n| 170020041 | ChannelId, shipCompanyName and logisticType not match, please check! | 核对 **`channelId`** / **`shipCompanyName`** / **`shipLogisticsType`** |\n| 170020001 | This ERP provider is not supported. | 更换支持的 **`warehouseProviderCode`** |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 先完成服务商授权 |\n| 170020003 | The parameter is illegal, please check and try again. | 检查入参格式 |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | 修正 **`cwCustomerCode`** |\n| 170020009 | This fulfillment order already exists, please submit another one. | 更换 **`erpFulfillNo`** |\n| 170020006 | This fulfillment order has wrong tail shipping mode, please check and try again. | 修正 **`tailShippingMode`** 及关联字段 |\n| 170020007 | This fulfillment order has wrong shipping label file type, please check and try again. | 修正 **`shippingLabelFileType`** |\n| 170020008 | This fulfillment order has wrong shipping label file content, please check and try again. | 修正 **`shippingLabelFileBase64`** |\n| 170020010 | The service provider does not support shipping label for the current shippingCompanyName... | 更换承运商或尾程方式 |\n| 170020011 | This ship company id not match with the ship company name mapped. | **`shipCompanyId`** 与 **`shipCompanyName`** 一致 |\n| 170020012 | The parentOrderSn in fulfill order is invalid. | 核对订单号 |\n| 170020014 | The cooperative warehouse service provider returned: API authorization exception... | 刷新合作仓 Token |\n| 170020016 | Your store has been restricted from using the function of logistics shipping by partner warehouse service providers... | 联系平台/服务商解除限制 |\n\n<details>\n<summary>完整错误码列表（Partner 原文，含占位符项）</summary>\n\n| 错误码 | 错误信息 |\n|--------|----------|\n| 170020017 | Parameter {*} is required but not provided in the input. |\n| 170020018 | The [authorizeType] is {*} , and the required parameter {*} has not been filled in. |\n| 170020019 | The [tailShippingMode] is {*} and the required parameter {*} has not been filled in. |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |\n| 170020013 | The service provider has not signed the DPA Agreement of the country and cannot perform the contract... |\n| 170020015 | The current order does not support address query, please check! |\n\n</details>\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list      → warehouseProviderCode、warehouseCode\n2. bg.cooperativewarehouse.token.authorization → authorizeType=0 时绑定 cwCustomerCode\n3. bg.cooperativewarehouse.fulfill.submit      → 本接口：提交履约\n4. bg.cooperativewarehouse.fulfill.query         → 查询履约结果（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"warehouseProviderCode\": \"PROVIDER_CODE\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseCode\": \"WAREHOUSE_CODE\",\n    \"erpFulfillNo\": \"ERP_FULFILL_NO_001\",\n    \"tailShippingMode\": 0,\n    \"logisticsProductCode\": \"LOGISTICS_PRODUCT_CODE\",\n    \"orderList\": [\n      {\n        \"cwSkuCode\": \"CW_SKU_001\",\n        \"quantity\": 1,\n        \"orderSn\": \"ORDER_SN\",\n        \"parentOrderSn\": \"PARENT_ORDER_SN\"\n      }\n    ]\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.cooperativewarehouse.fulfill.submit\",\n  \"params\": {\n    \"request\": {\n      \"warehouseProviderCode\": \"PROVIDER_CODE\",\n      \"warehouseCode\": \"WAREHOUSE_CODE\",\n      \"erpFulfillNo\": \"ERP_FULFILL_NO_001\",\n      \"orderList\": []\n    }\n  }\n}'\n```\n\nFile v1.0.6:references/apis/bg-cooperativewarehouse-provider-list.md\n\n# 合作仓服务商列表 — `bg.cooperativewarehouse.provider.list`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_provider_list.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=e77d444a60b540039bfa1fc64e3cada7 |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.provider.list`，业务载荷放在 Body 的 `params` |\n\n**Description:** cooperate warehouse erp order（Partner 导出页 Description 原文；本接口用于查询**合作仓（Cooperative Warehouse）服务商/ERP** 列表及授权许可状态，供后续 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md) 等合作仓履约流程使用。）\n\n（查询当前店铺可用的**合作仓服务商**（Warehouse Provider）列表，包含服务商编码、品牌、支持的承运商、区域、客户编码及包裹配送类型等；**`permitsStatus`** 反映合作仓相关许可/授权状态。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **后续：** 授权绑定见 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md)；履约提交见 [**`bg.cooperativewarehouse.fulfill.submit`**](./bg-cooperativewarehouse-fulfill-submit.md)；查询见 **`bg.cooperativewarehouse.fulfill.query`**（待接入）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    └── needAllPlatformProviders (BOOLEAN, 选填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| needAllPlatformProviders | BOOLEAN | 否 | needAllPlatformProviders（是否返回**全平台**合作仓服务商列表；Partner Request 表将该说明写在 Required 列。`true` 时通常返回平台侧全部可选服务商；`false` 或不传时返回与当前店铺/授权范围相关的服务商，以实际调通为准） |\n\n> 官方 Request 表将 **`request`** 与 **`needAllPlatformProviders`** 均标为选填（False）。Partner **Request Example** CURL 将 **`needAllPlatformProviders`** 写在顶层，经 LinkFox 网关时建议放在 **`params.request.needAllPlatformProviders`**。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"needAllPlatformProviders\": true\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {}\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── permitsStatus\n    └── warehouseProviderList[] (OBJECT[])\n        ├── warehouseProviderCode\n        ├── warehouseProviderBrandName\n        ├── supportNoCwCustomCode\n        ├── cwCustomerCodeList[] (STRING[])\n        ├── regionId[] (STRING[])\n        ├── supportedPackageDeliveryType[] (INTEGER[])\n        └── supportedShipCompany[] (OBJECT[])\n            ├── shipCompanyName\n            └── shipCompanyId\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | result（业务结果对象） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| permitsStatus | INTEGER | Permits / authorization status（合作仓相关许可或授权状态；Response Example 为 **`1`**；具体枚举含义以 Partner 在线 Response 表为准，可结合后续 **`bg.cooperativewarehouse.token.authorization`** 判断店铺是否已完成服务商授权） |\n| warehouseProviderList | OBJECT[] | Warehouse provider list（合作仓服务商列表） |\n\n#### `warehouseProviderList[]` 元素字段\n\n> Partner **Response** 表中 **`result`** 子行在导出 HTML 中为折叠状态；下列字段与类型来自 **Response Example**，说明结合 Co-Warehouse 履约语义整理。若 Partner 在线文档 **Expand** 后有更完整枚举，以在线表为准。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| warehouseProviderCode | STRING | Warehouse provider code（合作仓服务商编码；后续授权、履约接口中标识服务商） |\n| warehouseProviderBrandName | STRING | Warehouse provider brand name（合作仓服务商品牌/展示名称） |\n| supportNoCwCustomCode | INTEGER | Whether supports scenarios without cooperative warehouse custom code（是否支持无合作仓客户编码（cw custom code）的场景；Response Example 为 **`1`**，具体布尔语义以 Partner 为准） |\n| cwCustomerCodeList | STRING[] | Cooperative warehouse customer code list（合作仓客户编码列表；绑定/授权后用于履约） |\n| regionId | STRING[] | Region ID list（该服务商支持的发货/履约区域 ID 列表） |\n| supportedPackageDeliveryType | INTEGER[] | Supported package delivery type list（支持的包裹配送类型列表；Response Example 为整数数组，具体类型枚举以 Partner 为准） |\n| supportedShipCompany | OBJECT[] | Supported shipping company list（该合作仓服务商支持的物流公司/承运商列表） |\n\n##### `warehouseProviderList[].supportedShipCompany[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| shipCompanyId | INTEGER | Ship company ID（物流公司/承运商 ID） |\n| shipCompanyName | STRING | Ship company name（物流公司/承运商名称） |\n\n> 调用成功时先判断 **`success === true`**，再读 **`result.permitsStatus`** 与 **`warehouseProviderList`**。选定 **`warehouseProviderCode`** 后，通常继续调用 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md) 完成授权，再使用 **`bg.cooperativewarehouse.fulfill.submit`** 等提交合作仓履约。\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list（本接口）  → 查询可选合作仓服务商、permitsStatus\n2. bg.cooperativewarehouse.token.authorization      → 服务商 Token 授权（见 [文档](./bg-cooperativewarehouse-token-authorization.md)）\n3. bg.cooperativewarehouse.fulfill.submit      → 提交合作仓履约\n4. bg.cooperativewarehouse.fulfill.query       → 查询合作仓履约（待接入）\n4. linkfox-temu-order-us                           → 订单状态刷新\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_provider_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"needAllPlatformProviders\": true\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"type\": \"bg.cooperativewarehouse.provider.list\",\n  \"params\": {\n    \"request\": {}\n  }\n}'\n```\n\nFile v1.0.6:references/apis/bg-cooperativewarehouse-token-authorization.md\n\n# 合作仓 Token 授权 — `bg.cooperativewarehouse.token.authorization`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=607fb76a2ef943d78e97dadbeca71aad |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.token.authorization`，业务载荷放在 Body 的 `params` |\n\n**Description:** Cooperative warehouse token authorization\n\n（将卖家在**合作仓服务商（ERP/WMS）**侧取得的访问凭证授权绑定到 Temu 店铺，使平台可代店铺调用该合作仓履约能力。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **前置依赖：**  \n> - **`warehouseProviderCode`** 通常来自 [**`bg.cooperativewarehouse.provider.list`**](./bg-cooperativewarehouse-provider-list.md) 返回的 **`warehouseProviderList[].warehouseProviderCode`**。  \n> - **`cwAccessToken`**、**`cwCustomerCode`** 由合作仓服务商侧颁发/分配，须与所选 **`warehouseProviderCode`** 对应。  \n> - **`cwAppKey`** 为选填，部分 ERP 服务商要求与 **`cwAccessToken`** 一并提交。  \n> **后续：** 授权成功后可用 [**`bg.cooperativewarehouse.fulfill.submit`**](./bg-cooperativewarehouse-fulfill-submit.md) 提交合作仓履约；查询见 **`bg.cooperativewarehouse.fulfill.query`**（待接入）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── cwAppKey (STRING, 选填)\n    ├── cwAccessToken (STRING, 必填)\n    ├── cwCustomerCode (STRING, 必填)\n    └── warehouseProviderCode (STRING, 必填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cwAppKey | STRING | 否 | cwAppKey（合作仓/ERP 侧应用 Key；部分服务商授权流程需要，Partner 表为选填） |\n| cwAccessToken | STRING | **是** | cwAccessToken（合作仓服务商颁发的访问令牌；用于 Temu 校验卖家已在该服务商完成授权） |\n| cwCustomerCode | STRING | **是** | cwCustomerCode（合作仓客户编码；须与服务商侧授权的客户身份一致，错误码 **170020005**） |\n| warehouseProviderCode | STRING | **是** | warehouseProviderCode（合作仓服务商编码；与 [**provider.list**](./bg-cooperativewarehouse-provider-list.md) 中 **`warehouseProviderCode`** 一致） |\n\n> 官方 Request 表将顶层 **`request`** 标为选填（False），但 **`cwAccessToken`**、**`cwCustomerCode`**、**`warehouseProviderCode`** 为必填。Partner **Request Example** CURL 将业务字段写在顶层；经 LinkFox 网关时建议放在 **`params.request`** 下（亦可由 `extract_business_params` 放在 `params` 顶层转发）。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"cwAppKey\": \"YOUR_CW_APP_KEY\",\n    \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 子行在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── authorizationSuccess (BOOLEAN)\n    └── authorizationFailReason (STRING)\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | 业务结果对象（授权结果） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| authorizationSuccess | BOOLEAN | Whether cooperative warehouse token authorization succeeded（合作仓 Token 授权是否成功；**`true`** 表示授权通过，**`false`** 表示未通过，须结合 **`authorizationFailReason`** 排查） |\n| authorizationFailReason | STRING | Authorization failure reason（授权失败原因说明；**`authorizationSuccess`** 为 **`true`** 时可能为空或占位文案，以 Temu 实际返回为准） |\n\n> 调用成功时先判断 **`success === true`**，再读 **`result.authorizationSuccess`**。若为 **`false`**，根据 **`authorizationFailReason`** 与下方业务错误码修正 **`cwAccessToken`** / **`cwCustomerCode`** / **`warehouseProviderCode`**，或确认店铺已在服务商侧完成授权（**170020002**）。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 170020001 | This ERP provider is not supported. | 更换支持的 **`warehouseProviderCode`** / ERP 服务商 |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 店铺未对该合作仓服务商授权，先在服务商侧完成授权 |\n| 170020003 | The parameter is illegal, please check and try again. | 检查入参格式与必填字段 |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. | 履约单号不存在（本接口较少见，以 Partner 为准） |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | **`cwCustomerCode`** 与服务商侧已授权客户编码不一致 |\n\n<details>\n<summary>完整错误码列表（5 条，Partner 原文）</summary>\n\n| 错误码 | 错误信息 |\n|--------|----------|\n| 170020001 | This ERP provider is not supported. |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. |\n| 170020003 | The parameter is illegal, please check and try again. |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. |\n\n</details>\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list      → 获取 warehouseProviderCode、permitsStatus\n2. bg.cooperativewarehouse.token.authorization → 本接口：提交 cwAccessToken / cwCustomerCode 完成绑定\n3. bg.cooperativewarehouse.fulfill.submit      → 提交合作仓履约\n4. bg.cooperativewarehouse.fulfill.query         → 查询履约结果（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"cwAppKey\": \"YOUR_CW_APP_KEY\",\n    \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.cooperativewarehouse.token.authorization\",\n  \"params\": {\n    \"request\": {\n      \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n      \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n      \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n    }\n  }\n}'\n```\n\nFile v1.0.6:references/apis/bg-logistics-companies-get.md\n\n# 获取区域可用物流商 — `bg.logistics.companies.get`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_self_fulfilled_logistics_companies_get.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=38e79b35d2cb463d85619c1c786dd303&sub_menu_code=97bf9f5f4f454a589fb3192725bfeb7a |\n| **网关** | `POST /temu/proxy`，`type`=`bg.logistics.companies.get`，业务载荷放在 Body 的 `params` |\n\n**Description:** Obtain full logistics providers that support shipping at the corresponding region（获取指定区域下支持发货的全部物流服务商列表）。\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。建议使用 **`tokenPurpose=order-shipping`**。自发货确认物流、创建运单前，通常需先调用本接口取得 `logisticsServiceProviderId` 等。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    └── regionId              ← 必填\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| regionId | INTEGER | **是** | Region ID（区域 ID）。完整编码表见 Partner 文档：[regionId 编码说明](https://partner.temu.com/documentation?menu_code=38e79b35d2cb463d85619c1c786dd303&sub_menu_code=97bf9f5f4f454a589fb3192725bfeb7a)。美国站常用示例：**211**（USA，与 `linkfox-temu-order-us` 订单接口一致）。 |\n\n> 官方表将顶层 **`request`** 标为选填（False），但 **`request.regionId`** 为必填；实际调用时**应始终传入 `request` 且包含 `regionId`**，否则无法按区域筛选物流商。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"regionId\": 211\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success          ← 请求级是否成功\n├── errorCode\n├── errorMsg\n└── result[]         ← 物流服务商列表（OBJECT 数组）\n    ├── logisticsServiceProviderId\n    ├── logisticsServiceProviderName\n    └── logisticsBrandName\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT[] | 该区域下支持发货的物流服务商列表；无数据时可能为空数组 `[]` |\n\n### `result[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| logisticsServiceProviderId | INTEGER | logistics Service Provider Id（物流服务商 ID；后续发货/创建运单等接口常作为承运商标识入参） |\n| logisticsServiceProviderName | STRING | logistics Service Provider Name（物流服务商名称） |\n| logisticsBrandName | STRING | logistics Brand Name（物流品牌名称；Partner 原文描述为 “logistics Service Provider Name”，与 `logisticsServiceProviderName` 字段区分，以实际返回为准） |\n\n> 调用成功时先判断 **`response.success === true`**，再遍历 **`result`** 选用 `logisticsServiceProviderId` / `logisticsServiceProviderName`。`errorCode` / `errorMsg` 非空或 `success === false` 时以错误信息为准。\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 专用脚本（美国站 regionId=211）\npython scripts/us_self_fulfilled_logistics_companies_get.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"regionId\": 211\n  }\n}'\n```\n\n```bash\n# 通用代理（等价）\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.logistics.companies.get\",\n  \"params\": {\n    \"request\": {\n      \"regionId\": 211\n    }\n  }\n}'\n```\n\n---\n\n## 典型用法\n\n1. 从订单接口（如 `bg.order.detail.v2.get`）或业务上下文确认 **`regionId`**（美国站多为 **211**）。\n2. 调用本接口获取该区域可用 **`logisticsServiceProviderId`** 列表。\n3. 用户或后续脚本选择承运商后，再调用自发货相关创建运单 / 确认发货等接口（待接入）。\n\nFile v1.0.6:references/apis/bg-logistics-shipment-create.md\n\n# 在线下单购标 — `bg.logistics.shipment.create`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_buy_shipping_logistics_shipment_create.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=1eadab72ed8041318604b163dd75cdac |\n| **网关** | `POST /temu/proxy`，`type`=`bg.logistics.shipment.create`，业务载荷放在 Body 的 `params` |\n\n**Description:** The `bg.logistics.shipment.create` interface is for sellers to place online logistics orders and receive package numbers, which enables sellers to effortlessly place logistics orders with selected carriers online.（卖家在线向 Temu 集成承运商下单购标，创建包裹并获取 **packageSn**；是 Buy-Shipping 购标核心接口。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。建议使用 **`tokenPurpose=order-shipping`**。  \n> **前置依赖：** `warehouseId` 来自 **`bg.logistics.warehouse.list.get`**；`channelId` / `shipCompanyId` / `shipLogisticsType` / `signServiceId` 等来自 **`bg.logistics.shippingservices.get`** 或 **`temu.logistics.shiplogisticstype.get`**；`parentOrderSn` / `orderSn` / `quantity` 来自 **`linkfox-temu-order-us`**。  \n> **异步说明：** 部分场景下单为异步处理；若返回成功但无运单，请用 [**`bg.logistics.shipment.result.get`**](./bg-logistics-shipment-result-get.md) 按 **`packageSnList`** 查询结果（错误码 `120012013`）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── sendType                    ← 必填\n    ├── sendRequestList[]           ← 选填（Package List Information；实际购标须传）\n    │   ├── warehouseId\n    │   ├── weight / weightUnit / extendWeight / extendWeightUnit\n    │   ├── length / width / height / dimensionUnit\n    │   ├── shipCompanyId\n    │   ├── channelId               ← 与 shipLogisticsType 二选一履约方式\n    │   ├── shipLogisticsType       ← 与 channelId 二选一履约方式\n    │   ├── signServiceId\n    │   ├── pickupStartTime / pickupEndTime\n    │   ├── orderSendInfoList[]\n    │   │   ├── parentOrderSn\n    │   │   ├── orderSn\n    │   │   ├── goodsId\n    │   │   ├── skuId\n    │   │   └── quantity\n    │   ├── confirmAcceptance[]\n    │   ├── splitSubPackage\n    │   ├── sendSubRequestList[]    ← splitSubPackage=true 时必填\n    │   │   └── （附属包裹：尺寸/重量/渠道/仓库等，结构见下）\n    │   ├── interlineShipCompanyList[]  ← 联运/分段渠道时必填\n    │   │   ├── shipStageType\n    │   │   ├── shipLogisticsType\n    │   │   ├── shipCompanyId\n    │   │   └── channelId\n    │   ├── cooperativeWarehouseShipment\n    │   ├── uspsMailingDateOffset\n    │   └── autoConfirmAfterPickup\n    ├── shipLater                   ← 选填\n    └── shipLaterLimitTime          ← 选填（shipLater=true 时按订单标签传）\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| sendType | INTEGER | **是** | SendType（发货方式），见下表 |\n| sendRequestList | OBJECT[] | 否* | Package List Information（包裹列表信息；购标时**须传**至少一个包裹） |\n| shipLater | BOOLEAN | 否 | Ship Later（是否稍后发货），见下表 |\n| shipLaterLimitTime | STRING | 否 | 稍后发货截止时间（小时数，字符串形式），见下表 |\n\n\\* Partner Request 表将 **`sendRequestList`** 标为选填（False），但购标业务**必须**传入有效包裹明细。\n\n#### `sendType`\n\n| 值 | 说明 |\n|----|------|\n| `0` | All the products in **one parent order** are shipped in **one package** with **one tracking number**（同一父订单全部商品，一个包裹、一个运单号） |\n| `1` | **Partial** products in one parent order are shipped in **multiple packages** with multiple tracking numbers; **all products in that parent order must be submitted in one API call**（同一父订单部分商品拆多包裹；该父订单下所有待发商品须在一次调用中全部提交） |\n| `2` | All the products in **multiple parent orders** are shipped in **one package** with **one tracking number**（多个父订单合并为一个包裹、一个运单号） |\n\n#### `shipLater`\n\n| 值 | 说明 |\n|----|------|\n| `true` | Apply to create the package and tracking numbers from Temu-integrated carriers online; mark this package as **「ship later」**（在线购标并创建运单，包裹标记为稍后发货）。带 **「Y2_advance_sale」** 标签的订单购标时**必须**设为 `true`（错误码 `120015534`） |\n| `false` | Apply to create the package and tracking numbers online, **ship the package immediately** and mark as shipped（在线购标、创建运单并立即发货）。**COD 订单**不允许 `shipLater=true`（错误码 `120011053`） |\n\n#### `shipLaterLimitTime`\n\n| 订单标签 | 可选值（小时，字符串） |\n|----------|------------------------|\n| **无** `Y2_advance_sale` 标签 | `24`, `48`, `72`, `96`, `120` |\n| **有** `Y2_advance_sale` 标签 | `144`, `168`, `192`, `216`, `240`, `264`, `288`, `312`, `336`, `360` |\n\n> 无效枚举将报错 `120015532`。与 **`shipLater=true`** 配合使用，表示稍后发货的截止时间。\n\n#### `sendRequestList[]` 元素字段\n\n> Partner Request 表中 `sendRequestList` 子行在导出 HTML 中为折叠状态；下列字段、类型与说明来自 **Request 表**（顶层）、**Request Example**、**Response Example** 关联字段及 Partner **Error Code** 表。\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| warehouseId | STRING | **是** | Warehouse ID（发货仓库 ID；来自 **`bg.logistics.warehouse.list.get`** 的 **`warehouseId`**） |\n| weight | STRING | **是** | 包裹重量。美国本地：整数**磅**写在 **`weight`**，小数/盎司部分写在 **`extendWeight`**（单位 **`oz`**）；须为整数时见错误码 `120015521` |\n| weightUnit | STRING | **是** | 重量单位。美国包裹：**`lb`**；其他国家：**`kg`** |\n| extendWeight | STRING | 否 | 扩展重量（美国本地订单的小数/盎司部分） |\n| extendWeightUnit | STRING | 否 | 扩展重量单位。美国本地：**`oz`** |\n| length | STRING | **是** | 包裹长度，保留两位小数 |\n| width | STRING | **是** | 包裹宽度，保留两位小数 |\n| height | STRING | **是** | 包裹高度，保留两位小数 |\n| dimensionUnit | STRING | **是** | 尺寸单位。美国：**`in`**；其他国家：**`cm`** |\n| shipCompanyId | INTEGER / LONG | **是** | Shipping company ID（物流公司 ID；与 **`bg.logistics.shippingservices.get`** 返回的 **`shipCompanyId`** 一致） |\n| channelId | INTEGER / LONG | 条件 | Channel ID（物流渠道 ID；与 **`bg.logistics.shippingservices.get`** 返回的 **`channelId`** 一致）。与 **`shipLogisticsType`** **二选一**作为履约方式（错误码 `120015032`） |\n| shipLogisticsType | STRING | 条件 | Ship logistics type（物流类型标识；来自 **`temu.logistics.shiplogisticstype.get`** 或查价返回）。选定后 Temu 可自动匹配推荐 **`channelId`**。与 **`channelId`** **二选一** |\n| signServiceId | INTEGER | 否 | Signature service ID（签收/签名服务 ID；来自查价 **`onlineChannelDtoList[].signServiceId`**） |\n| pickupStartTime | INTEGER | 条件 | Pickup window start time（预约上门揽收开始时间；**需要预约揽收的渠道**必填，见 **`pickupRules`** / **`availablePickupTimeSlotList`**） |\n| pickupEndTime | INTEGER | 条件 | Pickup window end time（预约上门揽收结束时间；须晚于 **`pickupStartTime`**） |\n| orderSendInfoList | OBJECT[] | **是** | Product list in this package（本包裹内要发货的商品行） |\n| confirmAcceptance | STRING[] | 否 | Confirmation matters for this shipment（本批发货需确认的异常/预警事项），见下表 |\n| splitSubPackage | BOOLEAN | 否 | 是否为**单件 SKU 拆多包裹**（`true`：单件 SKU 多包裹；`false`/不传：否）。为 `true` 时 **`quantity` 须为 1**（`120011045`），且须传 **`sendSubRequestList`** |\n| sendSubRequestList | OBJECT[] | 条件 | Attached sub-packages for single-SKU multi-package scenario（单件 SKU 多包裹时的**附属包裹**列表；**最多 10 个**，`120011044`）。**COD 订单**不允许（`120011051`） |\n| interlineShipCompanyList | OBJECT[] | 条件 | Interline / split-channel shipping legs（联运/分段渠道信息；使用分段渠道时**必填**，`120011111`） |\n| cooperativeWarehouseShipment | BOOLEAN | 否 | Whether fulfillment uses **cooperative warehouse** mode（合作仓发货；部分渠道强制合作仓，`120018085`） |\n| uspsMailingDateOffset | INTEGER | 条件 | USPS mailing date offset（USPS 邮寄日期偏移；部分 USPS 渠道禁止为 `0`，`120018086`） |\n| autoConfirmAfterPickup | BOOLEAN | 否 | Auto-confirm shipment after pickup（揽收后自动确认发货） |\n\n##### `orderSendInfoList[]` 元素字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| parentOrderSn | STRING | **是** | Parent Order Number（父订单号） |\n| orderSn | STRING | **是** | Order Number（子订单号）；每项**不可缺失**（`120011113`） |\n| goodsId | LONG | **是** | Goods ID（商品 ID） |\n| skuId | LONG | **是** | SKU ID |\n| quantity | INTEGER | **是** | Quantity of the product（本行发货数量；**splitSubPackage=true** 时须为 1） |\n\n##### `confirmAcceptance[]` 枚举值\n\n| 值 | 说明 |\n|----|------|\n| `DENY_CANCELLATION` | Reject the cancellation request and proceed with shipment（拒绝取消申请后继续发货；订单存在待处理取消时，`120012030`） |\n| `DENY_ADDRESS_CHANGE` | Reject the address change request and proceed（拒绝改地址申请后继续发货；`120012023`） |\n| `DENY_PARENT_RISK_WARNING` | Reject/acknowledge parent order risk warning and proceed（确认父订单风控预警后继续发货；`120012031` / `120012061`） |\n| `SUCCESSFUL_RETRY` | Confirm retry after a previous successful call（前次下 call 已成功后的再次请求确认） |\n| `NO_DELIVERY_ON_SATURDAY` | Confirm Saturday non-delivery is acceptable（确认允许周六不派送） |\n\n> 仅当订单存在对应待处理事项且商家选择继续发货时传入。\n\n##### `sendSubRequestList[]` 元素字段\n\n> 单件 SKU 拆多包裹时，主包裹 + 附属包裹共同完成发货；附属包裹**不含** `orderSendInfoList`（商品行在主包裹 **`sendRequestList`** 元素上）。\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| warehouseId | STRING | **是** | Warehouse ID（附属包裹发货仓库） |\n| weight | STRING | **是** | 包裹重量 |\n| weightUnit | STRING | **是** | 重量单位（美国 **`lb`**） |\n| extendWeight | STRING | 否 | 扩展重量 |\n| extendWeightUnit | STRING | 否 | 扩展重量单位（美国 **`oz`**） |\n| length | STRING | **是** | 包裹长度 |\n| width | STRING | **是** | 包裹宽度 |\n| height | STRING | **是** | 包裹高度 |\n| dimensionUnit | STRING | **是** | 尺寸单位（美国 **`in`**） |\n| shipCompanyId | INTEGER / LONG | **是** | Shipping company ID |\n| channelId | INTEGER / LONG | **是** | Channel ID |\n| shipLogisticsType | STRING | 否 | Ship logistics type（若渠道按类型履约） |\n| signServiceId | INTEGER | 否 | Signature service ID |\n| pickupStartTime | INTEGER | 条件 | Pickup start time |\n| pickupEndTime | INTEGER | 条件 | Pickup end time |\n| interlineShipCompanyList | OBJECT[] | 条件 | Interline legs（结构同主包裹） |\n| confirmAcceptance | STRING[] | 否 | Confirmation matters |\n\n##### `interlineShipCompanyList[]` 元素字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| shipStageType | STRING | **是** | Shipping stage type（运输段类型，如首程/末程；与 **`bg.logistics.shippingservices.get`** 的 **`interlineChannelInfoList[].shipStageType`** 一致） |\n| shipLogisticsType | STRING | **是** | Logistics type for this stage（该段物流类型标识） |\n| shipCompanyId | INTEGER / LONG | **是** | Shipping company ID for this stage |\n| channelId | INTEGER / LONG | **是** | Channel ID for this stage |\n\n### 网关 `params` 写法（`sendType=0` 单包裹购标示例）\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"sendType\": 0,\n    \"shipLater\": false,\n    \"sendRequestList\": [\n      {\n        \"warehouseId\": \"WH-001\",\n        \"length\": \"12.00\",\n        \"width\": \"8.00\",\n        \"height\": \"4.00\",\n        \"dimensionUnit\": \"in\",\n        \"weight\": \"2\",\n        \"weightUnit\": \"lb\",\n        \"extendWeight\": \"8\",\n        \"extendWeightUnit\": \"oz\",\n        \"shipCompanyId\": 314439762,\n        \"channelId\": 19409681780736,\n        \"orderSendInfoList\": [\n          {\n            \"parentOrderSn\": \"PO-20260101001\",\n            \"orderSn\": \"O-20260101001-1\",\n            \"goodsId\": 6017592186252451,\n            \"skuId\": 281474976920151,\n            \"quantity\": 1\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"sendType\": 0,\n    \"shipLater\": true,\n    \"shipLaterLimitTime\": \"48\",\n    \"sendRequestList\": [\n      {\n        \"warehouseId\": \"WH-001\",\n        \"shipLogisticsType\": \"USPS_GROUND_ADVANTAGE\",\n        \"length\": \"12.00\",\n        \"width\": \"8.00\",\n        \"height\": \"4.00\",\n        \"dimensionUnit\": \"in\",\n        \"weight\": \"2\",\n        \"weightUnit\": \"lb\",\n        \"shipCompanyId\": 314439762,\n        \"signServiceId\": 1001,\n        \"pickupStartTime\": 1717200000,\n        \"pickupEndTime\": 1717203600,\n        \"orderSendInfoList\": [\n          {\n            \"parentOrderSn\": \"PO-20260101001\",\n            \"orderSn\": \"O-20260101001-1\",\n            \"goodsId\": 6017592186252451,\n            \"skuId\": 281474976920151,\n            \"quantity\": 1\n          }\n        ],\n        \"confirmAcceptance\": [\"DENY_CANCELLATION\"]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── packageSnList[] (STRING[])\n    ├── warningMessage[] (STRING[])\n    └── shipLaterLimitTime (STRING)\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | result（业务结果对象） |\n\n### `result` 内字段\n\n> Partner Response 表中 `result` 子行在导出 HTML 中为折叠状态；下列字段来自 **Response Example** 与购标后续流程约定。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| packageSnList | STRING[] | Package SN list（本次下单创建的**包裹号**列表；用于 **`bg.logistics.shipment.result.get`** 查询下单结果、**`bg.logistics.shipment.document.get`** 拉取面单） |\n| warningMessage | STRING[] | Warning messages（警告信息列表；非阻塞提示，购标仍可能成功） |\n| shipLaterLimitTime | STRING | Ship-later limit time returned when applicable（若请求 **`shipLater=true`**，可能返回确认的稍后发货截止时间/小时配置） |\n\n> 调用成功时先判断 **`response.success === true`**，再使用 **`result.packageSnList`** 走结果查询与面单下载。若 **`warningMessage`** 非空，建议记录并人工确认是否影响发货。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文摘要） | 处理建议 |\n|--------|----------------------|----------|\n| 120012013 | Already requested by Temu integrated logistics; check via result.get | 调用 **`bg.logistics.shipment.result.get`** 确认是否已成功 |\n| 120015032 | Choose channelId **or** shipLogisticsType | 二选一履约，勿同时乱填 |\n| 120011111 | Split channel requires **interlineShipCompanyList** | 补全联运分段渠道 |\n| 120011110 | No eligible channelId | 核对渠道参数或重新 **shippingservices.get** |\n| 120011112 | Missing **shipCompanyId** | 补全物流公司 ID |\n| 120011113 | **orderSendInfoList** missing orderSn | 每项商品行须有 **orderSn** |\n| 120013002 | Item quantity does not match | 核对 **quantity** 与订单待发数量 |\n| 120012015 | Combined delivery: addresses differ | 合并发货时地址须一致 |\n| 120015032 | channelId or shipLogisticsType | 见上 |\n| 120011053 | COD: shipLater must be FALSE | COD 勿稍后发货 |\n| 120011051 | COD: no sub-packages | COD 勿拆子包裹 |\n| 120011057 / 120018028 | COD vs PPD cannot mix in one request | 勿混 COD 与预付订单 |\n| 120012037 | Before earliestTimeBuyShippingLabel | 未到可购标时间 |\n| 120015534 | Y2_advance_sale: shipLater=true required | 预售标签订单须稍后发货 |\n| 120015532 | shipLaterLimitTime invalid | 按订单标签选合法小时数 |\n| 120015533 | Y2_advance_sale cannot mix with normal orders | 勿混预售与普通订单 |\n| 120011043 | Missing **sendSubRequestList** | splitSubPackage 场景补子包裹 |\n| 120011044 | Max 10 attached packages | 子包裹 ≤ 10 |\n| 120011045 | splitSubPackage: quantity must be 1 | 拆包场景数量为 1 |\n| 120018084 | Cooperative warehouse: no split sub package | 合作仓不支持拆子包裹 |\n| 120018086 | USPSMailingDateOffset cannot be 0 | 调整 USPS 偏移 |\n| 120019009 / 120019019 | Invalid pickup time | 按 **pickupRules** 重选时段 |\n| 120015507 | Wrong package information | 检查重量尺寸单位 |\n| 120015521 | Weight should be integer (US) | 美国 **weight** 用整数磅 |\n| 120011006 | warehouseId invalid | 用 **warehouse.list.get** 有效 ID |\n| 120012007 / 120012016 | parentOrder/order invalid | 核对父子订单 |\n| 120015528 | COD orders: Temu Label only | COD 仅 Temu 面单 |\n| 120018063 | Funds reserved; Buy shipping disabled | 账户资金受限 |\n| 120012061 / 120012031 | Risk control alert on parent order | 评估是否继续发货 |\n\n> 完整错误码以 Partner 文档 **Error Code** 表为准（导出 HTML 含 70+ 条）。\n\n---\n\n## 典型用法\n\n```text\n1. bg.logistics.warehouse.list.get          → warehouseId\n2. linkfox-temu-order-us                    → parentOrderSn、orderSn、quantity、earliestTimeBuyShippingLabel\n3. bg.logistics.shippingservices.get        → channelId / shipCompanyId / signServiceId / pickup 时段\n   （或 temu.logistics.shiplogisticstype.get → shipLogisticsType）\n4. bg.logistics.shipment.create              → packageSnList（本接口）\n5. [bg.logistics.shipment.result.get](./bg-logistics-shipment-result-get.md) → 确认异步下单结果\n6. [bg.logistics.shipment.document.get](./bg-logistics-shipment-document-get.md) → 面单 URL\n7. [bg.order.unshipped.package.get](./bg-order-unshipped-package-get.md) → 未发货包裹列表\n7. bg.logistics.shipped.package.confirm      → 确认已发货（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_buy_shipping_logistics_shipment_create.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"sendType\": 0,\n    \"shipLater\": false,\n    \"sendRequestList\": [\n      {\n        \"warehouseId\": \"WH-001\",\n        \"length\": \"12.00\",\n        \"width\": \"8.00\",\n        \"height\": \"4.00\",\n        \"dimensionUnit\": \"in\",\n        \"weight\": \"2\",\n        \"weightUnit\": \"lb\",\n        \"shipCompanyId\": 314439762,\n        \"channelId\": 19409681780736,\n        \"orderSendInfoList\": [\n          {\n            \"parentOrderSn\": \"PO-20260101001\",\n            \"orderSn\": \"O-20260101001-1\",\n            \"goodsId\": 6017592186252451,\n            \"skuId\": 281474976920151,\n            \"quantity\": 1\n          }\n        ]\n      }\n    ]\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.logistics.shipment.create\",\n  \"params\": {\n    \"request\": {\n      \"sendType\": 0,\n      \"shipLater\": false,\n      \"sendRequestList\": [\n        {\n          \"warehouseId\": \"WH-001\",\n          \"length\": \"12.00\",\n          \"width\": \"8.00\",\n          \"height\": \"4.00\",\n          \"dimensionUnit\": \"in\",\n          \"weight\": \"2\",\n          \"weightUnit\": \"lb\",\n          \"shipCompanyId\": 314439762,\n          \"channelId\": 19409681780736,\n          \"orderSendInfoList\": [\n            {\n              \"parentOrderSn\": \"PO-20260101001\",\n              \"orderSn\": \"O-20260101001-1\",\n              \"quantity\": 1\n            }\n          ]\n        }\n      ]\n    }\n  }\n}'\n```\n\nFile v1.0.6:references/apis/bg-logistics-shipment-document-get.md\n\n# 获取面单/运单文档 — `bg.logistics.shipment.document.get`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_buy_shipping_logistics_shipment_document_get.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=e2d5025ff75e4c7881cd786912ec8b63 |\n| **网关** | `POST /temu/proxy`，`type`=`bg.logistics.shipment.document.get`，业务载荷放在 Body 的 `params` |\n\n**Description:** The `bg.logistics.shipment.document.get` interface is for sellers to obtain the express delivery waybill which has been fulfilled successfully by Temu-integrated channel so as to facilitate the printing of the express delivery waybill and the package out of the warehouse.\n\n（卖家获取已通过 **Temu 集成物流渠道** 成功履约包裹的**快递面单/运单文档 URL**，用于打印面单、包裹出库。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**。  \n> **前置依赖：**  \n> - **`packageSnList`** 来自 **`bg.logistics.shipment.create`** 或 **`bg.logistics.shipment.result.get`**（购标成功 **`shippingLabelStatus=1`**）。  \n> - 须在订单 **`earliestTimeGetShippingDocument`** 之后调用（错误码 **120012038**）。  \n> - USPS 等渠道可能须先完成 **manifestation**；可通过 **`bg.logistics.shipment.result.get`** 查看 **`shipLabelPrintableTime`**，或使用 [**`temu.logistics.scanform.create`**](./temu-logistics-scanform-create.md) / 卖家中心 Scan Form（错误码 **120018012**）。  \n> 返回的 **`url`** 若为加签链接，可用本 skill 的 **`temu_us_file_download.py`**（`POST /temu/fileDownload`）下载 PDF/PNG 文件。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── documentType (STRING, 选填)\n    └── packageSnList[] (STRING[], 选填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| documentType | STRING | 否 | Document Type（面单文档类型），见下表 |\n| packageSnList | STRING[] | 否 | Package List that needs to get the shipping label（需要获取面单的包裹号列表） |\n\n#### `documentType`\n\n| 值 | 说明 |\n|----|------|\n| `SHIPPING_LABEL_PDF` | The document URL will return the shipping label in **PDF** format for all the carriers you choose（返回 PDF 格式面单；**推荐使用**） |\n| `SHIPPING_LABEL_PNG` | The document URL will return the shipping label in **PNG** format for all the carriers you choose（返回 PNG 格式面单） |\n| 不传 | The document URL will return the shipping label in PDF format or PNG format **based on which carrier you choose**（按承运商默认返回 PDF 或 PNG） |\n\n> 官方 Request 表将 **`request`**、**`documentType`**、**`packageSnList`** 均标为选填（False）；实际调用须传入有效 **`packageSnList`**（错误码 **120018027**）。Partner **Request Example** CURL 将字段写在顶层，经 LinkFox 网关时建议放在 **`params.request`** 下。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"documentType\": \"SHIPPING_LABEL_PDF\",\n    \"packageSnList\": [\"PKG-001\", \"PKG-002\"]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"packageSnList\": [\"PKG-001\"]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；网关解析后通常直接见到 `success` / `errorCode` / `errorMsg` / `result`。**`result`** 在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── shippingLabelUrlList[] (OBJECT[])\n    │   ├── packageSn\n    │   ├── documentType\n    │   └── url\n    └── warningMessage[] (STRING[])\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | result（业务结果对象） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| shippingLabelUrlList | OBJECT[] | 面单文档 URL 列表（每个元素对应一个 **`packageSn`** 的可打印面单链接） |\n| warningMessage | STRING[] | Warning messages（警告信息列表；部分包裹成功、部分有提示时可能出现，见 Response Example） |\n\n#### `shippingLabelUrlList[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| packageSn | STRING | Package SN（包裹号；与请求 **`packageSnList`** 中项对应） |\n| documentType | STRING | Document type actually returned（实际返回的文档类型，如 **`SHIPPING_LABEL_PDF`** / **`SHIPPING_LABEL_PNG`**） |\n| url | STRING | Document download URL（面单/运单文档下载地址；用于打印或经 **`temu_us_file_download.py`** 拉取文件） |\n\n#### `warningMessage[]` 元素\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| （元素） | STRING | 单条警告文案（Partner 未在 Response 表展开子字段；示例为字符串数组） |\n\n> 调用成功时先判断 **`response.success === true`**，再遍历 **`result.shippingLabelUrlList`** 取 **`url`** 打印或下载。若 **`warningMessage`** 非空，须阅读警告内容（可能部分包裹未返回 URL 或需额外操作）。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 120018027 | The packageSn is invalid. Please check the request area or if the packageSn is nonexistent etc. | 核对 **`packageSn`** 与站点 |\n| 120012038 | Order can only get shipping document after the \"earliestTimeGetShippingDocument\". | 等待订单到达可获取面单时间后再调 |\n| 120018012 | USPS labels require manifestation before printing. Check 'shipLabelPrintableTime' via 'bg.logistics.shipment.result.get' or use 'temu.logistics.scanform.create'/Seller Central Scan Form to update immediately. | 先查 **`shipLabelPrintableTime`** 或调用 [**`temu.logistics.scanform.create`**](./temu-logistics-scanform-create.md) |\n| 120018075 | The package {*} only supports shipping from cooperative warehouses and restricts the printing of shippingLabel | 合作仓包裹限制打印面单 |\n| 120011030 | Cooperative warehouse order fulfillment restricted. | 合作仓履约受限 |\n| 120018010 | The packages {*} have been canceled. Please fulfill again by Temu non-integrated logistics or Temu integrated logistics. | 包裹已取消，需重新履约 |\n\n---\n\n## 典型用法\n\n```text\n1. bg.logistics.shipment.create              → packageSnList\n2. bg.logistics.shipment.result.get          → shippingLabelStatus=1，确认可打印时间\n3. bg.logistics.shipment.document.get        → shippingLabelUrlList[].url\n4. temu_us_file_download.py（可选）         → 下载加签 PDF/PNG\n5. 打印面单 / 出库\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_buy_shipping_logistics_shipment_document_get.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"documentType\": \"SHIPPING_LABEL_PDF\",\n    \"packageSnList\": [\"PKG-001\", \"PKG-002\"]\n  }\n}'\n```\n\n```bash\n# 下载面单（若 url 需网关加签下载）\npython scripts/temu_us_file_download.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"url\": \"<shippingLabelUrlList[].url>\"\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.logistics.shipment.document.get\",\n  \"params\": {\n    \"request\": {\n      \"packageSnList\": [\"PKG-001\"]\n    }\n  }\n}'\n```\n\nArchive v1.0.5: 78 files, 150721 bytes\n\nFiles: references/access-token.md (4604b), references/api.md (9921b), references/apis/bg-cooperativewarehouse-fulfill-cancel.md (6135b), references/apis/bg-cooperativewarehouse-fulfill-submit.md (18045b), references/apis/bg-cooperativewarehouse-provider-list.md (7599b), references/apis/bg-cooperativewarehouse-token-authorization.md (7871b), references/apis/bg-logistics-companies-get.md (4206b), references/apis/bg-logistics-shipment-create.md (20968b), references/apis/bg-logistics-shipment-document-get.md (8032b), references/apis/bg-logistics-shipment-result-get.md (12266b), references/apis/bg-logistics-shipment-shippingtype-update.md (4078b), references/apis/bg-logistics-shipment-sub-confirm.md (3780b), references/apis/bg-logistics-shipment-update.md (22780b), references/apis/bg-logistics-shipment-v2-confirm.md (9830b), references/apis/bg-logistics-shipment-v2-get.md (7790b), references/apis/bg-logistics-shipped-package-confirm.md (12003b), references/apis/bg-logistics-shippingservices-get.md (16712b), references/apis/bg-logistics-warehouse-list-get.md (5890b), references/apis/bg-order-unshipped-package-get.md (8632b), references/apis/README.md (5874b), references/apis/temu-logistics-candidate-scanform-list-get.md (7852b), references/apis/temu-logistics-label-list-get.md (10665b), references/apis/temu-logistics-scanform-create.md (10879b), references/apis/temu-logistics-scanform-document-get.md (5609b), references/apis/temu-logistics-scanform-get.md (9688b), references/apis/temu-logistics-shiplogisticstype-get.md (6118b), references/apis/temu-logistics-shipment-pickup-reservation-cancel.md (5528b), references/apis/temu-logistics-shipment-pickup-reservation-create.md (7907b), references/apis/temu-logistics-shipment-pickup-reservation-result-get.md (6273b), references/apis/temu-track-trackinginfo-get.md (6094b), references/authorization-flow.md (1186b), references/onboarding.md (2046b), references/partner-us-catalog.md (12357b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12431b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3095b), scripts/_us_fulfillment_script.py (500b), 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 (1621b), scripts/temu_proxy.py (2053b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (668b), scripts/temu_us_proxy.py (868b), scripts/us_buy_shipping_logistics_candidate_scanform_list_get.py (340b), scripts/us_buy_shipping_logistics_label_list_get.py (290b), scripts/us_buy_shipping_logistics_scanform_create.py (309b), scripts/us_buy_shipping_logistics_scanform_document_get.py (302b), scripts/us_buy_shipping_logistics_scanform_get.py (298b), scripts/us_buy_shipping_logistics_shiplogisticstype_get.py (320b), scripts/us_buy_shipping_logistics_shipment_create.py (309b), scripts/us_buy_shipping_logistics_shipment_document_get.py (321b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_cancel.py (338b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_create.py (332b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_result_get.py (356b), scripts/us_buy_shipping_logistics_shipment_result_get.py (314b), scripts/us_buy_shipping_logistics_shipment_update.py (304b), scripts/us_buy_shipping_logistics_shipped_package_confirm.py (316b), scripts/us_buy_shipping_logistics_shippingservices_get.py (339b), scripts/us_buy_shipping_logistics_warehouse_list_get.py (307b), scripts/us_buy_shipping_order_unshipped_package_get.py (310b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py (307b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py (304b), scripts/us_co_warehouse_cooperativewarehouse_provider_list.py (304b), scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py (320b), scripts/us_self_fulfilled_logistics_companies_get.py (288b), scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py (328b), scripts/us_self_fulfilled_logistics_shipment_sub_confirm.py (309b), scripts/us_self_fulfilled_logistics_shipment_v2_confirm.py (311b), scripts/us_self_fulfilled_logistics_shipment_v2_get.py (298b), scripts/us_tracking_track_trackinginfo_get.py (268b), skill-card.md (2871b), SKILL.md (4745b), _meta.json (146b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: linkfox-temu-fulfillment-us\ndescription: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。\n---\n\n# Temu 美国站 — 电商履行 / 发货（Fulfillment）\n\n本 skill（`linkfox-temu-fulfillment-us`）合并原 **Buy-Shipping**、**Co-Warehouse**、**Self-Fulfilled Shipments**、**Tracking** 四个 skill，覆盖 Partner US **Fulfillment** 域 **27** 个已接入 `type`。\n\n| 域 | 脚本前缀 | 接口数 |\n|----|----------|--------|\n| Buy-Shipping | `us_buy_shipping_*` | 17 |\n| Co-Warehouse | `us_co_warehouse_*` | 4 |\n| Self-Fulfilled | `us_self_fulfilled_*` | 5 |\n| Tracking | `us_tracking_*` | 1 |\n\n详见 [partner-us-catalog.md](./references/partner-us-catalog.md)。\n\n**网关**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 履约 OpenAPI | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 订单列表/详情/地址 | `linkfox-temu-order-us` |\n| 取消订单 | `linkfox-temu-cancel-order-us` |\n| 商品管理 | `linkfox-temu-manage-product-us` |\n| 退货退款 | `linkfox-temu-returns-refunds-us` |\n| 全球站履约 | `linkfox-temu-fulfillment-global`（无 Scan Form） |\n\n## 默认参数\n\n| 字段 | 默认 |\n|------|------|\n| site | `us` |\n| managementType | `semi-managed` |\n| tokenPurpose | `order-shipping` |\n\n## Scripts（按域）\n\n### Buy-Shipping（`us_buy_shipping_*`）\n\n购标、面单、Scan Form、上门揽收等 — 见 [apis/README.md](./references/apis/README.md#buy-shipping购标面单scan-form)。\n\n### Co-Warehouse（`us_co_warehouse_*`）\n\n`bg.cooperativewarehouse.*` — 合作仓授权、提交/取消履约。\n\n### Self-Fulfilled（`us_self_fulfilled_*`）\n\n`bg.logistics.shipment.v2.*`、`shippingtype.update` 等 — 卖家自带运单号。\n\n### Tracking（`us_tracking_*`）\n\n`temu.track.trackinginfo.get`\n\n### 通用\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_us_proxy.py` | 任意 `type` |\n| `temu_us_file_download.py` | 加签文件下载 |\n\n薄封装统一调用 **`_us_fulfillment_script.run_cli`**。\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# Buy-Shipping 购标\npython scripts/us_buy_shipping_logistics_shipment_create.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": { }\n}'\n\n# 卖家自发货更新跟踪号\npython scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": { \"editPackageRequestList\": [{ \"packageSn\": \"PKG-1\", \"trackingNumber\": \"1Z...\" }] }\n}'\n```\n\n## 积分消耗规则\n\n不消耗积分。\n\n**Feedback：** `skillName`：`linkfox-temu-fulfillment-us`\n\nFile v1.0.5:references/apis/README.md\n\n# Fulfillment — 接口文档索引（US）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。\n\n## Buy-Shipping（购标/面单/Scan Form）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 仓库 / 物流基础\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.warehouse.list.get` | [bg-logistics-warehouse-list-get.md](./bg-logistics-warehouse-list-get.md) |\n\n## 查价 / 购标 / 面单\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.shippingservices.get` | [bg-logistics-shippingservices-get.md](./bg-logistics-shippingservices-get.md) |\n| `bg.logistics.shipment.create` | [bg-logistics-shipment-create.md](./bg-logistics-shipment-create.md) |\n| `bg.logistics.shipment.result.get` | [bg-logistics-shipment-result-get.md](./bg-logistics-shipment-result-get.md) |\n| `bg.logistics.shipment.update` | [bg-logistics-shipment-update.md](./bg-logistics-shipment-update.md) |\n| `bg.logistics.shipment.document.get` | [bg-logistics-shipment-document-get.md](./bg-logistics-shipment-document-get.md) |\n| `temu.logistics.shiplogisticstype.get` | [temu-logistics-shiplogisticstype-get.md](./temu-logistics-shiplogisticstype-get.md) |\n| `temu.logistics.label.list.get` | [temu-logistics-label-list-get.md](./temu-logistics-label-list-get.md) |\n| `temu.logistics.candidate.scanform.list.get` | [temu-logistics-candidate-scanform-list-get.md](./temu-logistics-candidate-scanform-list-get.md) |\n| `temu.logistics.scanform.create` | [temu-logistics-scanform-create.md](./temu-logistics-scanform-create.md) |\n| `temu.logistics.scanform.document.get` | [temu-logistics-scanform-document-get.md](./temu-logistics-scanform-document-get.md) |\n| `temu.logistics.scanform.get` | [temu-logistics-scanform-get.md](./temu-logistics-scanform-get.md) |\n\n## 订单 / 未发货包裹 / 确认发货\n\n| type | 文档 |\n|------|------|\n| `bg.order.unshipped.package.get` | [bg-order-unshipped-package-get.md](./bg-order-unshipped-package-get.md) |\n| `bg.logistics.shipped.package.confirm` | [bg-logistics-shipped-package-confirm.md](./bg-logistics-shipped-package-confirm.md) |\n\n## 上门揽收预约（Pickup Reservation）\n\n| type | 文档 |\n|------|------|\n| `temu.logistics.shipment.pickup.reservation.create` | [temu-logistics-shipment-pickup-reservation-create.md](./temu-logistics-shipment-pickup-reservation-create.md) |\n| `temu.logistics.shipment.pickup.reservation.result.get` | [temu-logistics-shipment-pickup-reservation-result-get.md](./temu-logistics-shipment-pickup-reservation-result-get.md) |\n| `temu.logistics.shipment.pickup.reservation.cancel` | [temu-logistics-shipment-pickup-reservation-cancel.md](./temu-logistics-shipment-pickup-reservation-cancel.md) |\n\n## 取消 / 改单（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## Co-Warehouse（合作仓履约）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n> **Semi-managed only**：本 skill 仅适用于半托管（`managementType=semi-managed`）合作仓履约场景。\n\n## 合作仓服务商 / 授权\n\n| type | 文档 |\n|------|------|\n| `bg.cooperativewarehouse.provider.list` | [bg-cooperativewarehouse-provider-list.md](./bg-cooperativewarehouse-provider-list.md) |\n| `bg.cooperativewarehouse.token.authorization` | [bg-cooperativewarehouse-token-authorization.md](./bg-cooperativewarehouse-token-authorization.md) |\n\n## 合作仓履约\n\n| type | 文档 |\n|------|------|\n| `bg.cooperativewarehouse.fulfill.submit` | [bg-cooperativewarehouse-fulfill-submit.md](./bg-cooperativewarehouse-fulfill-submit.md) |\n| `bg.cooperativewarehouse.fulfill.cancel` | [bg-cooperativewarehouse-fulfill-cancel.md](./bg-cooperativewarehouse-fulfill-cancel.md) |\n| `bg.cooperativewarehouse.fulfill.query` | _待接入_ |\n\n## SKU 关系\n\n| type | 文档 |\n|------|------|\n| `temu.cooperativewarehouse.skurelationship.create` | _待接入_ |\n| `temu.cooperativewarehouse.skurelationship.get` | _待接入_ |\n\n## Self-Fulfilled Shipments（卖家自发货）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 发货 / 确认发货\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.shipment.v2.confirm` | [bg-logistics-shipment-v2-confirm.md](./bg-logistics-shipment-v2-confirm.md) |\n| `bg.logistics.shipment.sub.confirm` | [bg-logistics-shipment-sub-confirm.md](./bg-logistics-shipment-sub-confirm.md) |\n| `bg.logistics.shipment.shippingtype.update` | [bg-logistics-shipment-shippingtype-update.md](./bg-logistics-shipment-shippingtype-update.md) |\n\n## 物流 / 面单 / 包裹\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.companies.get` | [bg-logistics-companies-get.md](./bg-logistics-companies-get.md) |\n| `bg.logistics.shipment.v2.get` | [bg-logistics-shipment-v2-get.md](./bg-logistics-shipment-v2-get.md) |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## Tracking（物流跟踪）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 物流跟踪\n\n| type | 文档 |\n|------|------|\n| `temu.track.trackinginfo.get` | [temu-track-trackinginfo-get.md](./temu-track-trackinginfo-get.md) |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-fulfillment-us\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1786101389140\n}\n\nFile v1.0.5:references/access-token.md\n\n# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=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-fulfillment-us — API 参考\n\nTemu **美国站电商履行/发货**（Buy-Shipping + Co-Warehouse + Self-Fulfilled + Tracking），经 `temu_us_proxy`（`POST /temu/proxy`）转发。\n\n> 网关与鉴权见 `scripts/`；`tokenPurpose=order-shipping`。\n\n## 调用规范\n\n| 项 | 说明 |\n|----|------|\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\n| 履约 OpenAPI | `POST /temu/proxy` |\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=order-shipping` |\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（网关按 `site` 解析） |\n\n### 网关请求 Body（`/temu/proxy`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | `us`（本 skill 默认） |\n| managementType | string | 是 | `semi-managed` |\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\n| tokenPurpose | string | 否 | 建议 **`order-shipping`** |\n| type | string | 是 | Temu 接口名，如 Partner 文档中的 `bg.*` / `temu.*` |\n| params | object | 否 | 业务参数；多数接口业务块在 **`params.request`** |\n\n### 网关响应\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\n\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\n\n### 脚本调用\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/temu_us_proxy.py '{\"accessToken\":\"TOKEN\",\"tokenPurpose\":\"order-shipping\",\"type\":\"<API_TYPE>\",\"params\":{\"request\":{}}}'\n```\n\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\n\n---\n\n## 接口一览\n\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-us-catalog.md](./partner-us-catalog.md)。\n\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)（随接入递增）。\n\n| type | 说明 | 文档 |\n|------|------|------|\n| `bg.logistics.warehouse.list.get` | 获取店铺仓库列表（可筛支持购标仓库） | [apis/bg-logistics-warehouse-list-get.md](./apis/bg-logistics-warehouse-list-get.md) |\n| `temu.logistics.shiplogisticstype.get` | 获取在线发货物流类型（购标前选类型） | [apis/temu-logistics-shiplogisticstype-get.md](./apis/temu-logistics-shiplogisticstype-get.md) |\n| `bg.logistics.shippingservices.get` | 按包裹尺寸/重量查询可用物流渠道（Buy-Shipping 查价） | [apis/bg-logistics-shippingservices-get.md](./apis/bg-logistics-shippingservices-get.md) |\n| `bg.logistics.shipment.create` | 在线下单购标（创建包裹，返回 packageSnList） | [apis/bg-logistics-shipment-create.md](./apis/bg-logistics-shipment-create.md) |\n| `bg.logistics.shipment.result.get` | 查询购标/在线下单结果（shippingLabelStatus） | [apis/bg-logistics-shipment-result-get.md](./apis/bg-logistics-shipment-result-get.md) |\n| `bg.logistics.shipment.update` | 延后发货时限更新 / 购标失败包裹重试 | [apis/bg-logistics-shipment-update.md](./apis/bg-logistics-shipment-update.md) |\n| `bg.logistics.shipment.document.get` | 获取面单/运单文档 URL（PDF/PNG） | [apis/bg-logistics-shipment-document-get.md](./apis/bg-logistics-shipment-document-get.md) |\n| `bg.order.unshipped.package.get` | 查询 Temu 集成物流已履约、未发货确认的包裹 | [apis/bg-order-unshipped-package-get.md](./apis/bg-order-unshipped-package-get.md) |\n| `temu.logistics.label.list.get` | 查询 Temu 平台购标面单列表（筛选/分页） | [apis/temu-logistics-label-list-get.md](./apis/temu-logistics-label-list-get.md) |\n| `bg.logistics.shipped.package.confirm` | 批量确认包裹已发货（购标后出库） | [apis/bg-logistics-shipped-package-confirm.md](./apis/bg-logistics-shipped-package-confirm.md) |\n| `temu.logistics.candidate.scanform.list.get` | 查询可生成 Scan Form 的候选包裹分组 | [apis/temu-logistics-candidate-scanform-list-get.md](./apis/temu-logistics-candidate-scanform-list-get.md) |\n| `temu.logistics.scanform.create` | 创建 Scan Form（USPS manifestation 等） | [apis/temu-logistics-scanform-create.md](./apis/temu-logistics-scanform-create.md) |\n| `temu.logistics.scanform.get` | 查询 Scan Form 详情（状态、分页筛选） | [apis/temu-logistics-scanform-get.md](./apis/temu-logistics-scanform-get.md) |\n| `temu.logistics.scanform.document.get` | 获取 Scan Form 文档 URL | [apis/temu-logistics-scanform-document-get.md](./apis/temu-logistics-scanform-document-get.md) |\n| `temu.logistics.shipment.pickup.reservation.create` | 预约上门揽收（同渠道同仓，最多 50 包裹/次） | [apis/temu-logistics-shipment-pickup-reservation-create.md](./apis/temu-logistics-shipment-pickup-reservation-create.md) |\n| `temu.logistics.shipment.pickup.reservation.result.get` | 查询上门揽收预约结果（reservationSn / reservationStatus） | [apis/temu-logistics-shipment-pickup-reservation-result-get.md](./apis/temu-logistics-shipment-pickup-reservation-result-get.md) |\n| `temu.logistics.shipment.pickup.reservation.cancel` | 取消上门揽收预约（reservationSn） | [apis/temu-logistics-shipment-pickup-reservation-cancel.md](./apis/temu-logistics-shipment-pickup-reservation-cancel.md) |\n\n---\n\n## 典型 Buy-Shipping 流程\n\n```text\n1. linkfox-temu-order-us                    → 查待发货订单（注意 earliestTimeBuyShippingLabel 等字段）\n2. bg.logistics.warehouse.list.get          → 仓库列表 / warehouseId（购标可用仓库）\n3. temu.logistics.shiplogisticstype.get     → 在线发货物流类型 shipLogisticsType\n4. bg.logistics.shippingservices.get        → 可用渠道 / channelId、估价\n5. bg.logistics.shipment.create              → 购标，获得 packageSnList\n6. temu.logistics.shipment.pickup.reservation.create（可选） → 需上门揽收渠道时预约时段\n7. temu.logistics.shipment.pickup.reservation.result.get → 查询揽收预约结果\n8. temu.logistics.shipment.pickup.reservation.cancel（可选） → 取消揽收预约\n9. bg.logistics.shipment.result.get         → 轮询购标结果 / 面单状态\n10. bg.logistics.shipment.update             → 调整 shipLaterLimitTime 或失败包裹重试\n11. temu.logistics.candidate.scanform.list.get（可选） → 可合并 Scan Form 的候选包裹分组\n12. temu.logistics.scanform.create（可选）   → USPS 等创建 Scan Form / manifestation\n13. temu.logistics.scanform.get（可选）      → 查询 Scan Form 状态与详情\n14. temu.logistics.scanform.document.get    → Scan Form 文档 url\n15. bg.logistics.shipment.document.get      → 面单 URL；temu_us_file_download 下载 PDF/PNG\n16. temu.logistics.label.list.get            → 面单列表查询（状态/打印/时间窗筛选）\n17. bg.order.unshipped.package.get          → 已购标、待发货确认包裹列表\n18. bg.logistics.shipped.package.confirm    → 确认已发货（48h 内未确认可能自动转已发货）\n19. linkfox-temu-order-us                   → 刷新订单发货状态\n```\n\n订单列表/详情/地址解密等请用 **`linkfox-temu-order-us`**。卖家自带运单号发货请用 **`linkfox-temu-fulfillment-us`**。\n\n---\n\n## 网关错误码\n\n| code | 说明 | 处理 |\n|------|------|------|\n| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 `LINKFOXAGENT_API_KEY` |\n| 1003 | 转发失败 | 检查 Temu token、`tokenPurpose`、白名单、网络 |\n\n---\n\n## Feedback API\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- `skillName`: **`linkfox-temu-fulfillment-us`**\n\n## 典型 Co-Warehouse 流程\n\n```text\n1. linkfox-temu-order-us                         → 查待履约订单（合作仓相关字段）\n2. bg.cooperativewarehouse.provider.list         → 可选合作仓服务商、permitsStatus\n3. bg.cooperativewarehouse.token.authorization   → 服务商 Token 授权\n4. bg.cooperativewarehouse.fulfill.submit        → 提交合作仓履约\n5. bg.cooperativewarehouse.fulfill.cancel        → 取消合作仓履约单\n6. bg.cooperativewarehouse.fulfill.query         → 查询履约状态（待接入）\n7. linkfox-temu-fulfillment-us          → 物流轨迹（如需要）\n8. linkfox-temu-order-us                         → 刷新订单履约状态\n```\n\n---\n\n## 典型自发货流程\n\n```text\n1. linkfox-temu-order-us                    → 查待发货订单（fulfillmentType=fulfillBySeller）\n2. bg.logistics.companies.get               → carrierId（= logisticsServiceProviderId）\n3. linkfox-temu-fulfillment-us   → bg.logistics.warehouse.list.get（warehouseId）\n4. bg.logistics.shipment.v2.confirm         → 确认发货（主流程）\n5. bg.logistics.shipment.v2.get             → 核对运单/包裹/轨迹预警\n6. bg.logistics.shipment.sub.confirm        → 拆包追加子包裹（可选）\n7. bg.logistics.shipment.shippingtype.update → 更正跟踪号 / 集成改非集成（可选）\n8. linkfox-temu-order-us                    → 刷新订单发货状态\n```\n\n订单列表/详情/地址解密等请用 **`linkfox-temu-order-us`**；商品与库存请用 **`linkfox-temu-manage-product-us`**。\n\n---\n\n## 物流跟踪\n\n```text\ntemu.track.trackinginfo.get（本 skill，us_tracking_track_trackinginfo_get.py）\n```\n\nFile v1.0.5:references/apis/bg-cooperativewarehouse-fulfill-cancel.md\n\n# 取消合作仓履约单 — `bg.cooperativewarehouse.fulfill.cancel`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=085d46b8a6604228b371e0706ac4af7d |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.fulfill.cancel`，业务载荷放在 Body 的 `params` |\n\n**Description:** cooperation warehouse ERP order\n\n（取消已提交至**合作仓（Cooperative Warehouse）**的 **ERP 履约单**；按 **`erpFulfillNo`** 标识要取消的履约单。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **前置依赖：**  \n> - 须已完成 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md) 绑定合作仓服务商。  \n> - **`erpFulfillNo`** 通常来自 [**`bg.cooperativewarehouse.fulfill.submit`**](./bg-cooperativewarehouse-fulfill-submit.md) 提交成功后的返回，或 **`bg.cooperativewarehouse.fulfill.query`**（待接入）查询结果。  \n> - 若履约单不存在，返回错误码 **170020004**。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    └── erpFulfillNo (STRING, 必填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| erpFulfillNo | STRING | **是** | erpFulfillNo（合作仓 **ERP 履约单号**；卖家/ERP 侧用于标识该笔合作仓履约请求的唯一编号，须与提交履约时使用的 **`erpFulfillNo`** 一致） |\n\n> 官方 Request 表将顶层 **`request`** 标为选填（False），但 **`erpFulfillNo`** 为必填（True）。Partner **Request Example** CURL 将 **`erpFulfillNo`** 写在顶层；经 LinkFox 网关时建议放在 **`params.request.erpFulfillNo`**。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"erpFulfillNo\": \"ERP-FULFILL-20260101001\"\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 子行在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── erpFulfillNo (STRING)\n    └── cwFulfillNo (STRING)\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | 业务结果对象（取消履约结果） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| erpFulfillNo | STRING | ERP fulfillment order number（ERP 履约单号；与请求 **`erpFulfillNo`** 对应，用于确认已受理取消的履约单） |\n| cwFulfillNo | STRING | Cooperative warehouse fulfillment order number（合作仓侧履约单号；Temu/合作仓系统生成的履约单标识，与 **`erpFulfillNo`** 关联，便于在 **`fulfill.query`** 等接口中追踪） |\n\n> 调用成功时先判断 **`success === true`**，再核对 **`result.erpFulfillNo`** 与请求一致。取消是否最终生效可能还须通过 **`bg.cooperativewarehouse.fulfill.query`**（待接入）或订单状态复核。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 170020001 | This ERP provider is not supported. | 检查合作仓服务商是否受支持 |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 先完成 [**token.authorization**](./bg-cooperativewarehouse-token-authorization.md) |\n| 170020003 | The parameter is illegal, please check and try again. | 检查 **`erpFulfillNo`** 格式 |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. | 核对 **`erpFulfillNo`** 是否存在、是否已取消 |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | 客户编码与授权不一致，重新授权 |\n\n<details>\n<summary>完整错误码列表（5 条，Partner 原文）</summary>\n\n| 错误码 | 错误信息 |\n|--------|----------|\n| 170020001 | This ERP provider is not supported. |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. |\n| 170020003 | The parameter is illegal, please check and try again. |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. |\n\n</details>\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list      → 选择 warehouseProviderCode\n2. bg.cooperativewarehouse.token.authorization → 合作仓授权\n3. bg.cooperativewarehouse.fulfill.submit      → 提交履约，获得 erpFulfillNo\n4. bg.cooperativewarehouse.fulfill.cancel      → 本接口：按 erpFulfillNo 取消\n5. bg.cooperativewarehouse.fulfill.query       → 查询取消后状态（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"erpFulfillNo\": \"ERP-FULFILL-20260101001\"\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.cooperativewarehouse.fulfill.cancel\",\n  \"params\": {\n    \"request\": {\n      \"erpFulfillNo\": \"ERP-FULFILL-20260101001\"\n    }\n  }\n}'\n```\n\nFile v1.0.5:references/apis/bg-cooperativewarehouse-fulfill-submit.md\n\n# 提交合作仓履约 — `bg.cooperativewarehouse.fulfill.submit`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=d2d218ed9b8c4356aec5033744abe90b |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.fulfill.submit`，业务载荷放在 Body 的 `params` |\n\n**Description:** cooperativewarehouse_fulfill\n\n（向合作仓服务商提交一笔**合作仓履约单**：指定合作仓、ERP 履约号、尾程发货方式及子订单 SKU/数量等；平台返回履约状态与合作仓履约号。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **前置依赖：**  \n> - **`warehouseProviderCode`** 来自 [**`bg.cooperativewarehouse.provider.list`**](./bg-cooperativewarehouse-provider-list.md)。  \n> - 若 **`authorizeType=0`**（默认），须已完成 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md)，并填写 **`cwCustomerCode`**。  \n> - 若 **`authorizeType=1`**，须填写 **`authorizeToken`**（及可选 **`authorizeKey`**）。  \n> - **`orderSn`** / **`parentOrderSn`** 等通常来自 **`linkfox-temu-order-us`** 订单接口。  \n> **后续：** 可用 **`bg.cooperativewarehouse.fulfill.query`** 查询履约结果（待接入）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── warehouseProviderCode (STRING, 必填)\n    ├── authorizeType (INTEGER, 选填, 默认 0)\n    ├── authorizeKey (STRING, 选填)\n    ├── authorizeToken (STRING, 条件必填)\n    ├── cwCustomerCode (STRING, 条件必填)\n    ├── warehouseCode (STRING, 必填)\n    ├── erpFulfillNo (STRING, 必填)\n    ├── tailShippingMode (INTEGER, 选填)\n    ├── logisticsProductCode (STRING, 条件必填)\n    ├── packageSn (STRING, 条件必填)\n    ├── shipCompanyId (LONG, 选填)\n    ├── channelId (LONG, 选填)\n    ├── channelVersionId (LONG, 选填)\n    ├── shipCompanyName (STRING, 条件必填)\n    ├── trackingNumber (STRING, 条件必填)\n    ├── shippingLabelFileType (STRING, 条件必填)\n    ├── shippingLabelFileBase64 (STRING, 条件必填)\n    ├── shipLogisticsType (STRING, 条件必填)\n    └── orderList[] (OBJECT[], 必填)\n        ├── cwSkuCode (STRING, 必填)\n        ├── productSkuId (LONG, 选填)\n        ├── quantity (INTEGER, 必填)\n        ├── orderSn (STRING, 必填)\n        ├── parentOrderSn (STRING, 必填)\n        └── skuId (LONG, 选填)\n```\n\n> Partner **Request** 表在导出 HTML 中 **`orderList`** 子行未展开；上表 **`orderList[]`** 子字段按 **Request Example** 与 **Error Code**（170020024–170020027）补全。\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| warehouseProviderCode | STRING | **是** | cooperative warehouse provider code（合作仓服务商编码；与 [**provider.list**](./bg-cooperativewarehouse-provider-list.md) 中 **`warehouseProviderCode`** 一致） |\n| authorizeType | INTEGER | 否 | Cooperation warehouse authorization methods（合作仓授权方式：**`0`** = 使用平台授权信息（using platform authorization information）；**`1`** = 直接上传授权信息（directly uploading authorization information）。未传时**默认为 `0`**） |\n| authorizeKey | STRING | 否 | cooperative warehouse authorization app key（合作仓授权 App Key；部分服务商在 **`authorizeType=1`** 时与 **`authorizeToken`** 一并使用） |\n| authorizeToken | STRING | 条件 | Cooperative Warehouse Authorization Token, mandatory when authorizeType is 1（合作仓授权 Token；**`authorizeType=1`** 时**必填**，错误码 **170020038**） |\n| cwCustomerCode | STRING | 条件 | cooperative warehouse customer code, mandatory when authorizeType is 0（合作仓客户编码；**`authorizeType=0`**（含默认）时**必填**，错误码 **170020037**；须与已授权客户编码一致，见 **170020005**） |\n| warehouseCode | STRING | **是** | cooperative warehouse code（合作仓仓库编码） |\n| erpFulfillNo | STRING | **是** | erp fulfill number（ERP/WMS 侧履约单号；须唯一，重复提交见 **170020009**） |\n| tailShippingMode | INTEGER | 否 | tail shipping mode（尾程发货模式；不同取值下条件必填字段见下表及错误码 **170020028**–**170020036**） |\n| logisticsProductCode | STRING | 条件 | logistics product code（物流产品编码；**`tailShippingMode=0`** 时**必填**，错误码 **170020028**） |\n| packageSn | STRING | 条件 | package sn（包裹号；**`tailShippingMode=1`** 时**必填**，错误码 **170020029**；包裹不存在见 **170020039**） |\n| shipCompanyId | LONG | 否 | ship company id（承运商 ID；**`tailShippingMode=1`** 时**必填**，错误码 **170020034**；须与 **`shipCompanyName`** 映射一致，见 **170020011**） |\n| channelId | LONG | 否 | channel id（渠道 ID；**`tailShippingMode=1`** 时**必填**，错误码 **170020035**；须与 **`shipCompanyName`**、**`shipLogisticsType`** 匹配，见 **170020041**） |\n| channelVersionId | LONG | 否 | channel version id（渠道版本 ID） |\n| shipCompanyName | STRING | 条件 | ship company name（承运商名称；**`tailShippingMode=1`** 时**必填**，错误码 **170020030**） |\n| trackingNumber | STRING | 条件 | trackingNumber（运单号；**`tailShippingMode=1`** 时**必填**，错误码 **170020031**；须与包裹运单一致，见 **170020040**） |\n| shippingLabelFileType | STRING | 条件 | ship label file type（面单文件类型；**`tailShippingMode=1`** 时**必填**，错误码 **170020032**；类型非法见 **170020007**） |\n| shippingLabelFileBase64 | STRING | 条件 | shippingLabelFileBase64（面单文件 Base64 内容；**`tailShippingMode=1`** 时**必填**，错误码 **170020033**；内容非法见 **170020008**） |\n| shipLogisticsType | STRING | 条件 | shipLogisticsType（物流类型；**`tailShippingMode=1`** 时**必填**，错误码 **170020036**） |\n| orderList | OBJECT[] | **是** | sub order list（子订单列表；至少一条，错误码 **170020023**） |\n\n#### `authorizeType` 与授权字段\n\n| authorizeType | 含义 | 必填业务字段 |\n|---------------|------|----------------|\n| `0`（默认） | 使用平台授权信息 | **`cwCustomerCode`** |\n| `1` | 直接上传授权 | **`authorizeToken`**（可选 **`authorizeKey`**） |\n\n#### `tailShippingMode` 与尾程字段\n\n| tailShippingMode | 含义（Partner 表仅写 tail shipping mode；条件必填以 Error Code 为准） | 条件必填字段 |\n|------------------|------------------------------------------------------------------------|----------------|\n| `0` | 合作仓/平台物流产品发货 | **`logisticsProductCode`** |\n| `1` | 卖家/ERP 自带面单与运单 | **`packageSn`**、**`shipCompanyName`**、**`trackingNumber`**、**`shippingLabelFileType`**、**`shippingLabelFileBase64`**、**`shipCompanyId`**、**`channelId`**、**`shipLogisticsType`** |\n\n> 尾程模式非法见 **170020006**；当前承运商不支持面单见 **170020010**。\n\n### `orderList[]` 元素\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cwSkuCode | STRING | **是** | 合作仓 SKU 编码（Partner Request Example 字段；错误码 **170020026**） |\n| productSkuId | LONG | 否 | 商品 SKU ID（Partner Request Example 示例为数值；Request 表未单独列出） |\n| quantity | INTEGER | **是** | 发货数量（错误码 **170020027**） |\n| orderSn | STRING | **是** | 子订单号（错误码 **170020024**；无效见 **170020012**） |\n| parentOrderSn | STRING | **是** | 父订单号（错误码 **170020025**） |\n| skuId | LONG | 否 | SKU ID（Partner Request Example 示例为数值；Request 表未单独列出） |\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"warehouseProviderCode\": \"PROVIDER_CODE\",\n    \"authorizeType\": 0,\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseCode\": \"WAREHOUSE_CODE\",\n    \"erpFulfillNo\": \"ERP_FULFILL_NO_001\",\n    \"tailShippingMode\": 0,\n    \"logisticsProductCode\": \"LOGISTICS_PRODUCT_CODE\",\n    \"orderList\": [\n      {\n        \"cwSkuCode\": \"CW_SKU_001\",\n        \"productSkuId\": 1,\n        \"quantity\": 1,\n        \"orderSn\": \"ORDER_SN\",\n        \"parentOrderSn\": \"PARENT_ORDER_SN\",\n        \"skuId\": 1\n      }\n    ]\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"warehouseProviderCode\": \"PROVIDER_CODE\",\n    \"authorizeType\": 1,\n    \"authorizeKey\": \"AUTHORIZE_KEY\",\n    \"authorizeToken\": \"AUTHORIZE_TOKEN\",\n    \"warehouseCode\": \"WAREHOUSE_CODE\",\n    \"erpFulfillNo\": \"ERP_FULFILL_NO_002\",\n    \"tailShippingMode\": 1,\n    \"packageSn\": \"PACKAGE_SN\",\n    \"shipCompanyId\": 1,\n    \"channelId\": 1,\n    \"channelVersionId\": 1,\n    \"shipCompanyName\": \"CARRIER_NAME\",\n    \"trackingNumber\": \"TRACKING_NUMBER\",\n    \"shippingLabelFileType\": \"PDF\",\n    \"shippingLabelFileBase64\": \"BASE64_LABEL_CONTENT\",\n    \"shipLogisticsType\": \"LOGISTICS_TYPE\",\n    \"orderList\": [\n      {\n        \"cwSkuCode\": \"CW_SKU_001\",\n        \"quantity\": 1,\n        \"orderSn\": \"ORDER_SN\",\n        \"parentOrderSn\": \"PARENT_ORDER_SN\"\n      }\n    ]\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 子行在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── fulfillStatus (INTEGER)\n    ├── erpFulfillNo (STRING)\n    └── cwFulfillNo (STRING)\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | response result（业务结果对象） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| fulfillStatus | INTEGER | 履约状态（Partner Response 表未展开；**Response Example** 示例值为 **`1`**，具体枚举以 Temu/合作仓文档为准） |\n| erpFulfillNo | STRING | erp fulfill number（回显提交的 ERP 履约单号） |\n| cwFulfillNo | STRING | 合作仓履约单号（合作仓侧生成的履约编号，用于后续查询/对账） |\n\n> 调用成功时先判断 **`success === true`**，再读 **`result.fulfillStatus`**、**`result.cwFulfillNo`**。若需轮询或核对，使用 **`bg.cooperativewarehouse.fulfill.query`**（待接入）。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 170020021 | Parameter [warehouseProviderCode] is required but not provided in the input | 填写 **`warehouseProviderCode`** |\n| 170020022 | Parameter [erpFulfillNo] is required but not provided in the input | 填写 **`erpFulfillNo`** |\n| 170020023 | Parameter [orderList] is required but not provided in the input | 提供 **`orderList`** 且至少一条 |\n| 170020024 | Parameter [orderSn] is required but not provided in the input | **`orderList[]`** 中填写 **`orderSn`** |\n| 170020025 | Parameter [parentOrderSn] is required but not provided in the input | 填写 **`parentOrderSn`** |\n| 170020026 | Parameter [cwSkuCode] is required but not provided in the input | 填写 **`cwSkuCode`** |\n| 170020027 | Parameter [quantity] is required but not provided in the input | 填写 **`quantity`** |\n| 170020028 | The [tailShippingMode] is 0, and the required parameter [logisticsProductCode] has not been filled in | **`tailShippingMode=0`** 时补 **`logisticsProductCode`** |\n| 170020029 | The [tailShippingMode] is 1, and the required parameter [packageSn] has not been filled in | **`tailShippingMode=1`** 时补 **`packageSn`** |\n| 170020030 | The [tailShippingMode] is 1, and the required parameter [shipCompanyName] has not been filled in | 补 **`shipCompanyName`** |\n| 170020031 | [tailShippingMode] is 1, and the required parameter [trackingNumber] has not been filled in | 补 **`trackingNumber`** |\n| 170020032 | The [tailShippingMode] is 1, and the required parameter [shippingLabelFileType] has not been filled in | 补 **`shippingLabelFileType`** |\n| 170020033 | The [tailShippingMode] is 1, and the required parameter [shippingLabelFileBase64] has not been filled in | 补 **`shippingLabelFileBase64`** |\n| 170020034 | The [tailShippingMode] is 1, and the required parameter [shipCompanyId] has not been filled in | 补 **`shipCompanyId`** |\n| 170020035 | The [tailShippingMode] is 1, and the required parameter [channelId] has not been filled in | 补 **`channelId`** |\n| 170020036 | The [tailShippingMode] is 1, and the required parameter [shipLogisticsType] has not been filled in | 补 **`shipLogisticsType`** |\n| 170020037 | The [authorizeType] is 0, and the required parameter [cwCustomerCode] has not been filled in | **`authorizeType=0`** 时补 **`cwCustomerCode`** |\n| 170020038 | The [authorizeType] is 1, and the required parameter [authorizeToken] has not been filled in | **`authorizeType=1`** 时补 **`authorizeToken`** |\n| 170020039 | The package number does not exist. | 检查 **`packageSn`** |\n| 170020040 | The tracking number corresponding to this package does not match the trackingNumber field. | **`trackingNumber`** 与包裹运单一致 |\n| 170020041 | ChannelId, shipCompanyName and logisticType not match, please check! | 核对 **`channelId`** / **`shipCompanyName`** / **`shipLogisticsType`** |\n| 170020001 | This ERP provider is not supported. | 更换支持的 **`warehouseProviderCode`** |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 先完成服务商授权 |\n| 170020003 | The parameter is illegal, please check and try again. | 检查入参格式 |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | 修正 **`cwCustomerCode`** |\n| 170020009 | This fulfillment order already exists, please submit another one. | 更换 **`erpFulfillNo`** |\n| 170020006 | This fulfillment order has wrong tail shipping mode, please check and try again. | 修正 **`tailShippingMode`** 及关联字段 |\n| 170020007 | This fulfillment order has wrong shipping label file type, please check and try again. | 修正 **`shippingLabelFileType`** |\n| 170020008 | This fulfillment order has wrong shipping label file content, please check and try again. | 修正 **`shippingLabelFileBase64`** |\n| 170020010 | The service provider does not support shipping label for the current shippingCompanyName... | 更换承运商或尾程方式 |\n| 170020011 | This ship company id not match with the ship company name mapped. | **`shipCompanyId`** 与 **`shipCompanyName`** 一致 |\n| 170020012 | The parentOrderSn in fulfill order is invalid. | 核对订单号 |\n| 170020014 | The cooperative warehouse service provider returned: API authorization exception... | 刷新合作仓 Token |\n| 170020016 | Your store has been restricted from using the function of logistics shipping by partner warehouse service providers... | 联系平台/服务商解除限制 |\n\n<details>\n<summary>完整错误码列表（Partner 原文，含占位符项）</summary>\n\n| 错误码 | 错误信息 |\n|--------|----------|\n| 170020017 | Parameter {*} is required but not provided in the input. |\n| 170020018 | The [authorizeType] is {*} , and the required parameter {*} has not been filled in. |\n| 170020019 | The [tailShippingMode] is {*} and the required parameter {*} has not been filled in. |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |\n| 170020013 | The service provider has not signed the DPA Agreement of the country and cannot perform the contract... |\n| 170020015 | The current order does not support address query, please check! |\n\n</details>\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list      → warehouseProviderCode、warehouseCode\n2. bg.cooperativewarehouse.token.authorization → authorizeType=0 时绑定 cwCustomerCode\n3. bg.cooperativewarehouse.fulfill.submit      → 本接口：提交履约\n4. bg.cooperativewarehouse.fulfill.query         → 查询履约结果（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"warehouseProviderCode\": \"PROVIDER_CODE\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseCode\": \"WAREHOUSE_CODE\",\n    \"erpFulfillNo\": \"ERP_FULFILL_NO_001\",\n    \"tailShippingMode\": 0,\n    \"logisticsProductCode\": \"LOGISTICS_PRODUCT_CODE\",\n    \"orderList\": [\n      {\n        \"cwSkuCode\": \"CW_SKU_001\",\n        \"quantity\": 1,\n        \"orderSn\": \"ORDER_SN\",\n        \"parentOrderSn\": \"PARENT_ORDER_SN\"\n      }\n    ]\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.cooperativewarehouse.fulfill.submit\",\n  \"params\": {\n    \"request\": {\n      \"warehouseProviderCode\": \"PROVIDER_CODE\",\n      \"warehouseCode\": \"WAREHOUSE_CODE\",\n      \"erpFulfillNo\": \"ERP_FULFILL_NO_001\",\n      \"orderList\": []\n    }\n  }\n}'\n```\n\nFile v1.0.5:references/apis/bg-cooperativewarehouse-provider-list.md\n\n# 合作仓服务商列表 — `bg.cooperativewarehouse.provider.list`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_provider_list.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=e77d444a60b540039bfa1fc64e3cada7 |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.provider.list`，业务载荷放在 Body 的 `params` |\n\n**Description:** cooperate warehouse erp order（Partner 导出页 Description 原文；本接口用于查询**合作仓（Cooperative Warehouse）服务商/ERP** 列表及授权许可状态，供后续 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md) 等合作仓履约流程使用。）\n\n（查询当前店铺可用的**合作仓服务商**（Warehouse Provider）列表，包含服务商编码、品牌、支持的承运商、区域、客户编码及包裹配送类型等；**`permitsStatus`** 反映合作仓相关许可/授权状态。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **后续：** 授权绑定见 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md)；履约提交见 [**`bg.cooperativewarehouse.fulfill.submit`**](./bg-cooperativewarehouse-fulfill-submit.md)；查询见 **`bg.cooperativewarehouse.fulfill.query`**（待接入）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    └── needAllPlatformProviders (BOOLEAN, 选填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| needAllPlatformProviders | BOOLEAN | 否 | needAllPlatformProviders（是否返回**全平台**合作仓服务商列表；Partner Request 表将该说明写在 Required 列。`true` 时通常返回平台侧全部可选服务商；`false` 或不传时返回与当前店铺/授权范围相关的服务商，以实际调通为准） |\n\n> 官方 Request 表将 **`request`** 与 **`needAllPlatformProviders`** 均标为选填（False）。Partner **Request Example** CURL 将 **`needAllPlatformProviders`** 写在顶层，经 LinkFox 网关时建议放在 **`params.request.needAllPlatformProviders`**。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"needAllPlatformProviders\": true\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {}\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── permitsStatus\n    └── warehouseProviderList[] (OBJECT[])\n        ├── warehouseProviderCode\n        ├── warehouseProviderBrandName\n        ├── supportNoCwCustomCode\n        ├── cwCustomerCodeList[] (STRING[])\n        ├── regionId[] (STRING[])\n        ├── supportedPackageDeliveryType[] (INTEGER[])\n        └── supportedShipCompany[] (OBJECT[])\n            ├── shipCompanyName\n            └── shipCompanyId\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | result（业务结果对象） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| permitsStatus | INTEGER | Permits / authorization status（合作仓相关许可或授权状态；Response Example 为 **`1`**；具体枚举含义以 Partner 在线 Response 表为准，可结合后续 **`bg.cooperativewarehouse.token.authorization`** 判断店铺是否已完成服务商授权） |\n| warehouseProviderList | OBJECT[] | Warehouse provider list（合作仓服务商列表） |\n\n#### `warehouseProviderList[]` 元素字段\n\n> Partner **Response** 表中 **`result`** 子行在导出 HTML 中为折叠状态；下列字段与类型来自 **Response Example**，说明结合 Co-Warehouse 履约语义整理。若 Partner 在线文档 **Expand** 后有更完整枚举，以在线表为准。\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| warehouseProviderCode | STRING | Warehouse provider code（合作仓服务商编码；后续授权、履约接口中标识服务商） |\n| warehouseProviderBrandName | STRING | Warehouse provider brand name（合作仓服务商品牌/展示名称） |\n| supportNoCwCustomCode | INTEGER | Whether supports scenarios without cooperative warehouse custom code（是否支持无合作仓客户编码（cw custom code）的场景；Response Example 为 **`1`**，具体布尔语义以 Partner 为准） |\n| cwCustomerCodeList | STRING[] | Cooperative warehouse customer code list（合作仓客户编码列表；绑定/授权后用于履约） |\n| regionId | STRING[] | Region ID list（该服务商支持的发货/履约区域 ID 列表） |\n| supportedPackageDeliveryType | INTEGER[] | Supported package delivery type list（支持的包裹配送类型列表；Response Example 为整数数组，具体类型枚举以 Partner 为准） |\n| supportedShipCompany | OBJECT[] | Supported shipping company list（该合作仓服务商支持的物流公司/承运商列表） |\n\n##### `warehouseProviderList[].supportedShipCompany[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| shipCompanyId | INTEGER | Ship company ID（物流公司/承运商 ID） |\n| shipCompanyName | STRING | Ship company name（物流公司/承运商名称） |\n\n> 调用成功时先判断 **`success === true`**，再读 **`result.permitsStatus`** 与 **`warehouseProviderList`**。选定 **`warehouseProviderCode`** 后，通常继续调用 [**`bg.cooperativewarehouse.token.authorization`**](./bg-cooperativewarehouse-token-authorization.md) 完成授权，再使用 **`bg.cooperativewarehouse.fulfill.submit`** 等提交合作仓履约。\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list（本接口）  → 查询可选合作仓服务商、permitsStatus\n2. bg.cooperativewarehouse.token.authorization      → 服务商 Token 授权（见 [文档](./bg-cooperativewarehouse-token-authorization.md)）\n3. bg.cooperativewarehouse.fulfill.submit      → 提交合作仓履约\n4. bg.cooperativewarehouse.fulfill.query       → 查询合作仓履约（待接入）\n4. linkfox-temu-order-us                           → 订单状态刷新\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_provider_list.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"needAllPlatformProviders\": true\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"type\": \"bg.cooperativewarehouse.provider.list\",\n  \"params\": {\n    \"request\": {}\n  }\n}'\n```\n\nFile v1.0.5:references/apis/bg-cooperativewarehouse-token-authorization.md\n\n# 合作仓 Token 授权 — `bg.cooperativewarehouse.token.authorization`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fd19c5c9a430407a8c587d7f3e492c4a&sub_menu_code=607fb76a2ef943d78e97dadbeca71aad |\n| **网关** | `POST /temu/proxy`，`type`=`bg.cooperativewarehouse.token.authorization`，业务载荷放在 Body 的 `params` |\n\n**Description:** Cooperative warehouse token authorization\n\n（将卖家在**合作仓服务商（ERP/WMS）**侧取得的访问凭证授权绑定到 Temu 店铺，使平台可代店铺调用该合作仓履约能力。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 **`request`**。建议使用 **`tokenPurpose=order-shipping`**，且 **`managementType=semi-managed`**（本 skill 仅 Semi-managed）。  \n> **前置依赖：**  \n> - **`warehouseProviderCode`** 通常来自 [**`bg.cooperativewarehouse.provider.list`**](./bg-cooperativewarehouse-provider-list.md) 返回的 **`warehouseProviderList[].warehouseProviderCode`**。  \n> - **`cwAccessToken`**、**`cwCustomerCode`** 由合作仓服务商侧颁发/分配，须与所选 **`warehouseProviderCode`** 对应。  \n> - **`cwAppKey`** 为选填，部分 ERP 服务商要求与 **`cwAccessToken`** 一并提交。  \n> **后续：** 授权成功后可用 [**`bg.cooperativewarehouse.fulfill.submit`**](./bg-cooperativewarehouse-fulfill-submit.md) 提交合作仓履约；查询见 **`bg.cooperativewarehouse.fulfill.query`**（待接入）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── cwAppKey (STRING, 选填)\n    ├── cwAccessToken (STRING, 必填)\n    ├── cwCustomerCode (STRING, 必填)\n    └── warehouseProviderCode (STRING, 必填)\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| cwAppKey | STRING | 否 | cwAppKey（合作仓/ERP 侧应用 Key；部分服务商授权流程需要，Partner 表为选填） |\n| cwAccessToken | STRING | **是** | cwAccessToken（合作仓服务商颁发的访问令牌；用于 Temu 校验卖家已在该服务商完成授权） |\n| cwCustomerCode | STRING | **是** | cwCustomerCode（合作仓客户编码；须与服务商侧授权的客户身份一致，错误码 **170020005**） |\n| warehouseProviderCode | STRING | **是** | warehouseProviderCode（合作仓服务商编码；与 [**provider.list**](./bg-cooperativewarehouse-provider-list.md) 中 **`warehouseProviderCode`** 一致） |\n\n> 官方 Request 表将顶层 **`request`** 标为选填（False），但 **`cwAccessToken`**、**`cwCustomerCode`**、**`warehouseProviderCode`** 为必填。Partner **Request Example** CURL 将业务字段写在顶层；经 LinkFox 网关时建议放在 **`params.request`** 下（亦可由 `extract_business_params` 放在 `params` 顶层转发）。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"managementType\": \"semi-managed\",\n  \"request\": {\n    \"cwAppKey\": \"YOUR_CW_APP_KEY\",\n    \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n  }\n}\n```\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\nPartner **Response** 表顶层为 **`response`** 对象；**`result`** 子行在导出 HTML 中为折叠状态，下列子层级按 **Response 表 + Response Example** 全部展开。\n\n```text\nresponse（或解析后的根对象）\n├── success\n├── errorCode\n├── errorMsg\n└── result (OBJECT)\n    ├── authorizationSuccess (BOOLEAN)\n    └── authorizationFailReason (STRING)\n```\n\n### 顶层字段（`response` 内，或根级）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT | 业务结果对象（授权结果） |\n\n### `result` 内字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| authorizationSuccess | BOOLEAN | Whether cooperative warehouse token authorization succeeded（合作仓 Token 授权是否成功；**`true`** 表示授权通过，**`false`** 表示未通过，须结合 **`authorizationFailReason`** 排查） |\n| authorizationFailReason | STRING | Authorization failure reason（授权失败原因说明；**`authorizationSuccess`** 为 **`true`** 时可能为空或占位文案，以 Temu 实际返回为准） |\n\n> 调用成功时先判断 **`success === true`**，再读 **`result.authorizationSuccess`**。若为 **`false`**，根据 **`authorizationFailReason`** 与下方业务错误码修正 **`cwAccessToken`** / **`cwCustomerCode`** / **`warehouseProviderCode`**，或确认店铺已在服务商侧完成授权（**170020002**）。\n\n---\n\n## 常见业务错误码（Partner Error Code）\n\n| 错误码 | 错误信息（原文） | 处理建议 |\n|--------|------------------|----------|\n| 170020001 | This ERP provider is not supported. | 更换支持的 **`warehouseProviderCode`** / ERP 服务商 |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 店铺未对该合作仓服务商授权，先在服务商侧完成授权 |\n| 170020003 | The parameter is illegal, please check and try again. | 检查入参格式与必填字段 |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. | 履约单号不存在（本接口较少见，以 Partner 为准） |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | **`cwCustomerCode`** 与服务商侧已授权客户编码不一致 |\n\n<details>\n<summary>完整错误码列表（5 条，Partner 原文）</summary>\n\n| 错误码 | 错误信息 |\n|--------|----------|\n| 170020001 | This ERP provider is not supported. |\n| 170020002 | This mall is not authorized to the cooperative warehouse service provider. |\n| 170020003 | The parameter is illegal, please check and try again. |\n| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |\n| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. |\n\n</details>\n\n---\n\n## 典型用法\n\n```text\n1. bg.cooperativewarehouse.provider.list      → 获取 warehouseProviderCode、permitsStatus\n2. bg.cooperativewarehouse.token.authorization → 本接口：提交 cwAccessToken / cwCustomerCode 完成绑定\n3. bg.cooperativewarehouse.fulfill.submit      → 提交合作仓履约\n4. bg.cooperativewarehouse.fulfill.query         → 查询履约结果（待接入）\n```\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\npython scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"cwAppKey\": \"YOUR_CW_APP_KEY\",\n    \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n    \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n    \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n  }\n}'\n```\n\n```bash\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.cooperativewarehouse.token.authorization\",\n  \"params\": {\n    \"request\": {\n      \"cwAccessToken\": \"YOUR_CW_ACCESS_TOKEN\",\n      \"cwCustomerCode\": \"YOUR_CW_CUSTOMER_CODE\",\n      \"warehouseProviderCode\": \"PROVIDER_CODE_FROM_LIST\"\n    }\n  }\n}'\n```\n\nFile v1.0.5:references/apis/bg-logistics-companies-get.md\n\n# 获取区域可用物流商 — `bg.logistics.companies.get`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_self_fulfilled_logistics_companies_get.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=38e79b35d2cb463d85619c1c786dd303&sub_menu_code=97bf9f5f4f454a589fb3192725bfeb7a |\n| **网关** | `POST /temu/proxy`，`type`=`bg.logistics.companies.get`，业务载荷放在 Body 的 `params` |\n\n**Description:** Obtain full logistics providers that support shipping at the corresponding region（获取指定区域下支持发货的全部物流服务商列表）。\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。建议使用 **`tokenPurpose=order-shipping`**。自发货确认物流、创建运单前，通常需先调用本接口取得 `logisticsServiceProviderId` 等。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    └── regionId              ← 必填\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| regionId | INTEGER | **是** | Region ID（区域 ID）。完整编码表见 Partner 文档：[regionId 编码说明](https://partner.temu.com/documentation?menu_code=38e79b35d2cb463d85619c1c786dd303&sub_menu_code=97bf9f5f4f454a589fb3192725bfeb7a)。美国站常用示例：**211**（USA，与 `linkfox-temu-order-us` 订单接口一致）。 |\n\n> 官方表将顶层 **`request`** 标为选填（False），但 **`request.regionId`** 为必填；实际调用时**应始终传入 `request` 且包含 `regionId`**，否则无法按区域筛选物流商。\n\n### 网关 `params` 写法\n\n```json\n{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"regionId\": 211\n  }\n}\n```\n\n---\n\n## Response（Temu `body` 解析后）\n\n```text\nresponse\n├── success          ← 请求级是否成功\n├── errorCode\n├── errorMsg\n└── result[]         ← 物流服务商列表（OBJECT 数组）\n    ├── logisticsServiceProviderId\n    ├── logisticsServiceProviderName\n    └── logisticsBrandName\n```\n\n### 顶层字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| success | BOOLEAN | success（当前请求是否成功，True 成功，False 失败） |\n| errorCode | INTEGER | error code（错误码） |\n| errorMsg | STRING | error message（错误信息） |\n| result | OBJECT[] | 该区域下支持发货的物流服务商列表；无数据时可能为空数组 `[]` |\n\n### `result[]` 元素字段\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| logisticsServiceProviderId | INTEGER | logistics Service Provider Id（物流服务商 ID；后续发货/创建运单等接口常作为承运商标识入参） |\n| logisticsServiceProviderName | STRING | logistics Service Provider Name（物流服务商名称） |\n| logisticsBrandName | STRING | logistics Brand Name（物流品牌名称；Partner 原文描述为 “logistics Service Provider Name”，与 `logisticsServiceProviderName` 字段区分，以实际返回为准） |\n\n> 调用成功时先判断 **`response.success === true`**，再遍历 **`result`** 选用 `logisticsServiceProviderId` / `logisticsServiceProviderName`。`errorCode` / `errorMsg` 非空或 `success === false` 时以错误信息为准。\n\n---\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# 专用脚本（美国站 regionId=211）\npython scripts/us_self_fulfilled_logistics_companies_get.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": {\n    \"regionId\": 211\n  }\n}'\n```\n\n```bash\n# 通用代理（等价）\npython scripts/temu_us_proxy.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"type\": \"bg.logistics.companies.get\",\n  \"params\": {\n    \"request\": {\n      \"regionId\": 211\n    }\n  }\n}'\n```\n\n---\n\n## 典型用法\n\n1. 从订单接口（如 `bg.order.detail.v2.get`）或业务上下文确认 **`regionId`**（美国站多为 **211**）。\n2. 调用本接口获取该区域可用 **`logisticsServiceProviderId`** 列表。\n3. 用户或后续脚本选择承运商后，再调用自发货相关创建运单 / 确认发货等接口（待接入）。\n\nFile v1.0.5:references/apis/bg-logistics-shipment-create.md\n\n# 在线下单购标 — `bg.logistics.shipment.create`\n\n| 项 | 值 |\n|----|-----|\n| **脚本** | `scripts/us_buy_shipping_logistics_shipment_create.py` |\n| **Partner 文档** | https://partner-us.temu.com/documentation?menu_code=fb16b05f7a904765aac4af3a24b87d4a&sub_menu_code=1eadab72ed8041318604b163dd75cdac |\n| **网关** | `POST /temu/proxy`，`type`=`bg.logistics.shipment.create`，业务载荷放在 Body 的 `params` |\n\n**Description:** The `bg.logistics.shipment.create` interface is for sellers to place online logistics orders and receive package numbers, which enables sellers to effortlessly place logistics orders with selected carriers online.（卖家在线向 Temu 集成承运商下单购标，创建包裹并获取 **packageSn**；是 Buy-Shipping 购标核心接口。）\n\n> **网关鉴权字段**由本 skill 网关脚本处理；业务参数见下方 `request`。建议使用 **`tokenPurpose=order-shipping`**。  \n> **前置依赖：** `warehouseId` 来自 **`bg.logistics.warehouse.list.get`**；`channelId` / `shipCompanyId` / `shipLogisticsType` / `signServiceId` 等来自 **`bg.logistics.shippingservices.get`** 或 **`temu.logistics.shiplogisticstype.get`**；`parentOrderSn` / `orderSn` / `quantity` 来自 **`linkfox-temu-order-us`**。  \n> **异步说明：** 部分场景下单为异步处理；若返回成功但无运单，请用 [**`bg.logistics.shipment.result.get`**](./bg-logistics-shipment-result-get.md) 按 **`packageSnList`** 查询结果（错误码 `120012013`）。\n\n---\n\n## Request 结构（官方顶层）\n\n```text\nparams\n└── request (OBJECT, 选填)\n    ├── sendType                    ← 必填\n    ├── sendRequestList[]           ← 选填（Package List Information；实际购标须传）\n    │   ├── warehouseId\n    │   ├── weight / weightUnit / extendWeight / extendWeightUnit\n    │   ├── length / width / height / dimensionUnit\n    │   ├── shipCompanyId\n    │   ├── channelId               ← 与 shipLogisticsType 二选一履约方式\n    │   ├── shipLogisticsType       ← 与 channelId 二选一履约方式\n    │   ├── signServiceId\n    │   ├── pickupStartTime / pickupEndTime\n    │   ├── orderSendInfoList[]\n    │   │   ├── parentOrderSn\n    │   │   ├── orderSn\n    │   │   ├── goodsId\n    │   │   ├── skuId\n    │   │   └── quantity\n    │   ├── confirmAcceptance[]\n    │   ├── splitSubPackage\n    │   ├── sendSubRequestList[]    ← splitSubPackage=true 时必填\n    │   │   └── （附属包裹：尺寸/重量/渠道/仓库等，结构见下）\n    │   ├── interlineShipCompanyList[]  ← 联运/分段渠道时必填\n    │   │   ├── shipStageType\n    │   │   ├── shipLogisticsType\n    │   │   ├── shipCompanyId\n    │   │   └── channelId\n    │   ├── cooperativeWarehouseShipment\n    │   ├── uspsMailingDateOffset\n    │   └── autoConfirmAfterPickup\n    ├── shipLater                   ← 选填\n    └── shipLaterLimitTime          ← 选填（shipLater=true 时按订单标签传）\n```\n\n### `request` 内字段\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| sendType | INTEGER | **是** | SendType（发货方式），见下表 |\n| sendRequestList | OBJECT[] | 否* | Package List Information（包裹列表信息；购标时**须传**至少一个包裹） |\n| shipLater | BOOLEAN | 否 | Ship Later（是否稍后发货），见下表 |\n| shipLaterLimitTime | STRING | 否 | 稍后发货截止时间（小时数，字符串形式），见下表 |\n\n\\* Partner Request 表将 **`sendRequestList`** 标为选填（False），但购标业务**必须**传入有效包裹明细。\n\n#### `sendType`\n\n| 值 | 说明 |\n|----|------|\n| `0` | All the products in **one parent order** are shipped in **one package** with **one tracking number**（同一父订单全部商品，一个包裹、一个运单号） |\n| `1` | **Partial** products in one parent order are shipped in **multiple packages** with multiple tracking numbers; **all products in that parent order must be submitted in one API call**（同一父订单部分商品拆多包裹；该父订单下所有待发商品须在一次调用中全部提交） |\n| `2` | All the products in **multiple parent orders** are shipped in **one package** with **one tracking number**（多个父订单合并为一个包裹、一个运单号） |\n\n#### `shipLater`\n\n| 值 | 说明 |\n|----|------|\n| `true` | Apply to create the package and tracking numbers from Temu-integrated carriers online; mark this package as **「ship later」**（在线购标并创建运单，包裹标记为稍后发货）。带 **「Y2_advance_sale」** 标签的订单购标时**必须**设为 `true`（错误码 `120015534`） |\n| `false` | Apply to create the package and tracking numbers online, **ship the package immediately** and mark as shipped（在线购标、创建运单并立即发货）。**COD 订单**不允许 `shipLater=true`（错误码 `120011053`） |\n\n#### `shipLaterLimitTime`\n\n| 订单标签 | 可选值（小时，字符串） |\n|----------|------------------------|\n| **无** `Y2_advance_sale` 标签 | `24`, `48`, `72`, `96`, `120` |\n| **有** `Y2_advance_sale` 标签 | `144`, `168`, `192`, `216`, `240`, `264`, `288`, `312`, `336`, `360` |\n\n> 无效枚举将报错 `120015532`。与 **`shipLater=true`** 配合使用，表示稍后发货的截止时间。\n\n#### `sendRequestList[]` 元素字段\n\n> Partner Request 表中 `sendRequestList` 子行在导出 HTML 中为折叠状态；下列字段、类型与说明来自 **Request 表**（顶层）、**Request Example**、**Response Example** 关联字段及 Partner **Error Code** 表。\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| warehouseId | STRING | **是** | Warehouse ID（发货仓库 ID；来自 **`bg.logistics.warehouse.list.get`** 的 **`warehouseId`**） |\n| weight | STRING | **是** | 包裹重量。美国本地：整数**磅**写在 **`weight`**，小数/盎司部分写在 **`extendWeight`**（单位 **`oz`**）；须为整数时见错误码 `120015521` |\n| weightUnit | STRING | **是** | 重量单位。美国包裹：**`lb`**；其他国家：**`kg`** |\n| extendWeight | STRING | 否 | 扩展重量（美国本地订单的小数/盎司部分） |\n| extendWeightUnit | STRING | 否 | 扩展重量单位。美国本地：**`oz`** |\n| length | STRING | **是** | 包裹长度，保留两位小数 |\n| width | STRING | **是** | 包裹宽度，保留两位小数 |\n| height | STRING | **是** | 包裹高度，保留两位小数 |\n| dimensionUnit | STRING | **是** | 尺寸单位。美国：**`in`**；其他国家：**`cm`** |\n| shipCompanyId | INTEGER / LONG | **是** | Shipping company ID（物流公司 ID；与 **`bg.logistics.shippingservices.get`** 返回的 **`shipCompanyId`** 一致） |\n| channelId | INTEGER / LONG | 条件 | Channel ID（物流渠道 ID；与 **`bg.logistics.shippingservices.get`** 返回的 **`channelId`** 一致）。与 **`shipLogisticsType`** **二选一**作为履约方式（错误码 `120015032`） |\n| shipLogisticsType | STRING | 条件 | Ship logistics type（物流类型标识；来自 **`temu.logistics.shiplogisticstype.get`** 或查价返回）。选定后 Temu 可自动匹配推荐 **`channelId`**。与 **`channelId`** **二选一** |\n| signServiceId | INTEGER | 否 | Signature service ID（签收/签名服务 ID；来自查价 **`onlineChannelDtoList[].signServiceId`**） |\n| pickupStartTime | INTEGER | 条件 | Pickup window start time（预约上门揽收开始时间；**需要预约揽收的渠道**必填，见 **`pickupRules`** / **`availablePickupTimeSlotList`**） |\n| pickupEndTime | INTEGER | 条件 | Pickup window end time（预约上门揽收\n\nArchive v1.0.4: 76 files, 141646 bytes\n\nFiles: references/access-token.md (4604b), references/api.md (9921b), references/apis/bg-cooperativewarehouse-fulfill-cancel.md (6135b), references/apis/bg-cooperativewarehouse-fulfill-submit.md (18045b), references/apis/bg-cooperativewarehouse-provider-list.md (7599b), references/apis/bg-cooperativewarehouse-token-authorization.md (7871b), references/apis/bg-logistics-companies-get.md (4206b), references/apis/bg-logistics-shipment-create.md (20968b), references/apis/bg-logistics-shipment-document-get.md (8032b), references/apis/bg-logistics-shipment-result-get.md (12266b), references/apis/bg-logistics-shipment-shippingtype-update.md (4078b), references/apis/bg-logistics-shipment-sub-confirm.md (3780b), references/apis/bg-logistics-shipment-update.md (22780b), references/apis/bg-logistics-shipment-v2-confirm.md (9830b), references/apis/bg-logistics-shipment-v2-get.md (7790b), references/apis/bg-logistics-shipped-package-confirm.md (12003b), references/apis/bg-logistics-shippingservices-get.md (16712b), references/apis/bg-logistics-warehouse-list-get.md (5890b), references/apis/bg-order-unshipped-package-get.md (8632b), references/apis/README.md (5874b), references/apis/temu-logistics-candidate-scanform-list-get.md (7852b), references/apis/temu-logistics-label-list-get.md (10665b), references/apis/temu-logistics-scanform-create.md (10879b), references/apis/temu-logistics-scanform-document-get.md (5609b), references/apis/temu-logistics-scanform-get.md (9688b), references/apis/temu-logistics-shiplogisticstype-get.md (6118b), references/apis/temu-logistics-shipment-pickup-reservation-cancel.md (5528b), references/apis/temu-logistics-shipment-pickup-reservation-create.md (7907b), references/apis/temu-logistics-shipment-pickup-reservation-result-get.md (6273b), references/apis/temu-track-trackinginfo-get.md (6094b), references/authorization-flow.md (1186b), references/partner-us-catalog.md (12357b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12431b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3095b), scripts/_us_fulfillment_script.py (500b), 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 (1621b), scripts/temu_proxy.py (2053b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (668b), scripts/temu_us_proxy.py (868b), scripts/us_buy_shipping_logistics_candidate_scanform_list_get.py (340b), scripts/us_buy_shipping_logistics_label_list_get.py (290b), scripts/us_buy_shipping_logistics_scanform_create.py (309b), scripts/us_buy_shipping_logistics_scanform_document_get.py (302b), scripts/us_buy_shipping_logistics_scanform_get.py (298b), scripts/us_buy_shipping_logistics_shiplogisticstype_get.py (320b), scripts/us_buy_shipping_logistics_shipment_create.py (309b), scripts/us_buy_shipping_logistics_shipment_document_get.py (321b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_cancel.py (338b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_create.py (332b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_result_get.py (356b), scripts/us_buy_shipping_logistics_shipment_result_get.py (314b), scripts/us_buy_shipping_logistics_shipment_update.py (304b), scripts/us_buy_shipping_logistics_shipped_package_confirm.py (316b), scripts/us_buy_shipping_logistics_shippingservices_get.py (339b), scripts/us_buy_shipping_logistics_warehouse_list_get.py (307b), scripts/us_buy_shipping_order_unshipped_package_get.py (310b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py (307b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py (304b), scripts/us_co_warehouse_cooperativewarehouse_provider_list.py (304b), scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py (320b), scripts/us_self_fulfilled_logistics_companies_get.py (288b), scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py (328b), scripts/us_self_fulfilled_logistics_shipment_sub_confirm.py (309b), scripts/us_self_fulfilled_logistics_shipment_v2_confirm.py (311b), scripts/us_self_fulfilled_logistics_shipment_v2_get.py (298b), scripts/us_tracking_track_trackinginfo_get.py (268b), skill-card.md (2802b), SKILL.md (5362b), _meta.json (146b)\n\nArchive v1.0.3: 76 files, 141131 bytes\n\nFiles: references/access-token.md (4450b), references/api.md (9844b), references/apis/bg-cooperativewarehouse-fulfill-cancel.md (6135b), references/apis/bg-cooperativewarehouse-fulfill-submit.md (18045b), references/apis/bg-cooperativewarehouse-provider-list.md (7599b), references/apis/bg-cooperativewarehouse-token-authorization.md (7871b), references/apis/bg-logistics-companies-get.md (4206b), references/apis/bg-logistics-shipment-create.md (20968b), references/apis/bg-logistics-shipment-document-get.md (8032b), references/apis/bg-logistics-shipment-result-get.md (12266b), references/apis/bg-logistics-shipment-shippingtype-update.md (4078b), references/apis/bg-logistics-shipment-sub-confirm.md (3780b), references/apis/bg-logistics-shipment-update.md (22780b), references/apis/bg-logistics-shipment-v2-confirm.md (9830b), references/apis/bg-logistics-shipment-v2-get.md (7790b), references/apis/bg-logistics-shipped-package-confirm.md (12003b), references/apis/bg-logistics-shippingservices-get.md (16712b), references/apis/bg-logistics-warehouse-list-get.md (5890b), references/apis/bg-order-unshipped-package-get.md (8632b), references/apis/README.md (5874b), references/apis/temu-logistics-candidate-scanform-list-get.md (7852b), references/apis/temu-logistics-label-list-get.md (10665b), references/apis/temu-logistics-scanform-create.md (10879b), references/apis/temu-logistics-scanform-document-get.md (5609b), references/apis/temu-logistics-scanform-get.md (9688b), references/apis/temu-logistics-shiplogisticstype-get.md (6118b), references/apis/temu-logistics-shipment-pickup-reservation-cancel.md (5528b), references/apis/temu-logistics-shipment-pickup-reservation-create.md (7907b), references/apis/temu-logistics-shipment-pickup-reservation-result-get.md (6273b), references/apis/temu-track-trackinginfo-get.md (6094b), references/authorization-flow.md (1186b), references/partner-us-catalog.md (12357b), scripts/_temu_auth_guide.py (6198b), scripts/_temu_common.py (12431b), scripts/_temu_token_store.py (4273b), scripts/_temu_us_common.py (3095b), scripts/_us_fulfillment_script.py (500b), 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 (1621b), scripts/temu_proxy.py (2053b), scripts/temu_token_guide.py (1594b), scripts/temu_us_file_download.py (668b), scripts/temu_us_proxy.py (868b), scripts/us_buy_shipping_logistics_candidate_scanform_list_get.py (340b), scripts/us_buy_shipping_logistics_label_list_get.py (290b), scripts/us_buy_shipping_logistics_scanform_create.py (309b), scripts/us_buy_shipping_logistics_scanform_document_get.py (302b), scripts/us_buy_shipping_logistics_scanform_get.py (298b), scripts/us_buy_shipping_logistics_shiplogisticstype_get.py (320b), scripts/us_buy_shipping_logistics_shipment_create.py (309b), scripts/us_buy_shipping_logistics_shipment_document_get.py (321b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_cancel.py (338b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_create.py (332b), scripts/us_buy_shipping_logistics_shipment_pickup_reservation_result_get.py (356b), scripts/us_buy_shipping_logistics_shipment_result_get.py (314b), scripts/us_buy_shipping_logistics_shipment_update.py (304b), scripts/us_buy_shipping_logistics_shipped_package_confirm.py (316b), scripts/us_buy_shipping_logistics_shippingservices_get.py (339b), scripts/us_buy_shipping_logistics_warehouse_list_get.py (307b), scripts/us_buy_shipping_order_unshipped_package_get.py (310b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_cancel.py (307b), scripts/us_co_warehouse_cooperativewarehouse_fulfill_submit.py (304b), scripts/us_co_warehouse_cooperativewarehouse_provider_list.py (304b), scripts/us_co_warehouse_cooperativewarehouse_token_authorization.py (320b), scripts/us_self_fulfilled_logistics_companies_get.py (288b), scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py (328b), scripts/us_self_fulfilled_logistics_shipment_sub_confirm.py (309b), scripts/us_self_fulfilled_logistics_shipment_v2_confirm.py (311b), scripts/us_self_fulfilled_logistics_shipment_v2_get.py (298b), scripts/us_tracking_track_trackinginfo_get.py (268b), skill-card.md (3256b), SKILL.md (4228b), _meta.json (146b)\n\nArchive v1.0.2: 75 files, 139553 bytes\n\nFiles: references/access-token.md (4450b), references/api.md (9844b), references/apis/bg-cooperativewarehouse-fulfill-cancel.md (6135b), references/apis/bg-cooperativewarehouse-fulfill-submit.md (18045b), references/apis/bg-cooperativewarehouse-provider-list.md (7599b), references/apis/bg-cooperativewarehouse-token-authorization.md (7871b), r...","readmeExcerpt":"Skill: Temu美国站-发货 Owner: linkfox-ai Summary: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。 Tags: latest:1.0.6 Version history: v1.0.6 | 2026-08-14T15:14:45.419Z | user Update from 1.0.5 to 1.0.6 v1.0.5 | 2026-08-07T11:16:29.140Z | user Update from 1.0.4 to 1.0.5 v1.0.4 | 2026-07-1","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<key>\"\n\n# Buy-Shipping 购标\npython scripts/us_buy_shipping_logistics_shipment_create.py '{\n  \"accessToken\": \"TOKEN\",\n  \"tokenPurpose\": \"order-shipping\",\n  \"request\": { }\n}'\n\n# 卖家自发货更新跟踪号\npython scripts/us_self_fulfilled_logistics_shipment_shippingtype_update.py '{\n  \"accessToken\": \"TOKEN\",\n  \"request\": { \"editPackageRequestList\": [{ \"packageSn\": \"PKG-1\", \"trackingNumber\": \"1Z...\" }] }\n}'"},{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py"},{"language":"bash","snippet":"# 查看授权步骤\npython scripts/temu_token_guide.py '{\"shopType\":\"semi-managed\",\"tokenPurpose\":\"product-inventory\",\"site\":\"cn\"}'\n\n# 保存 token\npython scripts/save_temu_access_token.py '{\n  \"storeKey\": \"my-shop\",\n  \"label\": \"中国半托管\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"accessToken\": \"PASTE_TOKEN\"\n}'\n\n# 列出已保存（脱敏）\npython scripts/list_temu_access_tokens.py\n\n# 用 storeKey 调 API（无需每次粘贴 token）\npython scripts/temu_proxy.py '{\n  \"storeKey\": \"my-shop\",\n  \"site\": \"cn\",\n  \"managementType\": \"semi-managed\",\n  \"tokenPurpose\": \"product-inventory\",\n  \"type\": \"bg.goods.category.mapping\",\n  \"params\": {\"goodsName\": \"测试\", \"goodsNameEn\": \"Test\"}\n}'"},{"language":"bash","snippet":"export LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/temu_us_proxy.py '{\"accessToken\":\"TOKEN\",\"tokenPurpose\":\"order-shipping\",\"type\":\"<API_TYPE>\",\"params\":{\"request\":{}}}'"},{"language":"text","snippet":"1. linkfox-temu-order-us                    → 查待发货订单（注意 earliestTimeBuyShippingLabel 等字段）\n2. bg.logistics.warehouse.list.get          → 仓库列表 / warehouseId（购标可用仓库）\n3. temu.logistics.shiplogisticstype.get     → 在线发货物流类型 shipLogisticsType\n4. bg.logistics.shippingservices.get        → 可用渠道 / channelId、估价\n5. bg.logistics.shipment.create              → 购标，获得 packageSnList\n6. temu.logistics.shipment.pickup.reservation.create（可选） → 需上门揽收渠道时预约时段\n7. temu.logistics.shipment.pickup.reservation.result.get → 查询揽收预约结果\n8. temu.logistics.shipment.pickup.reservation.cancel（可选） → 取消揽收预约\n9. bg.logistics.shipment.result.get         → 轮询购标结果 / 面单状态\n10. bg.logistics.shipment.update             → 调整 shipLaterLimitTime 或失败包裹重试\n11. temu.logistics.candidate.scanform.list.get（可选） → 可合并 Scan Form 的候选包裹分组\n12. temu.logistics.scanform.create（可选）   → USPS 等创建 Scan Form / manifestation\n13. temu.logistics.scanform.get（可选）      → 查询 Scan Form 状态与详情\n14. temu.logistics.scanform.document.get    → Scan Form 文档 url\n15. bg.logistics.shipment.document.get      → 面单 URL；temu_us_file_download 下载 PDF/PNG\n16. temu.logistics.label.list.get            → 面单列表查询（状态/打印/时间窗筛选）\n17. bg.order.unshipped.package.get          → 已购标、待发货确认包裹列表\n18. bg.logistics.shipped.package.confirm    → 确认已发货（48h 内未确认可能自动转已发货）\n19. linkfox-temu-order-us                   → 刷新订单发货状态"},{"language":"text","snippet":"1. linkfox-temu-order-us                         → 查待履约订单（合作仓相关字段）\n2. bg.cooperativewarehouse.provider.list         → 可选合作仓服务商、permitsStatus\n3. bg.cooperativewarehouse.token.authorization   → 服务商 Token 授权\n4. bg.cooperativewarehouse.fulfill.submit        → 提交合作仓履约\n5. bg.cooperativewarehouse.fulfill.cancel        → 取消合作仓履约单\n6. bg.cooperativewarehouse.fulfill.query         → 查询履约状态（待接入）\n7. linkfox-temu-fulfillment-us          → 物流轨迹（如需要）\n8. linkfox-temu-order-us                         → 刷新订单履约状态"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: linkfox-temu-fulfillment-us\ndescription: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。\n---\n\n# Temu 美国站 — 电商履行 / 发货（Fulfillment）\n\n本 skill（`linkfox-temu-fulfillment-us`）合并原 **Buy-Shipping**、**Co-Warehouse**、**Self-Fulfilled Shipments**、**Tracking** 四个 skill，覆盖 Partner US **Fulfillment** 域 **27** 个已接入 `type`。\n\n| 域 | 脚本前缀 | 接口数 |\n|----|----------|--------|\n| Buy-Shipping | `us_buy_shipping_*` | 17 |\n| Co-Warehouse | `us_co_warehouse_*` | 4 |\n| Self-Fulfilled | `us_self_fulfilled_*` | 5 |\n| Tracking | `us_tracking_*` | 1 |\n\n详见 [partner-us-catalog.md](./references/partner-us-catalog.md)。\n\n**网关**：\n\n| 能力 | 方法 | 路径 |\n|------|------|------|\n| 履约 OpenAPI | POST | `https://tool-gateway.linkfox.com/temu/proxy` |\n| 加签文件下载 | POST | `https://tool-gateway.linkfox.com/temu/fileDownload` |\n\n## 调用方式\n\n- **API 端点**：`POST /temu/proxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见上文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## 相关 skill\n\n| 场景 | skill |\n|------|--------|\n| 订单列表/详情/地址 | `linkfox-temu-order-us` |\n| 取消订单 | `linkfox-temu-cancel-order-us` |\n| 商品管理 | `linkfox-temu-manage-product-us` |\n| 退货退款 | `linkfox-temu-returns-refunds-us` |\n| 全球站履约 | `linkfox-temu-fulfillment-global`（无 Scan Form） |\n\n## 默认参数\n\n| 字段 | 默认 |\n|------|------|\n| site | `us` |\n| managementType | `semi-managed` |\n| tokenPurpose | `order-shipping` |\n\n## Scripts（按域）\n\n### Buy-Shipping（`us_buy_shipping_*`）\n\n购标、面单、Scan Form、上门揽收等 — 见 [apis/README.md](./references/apis/README.md#buy-shipping购标面单scan-form)。\n\n### Co-Warehouse（`us_co_warehouse_*`）\n\n`bg.cooperativewarehouse.*` — 合作仓授权、提交/取消履约。\n\n### Self-Fulfilled（`us_self_fulfilled_*`）\n\n`bg.logistics.shipment.v2.*`、`shippingtype.update` 等 — 卖家自带运单号。\n\n### Tracking（`us_tracking_*`）\n\n`temu.track.trackinginfo.get`\n\n### 通用\n\n| 脚本 | 说明 |\n|------|------|\n| `temu_us_proxy.py` | 任意 `type` |\n| `temu_us_file_download.py` | 加签文件下载 |\n\n薄封装统一调用 **`_us_fulfillment_script.run_cli`**。\n\n## 示例\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\n\n# Buy-Shipping 购标\npython scripts/us_buy_shipping_logistics_shipment_create.py '{\n"},{"path":"references/apis/README.md","content":"# Fulfillment — 接口文档索引（US）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。\n\n## Buy-Shipping（购标/面单/Scan Form）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n## 仓库 / 物流基础\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.warehouse.list.get` | [bg-logistics-warehouse-list-get.md](./bg-logistics-warehouse-list-get.md) |\n\n## 查价 / 购标 / 面单\n\n| type | 文档 |\n|------|------|\n| `bg.logistics.shippingservices.get` | [bg-logistics-shippingservices-get.md](./bg-logistics-shippingservices-get.md) |\n| `bg.logistics.shipment.create` | [bg-logistics-shipment-create.md](./bg-logistics-shipment-create.md) |\n| `bg.logistics.shipment.result.get` | [bg-logistics-shipment-result-get.md](./bg-logistics-shipment-result-get.md) |\n| `bg.logistics.shipment.update` | [bg-logistics-shipment-update.md](./bg-logistics-shipment-update.md) |\n| `bg.logistics.shipment.document.get` | [bg-logistics-shipment-document-get.md](./bg-logistics-shipment-document-get.md) |\n| `temu.logistics.shiplogisticstype.get` | [temu-logistics-shiplogisticstype-get.md](./temu-logistics-shiplogisticstype-get.md) |\n| `temu.logistics.label.list.get` | [temu-logistics-label-list-get.md](./temu-logistics-label-list-get.md) |\n| `temu.logistics.candidate.scanform.list.get` | [temu-logistics-candidate-scanform-list-get.md](./temu-logistics-candidate-scanform-list-get.md) |\n| `temu.logistics.scanform.create` | [temu-logistics-scanform-create.md](./temu-logistics-scanform-create.md) |\n| `temu.logistics.scanform.document.get` | [temu-logistics-scanform-document-get.md](./temu-logistics-scanform-document-get.md) |\n| `temu.logistics.scanform.get` | [temu-logistics-scanform-get.md](./temu-logistics-scanform-get.md) |\n\n## 订单 / 未发货包裹 / 确认发货\n\n| type | 文档 |\n|------|------|\n| `bg.order.unshipped.package.get` | [bg-order-unshipped-package-get.md](./bg-order-unshipped-package-get.md) |\n| `bg.logistics.shipped.package.confirm` | [bg-logistics-shipped-package-confirm.md](./bg-logistics-shipped-package-confirm.md) |\n\n## 上门揽收预约（Pickup Reservation）\n\n| type | 文档 |\n|------|------|\n| `temu.logistics.shipment.pickup.reservation.create` | [temu-logistics-shipment-pickup-reservation-create.md](./temu-logistics-shipment-pickup-reservation-create.md) |\n| `temu.logistics.shipment.pickup.reservation.result.get` | [temu-logistics-shipment-pickup-reservation-result-get.md](./temu-logistics-shipment-pickup-reservation-result-get.md) |\n| `temu.logistics.shipment.pickup.reservation.cancel` | [temu-logistics-shipment-pickup-reservation-cancel.md](./temu-logistics-shipment-pickup-reservation-cancel.md) |\n\n## 取消 / 改单（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## 其他（待补充）\n\n| type | 文档 |\n|------|------|\n| _待用户提供 Partner 文档_ | — |\n\n## Co-Warehouse（合作仓履约）\n\n每个 `type` 单独一份文档，经 `POST /temu/proxy` 调用。网关与鉴权见 [../api.md](../api.md)；目录与 `sub_menu_code` 见 [../partner-us-catalog.md](../partner-us-catalog.md)。\n\n> **Semi-managed only**：本 skill 仅适用于半托管"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-temu-fulfillment-us\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786720485419\n}"},{"path":"references/access-token.md","content":"# Temu accessToken 授权与获取\n\nTemu **没有** LinkFox 侧自动 OAuth；`accessToken` 须在 Temu 卖家后台「服务市场 → 授权管理」**手动复制**。与 `LINKFOXAGENT_API_KEY`（LinkFox 用户鉴权）是两套令牌。（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## 两种鉴权（勿混淆）\n\n| 令牌 | 用途 | 获取方式 |\n|------|------|----------|\n| **LinkFox 用户 Token** | 调用 `/temu/proxy`、`/temu/fileDownload` **必填** | `LINKFOXAGENT_API_KEY` 或请求 JSON 的 `token`；Header `Authorization` + `Token`（同 amazon-store-auth）（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| **Temu accessToken** | Temu 业务 API（经紫鸟转发） | Temu 卖家后台授权后复制 |\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<your-key>\"\npython scripts/check_linkfox_token.py\n```\n\n## tokenPurpose 与场景\n\n| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |\n|--------------|----------|-----------|----------|\n| `product-inventory` | 半托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `order-shipping` | 半托管 | `us` / `global` / `eu` | Cyber-ERP酷鸟助手 |\n| `full-managed` | 全托管 | `cn` / `partner` | 酷鸟卖家助手 |\n| `local-native` | 本土（美/欧主体） | `us` 等 | Cyber-ERP |\n\n## 1. 半托管 — 商品/库存 Token\n\n1. 登录 [seller.kuajingmaihuo.com](https://seller.kuajingmaihuo.com) 或 [agentseller.temu.com](https://agentseller.temu.com)\n2. **系统管理** → **服务市场** → **授权管理**\n3. **获取授权** → 选择 **「酷鸟卖家助手」**\n4. 全选常规和特殊授权 → 确认 → **复制 access_token**\n5. 调用 API：`site=cn` 或 `partner`，`managementType=semi-managed`\n\n## 2. 半托管 — 订单/发货 Token\n\n1. 登录 Temu 卖家后台\n2. 右上角 **Seller Central** → 切换到目标区域（美区 / 欧区 / 全球）\n3. **服务市场** → **授权管理**\n4. **获取授权** → 选择 **「Cyber-ERP酷鸟助手」**\n5. 全选授权 → 确认 → 复制 token\n6. 调用 API：`site=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。\n"},{"path":"references/api.md","content":"# linkfox-temu-fulfillment-us — API 参考\n\nTemu **美国站电商履行/发货**（Buy-Shipping + Co-Warehouse + Self-Fulfilled + Tracking），经 `temu_us_proxy`（`POST /temu/proxy`）转发。\n\n> 网关与鉴权见 `scripts/`；`tokenPurpose=order-shipping`。\n\n## 调用规范\n\n| 项 | 说明 |\n|----|------|\n| 网关根地址 | `${LINKFOX_TOOL_GATEWAY}`（可用 `TEMU_API_BASE_URL` / `STORE_API_BASE_URL` 覆盖） |\n| 履约 OpenAPI | `POST /temu/proxy` |\n| 加签文件下载 | `POST /temu/fileDownload`（`temu_us_file_download.py`） |\n| LinkFox 鉴权 | Header **`Authorization`** 与 **`Token`**（同值）；或 `LINKFOX_AGENT_API_KEY` / `LINKFOXAGENT_API_KEY`；或 JSON `token`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理） |\n| Temu 鉴权 | Body `accessToken`，或 `storeKey` + `site` + `managementType` + `tokenPurpose` |\n| 默认 | `site=us`，`managementType=semi-managed`，`tokenPurpose=order-shipping` |\n| 上游 OpenAPI（US） | `https://openapi-b-us.temu.com/openapi/router`（网关按 `site` 解析） |\n\n### 网关请求 Body（`/temu/proxy`）\n\n| 参数 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| site | string | 是 | `us`（本 skill 默认） |\n| managementType | string | 是 | `semi-managed` |\n| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |\n| storeKey | string | 与 accessToken 二选一 | `~/.linkfox/temu-access-tokens.json` 中的键 |\n| tokenPurpose | string | 否 | 建议 **`order-shipping`** |\n| type | string | 是 | Temu 接口名，如 Partner 文档中的 `bg.*` / `temu.*` |\n| params | object | 否 | 业务参数；多数接口业务块在 **`params.request`** |\n\n### 网关响应\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| body | string | Temu 原始 JSON 字符串；脚本解析为 `temuBody` |\n| code | integer | 网关错误码：`1002` 参数/Token，`1003` 转发失败 |\n\n解析顺序：**网关 `code`** → `JSON.parse(body)` → `success` / `errorCode` / `errorMsg` / `result`。\n\n### 脚本调用\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"<key>\"\npython scripts/temu_us_proxy.py '{\"accessToken\":\"TOKEN\",\"tokenPurpose\":\"order-shipping\",\"type\":\"<API_TYPE>\",\"params\":{\"request\":{}}}'\n```\n\n业务字段可放在顶层或嵌套 `params`；含 `request` 时通常整体作为 `params` 转发。\n\n---\n\n## 接口一览\n\n完整 `sub_menu_code` 与 Partner 文档 URL 见 [partner-us-catalog.md](./partner-us-catalog.md)。\n\n**每个接口单独一份文档**：[apis/README.md](./apis/README.md)（随接入递增）。\n\n| type | 说明 | 文档 |\n|------|------|------|\n| `bg.logistics.warehouse.list.get` | 获取店铺仓库列表（可筛支持购标仓库） | [apis/bg-logistics-warehouse-list-get.md](./apis/bg-logistics-warehouse-list-get.md) |\n| `temu.logistics.shiplogisticstype.get` | 获取在线发货物流类型（购标前选类型） | [apis/temu-logistics-shiplogisticstype-get.md](./apis/temu-logistics-shiplogisticstype-get.md) |\n| `bg.logistics.shippingservices.get` | 按包裹尺寸/重量查询可用物流渠道（Buy-Shipping 查价） | [apis/bg-logistics-shippingservices-get.md](./apis/bg-logistics-shippingservices-get.md) |\n| `bg.logistics.shipment.create` | 在线下单购标（创建包裹，返回 packageSnList） | [apis/bg-logistics-shipment-create.md](./apis/bg-logistics-shipment-create.md) |\n| `bg.logistics.shipment.result.get` | 查询购标/在线下单结果（shippingLabelStatus） | [apis/bg-logistics-shipment-result-get.md](./apis/bg-logistics-shipment-result-get.md) |\n| `bg.logistics.shipment.update` | 延后发货时限更新 / 购标失败包裹重试 | [apis/bg-logistics-shipment-update.md](./apis/bg-logistics-shipment-update.md) |\n| `bg.logistics.ship"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。 Skill: Temu美国站-发货 Owner: linkfox-ai Summary: Temu 美国站电商履行/发货 API（合一）：Buy-Shipping购标面单、合作仓履约、卖家自发货、物流跟踪等27+接口。当用户提到 Temu US 发货、购标、Buy-Shipping、合作仓、自发货、tracking、scanform、shipment.create、order-shipping 时触发。订单用 linkfox-temu-order-us。 Tags: latest:1.0.6 Version history: v1.0.6 | 2026-08-14T15:14:45.419Z | user Update from 1.0.5 to 1.0.6 v1.0.5 | 2026-08-07T11:16:29.140Z | user Update from 1.0.4 to 1.0.5 v1.0.4 | 2026-07-1","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":821,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T16:00:46.866Z","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:00:46.866Z","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:53:41.140Z","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"}]}}}