
Linkfox Temu Fulfillment Global
- 168 installs
- 64 repo stars
- Updated August 3, 2026
- linkfox-ai/linkfox-skills
Helps with ai & agent building tasks.
About
linkfox-temu-fulfillment-global is a Claude Code skill in the AI & Agent Building category.
- linkfox-temu-fulfillment-global
- AI & Agent Building
- AI-coding skill
Linkfox Temu Fulfillment Global by the numbers
- 168 all-time installs (skills.sh)
- +35 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #3,152 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/linkfox-ai/linkfox-skills --skill linkfox-temu-fulfillment-globalAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 168 |
|---|---|
| repo stars | ★ 64 |
| Last updated | August 3, 2026 |
| Repository | linkfox-ai/linkfox-skills ↗ |
What it does
Helps with ai & agent building tasks.
Files
Temu 全球站 — 电商履行 / 发货(Fulfillment)
本 skill(linkfox-temu-fulfillment-global)覆盖 Partner Global Fulfillment 域 23 个已接入 type(与 US 版对齐但 不含 4 个 Scan Form 接口)。
| 域 | 脚本前缀 | 接口数 |
|---|---|---|
| Buy-Shipping | global_buy_shipping_* | 13 |
| Co-Warehouse | global_co_warehouse_* | 4 |
| Self-Fulfilled | global_self_fulfilled_* | 5 |
| Tracking | global_tracking_* | 1 |
未接入(相对 US):temu.logistics.scanform.create、temu.logistics.scanform.get、temu.logistics.scanform.document.get、temu.logistics.candidate.scanform.list.get — 请用 `linkfox-temu-fulfillment-us`(site=us)。
详见 partner-global-catalog.md。美国站请用 `linkfox-temu-fulfillment-us`;欧洲站请用 `linkfox-temu-fulfillment-eu`。
网关:
| 能力 | 方法 | 路径 |
|---|---|---|
| 履约 OpenAPI | POST | https://tool-gateway.linkfox.com/temu/proxy |
| 加签文件下载 | POST | https://tool-gateway.linkfox.com/temu/fileDownload |
相关 skill
| 场景 | skill |
|---|---|
| 订单列表/详情/地址 | linkfox-temu-order-global |
| 取消订单 | linkfox-temu-cancel-order-global |
| 商品管理 | linkfox-temu-manage-product-global |
| 美国站履约(含 Scan Form) | linkfox-temu-fulfillment-us |
| 欧洲站履约 | linkfox-temu-fulfillment-eu |
| 退货退款 | linkfox-temu-returns-refunds-global |
默认参数
| 字段 | 默认 |
|---|---|
| site | global |
| managementType | semi-managed |
| tokenPurpose | order-shipping |
Scripts(按域)
Buy-Shipping(global_buy_shipping_*)
购标、面单、上门揽收等(不含 Scan Form)— 见 apis/README.md。
Co-Warehouse(global_co_warehouse_*)
bg.cooperativewarehouse.* — 合作仓授权、提交/取消履约。
Self-Fulfilled(global_self_fulfilled_*)
bg.logistics.shipment.v2.*、shippingtype.update 等 — 卖家自带运单号。
Tracking(global_tracking_*)
temu.track.trackinginfo.get
通用
| 脚本 | 说明 |
|---|---|
temu_global_proxy.py | 任意 type |
temu_global_file_download.py | 加签文件下载 |
薄封装统一调用 `_global_fulfillment_script.run_cli`。
示例
export LINKFOXAGENT_API_KEY="<key>"
# Buy-Shipping 购标
python scripts/global_buy_shipping_logistics_shipment_create.py '{
"accessToken": "TOKEN",
"site": "global",
"tokenPurpose": "order-shipping",
"request": { }
}'
# 卖家自发货更新跟踪号
python scripts/global_self_fulfilled_logistics_shipment_shippingtype_update.py '{
"accessToken": "TOKEN",
"site": "global",
"tokenPurpose": "order-shipping",
"request": { "editPackageRequestList": [{ "packageSn": "PKG-1", "trackingNumber": "1Z..." }] }
}'Feedback: skillName:linkfox-temu-fulfillment-global
<!-- LF_LARGE_RESPONSE_BLOCK -->
Handling Large Responses
To avoid overflowing the agent context, persist the response to disk and extract only the fields you need:
python scripts/response_io.py run --script scripts/check_linkfox_token.py --out-dir <DIR> '<params>'
python scripts/response_io.py read <file> --fields "<paths>" # or --path "<JMESPath>"Pick--out-diroutside any git working tree (e.g./tmp/...on Unix,%TEMP%/...on Windows). Persisted responses may contain PII, pricing, or auth-sensitive data — do not commit them. Files are not auto-deleted; clean up when the task is done.
This skill exposes multiple entry scripts:check_linkfox_token.py,get_temu_access_token.py,global_buy_shipping_logistics_label_list_get.py,global_buy_shipping_logistics_shiplogisticstype_get.py,global_buy_shipping_logistics_shipment_create.py,global_buy_shipping_logistics_shipment_document_get.py,global_buy_shipping_logistics_shipment_pickup_reservation_cancel.py,global_buy_shipping_logistics_shipment_pickup_reservation_create.py,global_buy_shipping_logistics_shipment_pickup_reservation_result_get.py,global_buy_shipping_logistics_shipment_result_get.py,global_buy_shipping_logistics_shipment_update.py,global_buy_shipping_logistics_shipped_package_confirm.py,global_buy_shipping_logistics_shippingservices_get.py,global_buy_shipping_logistics_warehouse_list_get.py,global_buy_shipping_order_unshipped_package_get.py,global_co_warehouse_cooperativewarehouse_fulfill_cancel.py,global_co_warehouse_cooperativewarehouse_fulfill_submit.py,global_co_warehouse_cooperativewarehouse_provider_list.py,global_co_warehouse_cooperativewarehouse_token_authorization.py,global_self_fulfilled_logistics_companies_get.py,global_self_fulfilled_logistics_shipment_shippingtype_update.py,global_self_fulfilled_logistics_shipment_sub_confirm.py,global_self_fulfilled_logistics_shipment_v2_confirm.py,global_self_fulfilled_logistics_shipment_v2_get.py,global_tracking_track_trackinginfo_get.py,list_temu_access_tokens.py,save_temu_access_token.py,temu_file_download.py,temu_global_file_download.py,temu_global_proxy.py,temu_proxy.py,temu_token_guide.py. Pass--script scripts/<name>.pyto choose the one you need.
run writes the full response to a file and emits only a schema preview + file path. read projects specific fields, with --limit/--offset for slicing and --format json|jsonl|csv|table for output.
When to prefer this pattern — apply your judgment based on the response characteristics, e.g.:
- High field count per record, or fields you don't need
- Batch/paginated results (multiple items per call)
- Long-text fields (descriptions, reviews, HTML, time series)
- Output reused across later steps rather than consumed immediately
For small, single-use responses, calling the main script directly is fine.
⚠️ The preview is a truncated schema + sample, not the full data. Any field-level decision must read from the persisted file via read. <!-- /LF_LARGE_RESPONSE_BLOCK -->
Temu accessToken 授权与获取
Temu 没有 LinkFox 侧自动 OAuth;accessToken 须在 Temu 卖家后台「服务市场 → 授权管理」手动复制。与 LINKFOXAGENT_API_KEY(LinkFox 用户鉴权)是两套令牌。
两种鉴权(勿混淆)
| 令牌 | 用途 | 获取方式 |
|---|---|---|
| LinkFox 用户 Token | 调用 /temu/proxy、/temu/fileDownload 必填 | LINKFOXAGENT_API_KEY 或请求 JSON 的 token;Header Authorization + Token(同 amazon-store-auth) |
| Temu accessToken | Temu 业务 API(经紫鸟转发) | Temu 卖家后台授权后复制 |
export LINKFOXAGENT_API_KEY="<your-key>"
python scripts/check_linkfox_token.pytokenPurpose 与场景
| tokenPurpose | 店铺类型 | 推荐 site | 授权应用 |
|---|---|---|---|
product-inventory | 半托管 | cn / partner | 酷鸟卖家助手 |
order-shipping | 半托管 | us / global / eu | Cyber-ERP酷鸟助手 |
full-managed | 全托管 | cn / partner | 酷鸟卖家助手 |
local-native | 本土(美/欧主体) | us 等 | Cyber-ERP |
1. 半托管 — 商品/库存 Token
1. 登录 seller.kuajingmaihuo.com 或 agentseller.temu.com 2. 系统管理 → 服务市场 → 授权管理 3. 获取授权 → 选择 「酷鸟卖家助手」 4. 全选常规和特殊授权 → 确认 → 复制 access_token 5. 调用 API:site=cn 或 partner,managementType=semi-managed
2. 半托管 — 订单/发货 Token
1. 登录 Temu 卖家后台 2. 右上角 Seller Central → 切换到目标区域(美区 / 欧区 / 全球) 3. 服务市场 → 授权管理 4. 获取授权 → 选择 「Cyber-ERP酷鸟助手」 5. 全选授权 → 确认 → 复制 token 6. 调用 API:site=global / global / eu,managementType=semi-managed
3. 全托管店铺
1. 登录 Temu 平台 2. 系统管理 → 服务市场 → 授权管理 3. 获取授权 → 「酷鸟卖家助手」 → 全选 → 复制 token 4. 调用 API:managementType=full-managed,site 通常 cn 或 partner
4. 本土店铺(美区、欧区主体)
1. 登录 Temu 2. Apps And Services → Manage Your Apps 3. Authorize a new app → 搜索 「Cyber-ERP」 4. 一般权限与敏感权限全选 → 确认 → 复制 token
站点与 OpenAPI 网关
| site | 说明 | Temu 网关 |
|---|---|---|
| cn | 中国站 | openapi.kuajingmaihuo.com |
| partner | Partner 网关 | openapi-b-partner.temu.com |
| us | 全球站 | openapi-b-global.temu.com |
| global | 全球区 | openapi-b-global.temu.com |
| eu | 全球站 | openapi-b-global.temu.com |
本地保存 Token(推荐)
默认存储:~/.linkfox/temu-access-tokens.json(可用 TEMU_TOKEN_STORE_PATH 覆盖)。
# 查看授权步骤
python scripts/temu_token_guide.py '{"shopType":"semi-managed","tokenPurpose":"product-inventory","site":"cn"}'
# 保存 token
python scripts/save_temu_access_token.py '{
"storeKey": "my-shop",
"label": "中国半托管",
"site": "cn",
"managementType": "semi-managed",
"tokenPurpose": "product-inventory",
"accessToken": "PASTE_TOKEN"
}'
# 列出已保存(脱敏)
python scripts/list_temu_access_tokens.py
# 用 storeKey 调 API(无需每次粘贴 token)
python scripts/temu_proxy.py '{
"storeKey": "my-shop",
"site": "cn",
"managementType": "semi-managed",
"tokenPurpose": "product-inventory",
"type": "bg.goods.category.mapping",
"params": {"goodsName": "测试", "goodsNameEn": "Test"}
}'注意事项
1. 子账号:可能无法进入服务市场,需主账号授权。 2. 多站点:全球站、英国站等需分别登录对应后台获取 Token。 3. 有效期:Token 会过期,过期后重新在后台复制并 save_temu_access_token.py。 4. IP 白名单:需联系紫鸟开放平台配置调用 IP。 5. 参数小写:site、managementType 必须小写。
脚本一览
| 脚本 | 说明 |
|---|---|
temu_token_guide.py | 按店铺类型/用途输出授权步骤 |
save_temu_access_token.py | 保存 accessToken 到本地 |
list_temu_access_tokens.py | 列出已保存 token(默认脱敏) |
get_temu_access_token.py | 读取指定 store 的 token |
linkfox-temu-fulfillment-global — API 参考
Temu 全球站电商履行/发货(Buy-Shipping + Co-Warehouse + Self-Fulfilled + Tracking),经 temu_global_proxy(POST /temu/proxy)转发。
网关与鉴权见scripts/;tokenPurpose=order-shipping。
调用规范
| 项 | 说明 |
|---|---|
| 网关根地址 | https://tool-gateway.linkfox.com(可用 TEMU_API_BASE_URL / STORE_API_BASE_URL 覆盖) |
| 履约 OpenAPI | POST /temu/proxy |
| 加签文件下载 | POST /temu/fileDownload(temu_global_file_download.py) |
| LinkFox 鉴权 | Header `Authorization` 与 `Token`(同值);或 LINKFOXAGENT_API_KEY;或 JSON token |
| Temu 鉴权 | Body accessToken,或 storeKey + site + managementType + tokenPurpose |
| 默认 | site=global,managementType=semi-managed,tokenPurpose=order-shipping |
| 上游 OpenAPI(US) | https://openapi-b-global.temu.com/openapi/router(网关按 site 解析) |
网关请求 Body(/temu/proxy)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| site | string | 是 | us(本 skill 默认) |
| managementType | string | 是 | semi-managed |
| accessToken | string | 与 storeKey 二选一 | Temu 店铺令牌 |
| storeKey | string | 与 accessToken 二选一 | ~/.linkfox/temu-access-tokens.json 中的键 |
| tokenPurpose | string | 否 | 建议 `order-shipping` |
| type | string | 是 | Temu 接口名,如 Partner 文档中的 bg.* / temu.* |
| params | object | 否 | 业务参数;多数接口业务块在 `params.request` |
网关响应
| 字段 | 类型 | 说明 |
|---|---|---|
| body | string | Temu 原始 JSON 字符串;脚本解析为 temuBody |
| code | integer | 网关错误码:1002 参数/Token,1003 转发失败 |
解析顺序:网关 `code` → JSON.parse(body) → success / errorCode / errorMsg / result。
脚本调用
export LINKFOXAGENT_API_KEY="<key>"
python scripts/temu_global_proxy.py '{"accessToken":"TOKEN","tokenPurpose":"order-shipping","type":"<API_TYPE>","params":{"request":{}}}'业务字段可放在顶层或嵌套 params;含 request 时通常整体作为 params 转发。
---
接口一览
完整 sub_menu_code 与 Partner 文档 URL 见 partner-global-catalog.md。
每个接口单独一份文档:apis/README.md(随接入递增)。
| type | 说明 | 文档 |
|---|---|---|
bg.logistics.warehouse.list.get | 获取店铺仓库列表(可筛支持购标仓库) | apis/bg-logistics-warehouse-list-get.md |
temu.logistics.shiplogisticstype.get | 获取在线发货物流类型(购标前选类型) | apis/temu-logistics-shiplogisticstype-get.md |
bg.logistics.shippingservices.get | 按包裹尺寸/重量查询可用物流渠道(Buy-Shipping 查价) | apis/bg-logistics-shippingservices-get.md |
bg.logistics.shipment.create | 在线下单购标(创建包裹,返回 packageSnList) | apis/bg-logistics-shipment-create.md |
bg.logistics.shipment.result.get | 查询购标/在线下单结果(shippingLabelStatus) | apis/bg-logistics-shipment-result-get.md |
bg.logistics.shipment.update | 延后发货时限更新 / 购标失败包裹重试 | apis/bg-logistics-shipment-update.md |
bg.logistics.shipment.document.get | 获取面单/运单文档 URL(PDF/PNG) | apis/bg-logistics-shipment-document-get.md |
bg.order.unshipped.package.get | 查询 Temu 集成物流已履约、未发货确认的包裹 | apis/bg-order-unshipped-package-get.md |
temu.logistics.label.list.get | 查询 Temu 平台购标面单列表(筛选/分页) | apis/temu-logistics-label-list-get.md |
bg.logistics.shipped.package.confirm | 批量确认包裹已发货(购标后出库) | apis/bg-logistics-shipped-package-confirm.md |
temu.logistics.shipment.pickup.reservation.create | 预约上门揽收(同渠道同仓,最多 50 包裹/次) | apis/temu-logistics-shipment-pickup-reservation-create.md |
temu.logistics.shipment.pickup.reservation.result.get | 查询上门揽收预约结果(reservationSn / reservationStatus) | apis/temu-logistics-shipment-pickup-reservation-result-get.md |
temu.logistics.shipment.pickup.reservation.cancel | 取消上门揽收预约(reservationSn) | apis/temu-logistics-shipment-pickup-reservation-cancel.md |
---
典型 Buy-Shipping 流程
1. linkfox-temu-order-global → 查待发货订单(注意 earliestTimeBuyShippingLabel 等字段)
2. bg.logistics.warehouse.list.get → 仓库列表 / warehouseId(购标可用仓库)
3. temu.logistics.shiplogisticstype.get → 在线发货物流类型 shipLogisticsType
4. bg.logistics.shippingservices.get → 可用渠道 / channelId、估价
5. bg.logistics.shipment.create → 购标,获得 packageSnList
6. temu.logistics.shipment.pickup.reservation.create(可选) → 需上门揽收渠道时预约时段
7. temu.logistics.shipment.pickup.reservation.result.get → 查询揽收预约结果
8. temu.logistics.shipment.pickup.reservation.cancel(可选) → 取消揽收预约
9. bg.logistics.shipment.result.get → 轮询购标结果 / 面单状态
10. bg.logistics.shipment.update → 调整 shipLaterLimitTime 或失败包裹重试
15. bg.logistics.shipment.document.get → 面单 URL;temu_global_file_download 下载 PDF/PNG
16. temu.logistics.label.list.get → 面单列表查询(状态/打印/时间窗筛选)
17. bg.order.unshipped.package.get → 已购标、待发货确认包裹列表
18. bg.logistics.shipped.package.confirm → 确认已发货(48h 内未确认可能自动转已发货)
19. linkfox-temu-order-global → 刷新订单发货状态订单列表/详情/地址解密等请用 `linkfox-temu-order-global`。卖家自带运单号发货请用 `linkfox-temu-fulfillment-global`。
---
网关错误码
| code | 说明 | 处理 |
|---|---|---|
| 1002 | 参数或 LinkFox Token 无效 | 修正参数与 LINKFOXAGENT_API_KEY |
| 1003 | 转发失败 | 检查 Temu token、tokenPurpose、白名单、网络 |
---
Feedback API
- POST
https://skill-api.linkfox.com/api/v1/public/feedback skillName: `linkfox-temu-fulfillment-global`
典型 Co-Warehouse 流程
1. linkfox-temu-order-global → 查待履约订单(合作仓相关字段)
2. bg.cooperativewarehouse.provider.list → 可选合作仓服务商、permitsStatus
3. bg.cooperativewarehouse.token.authorization → 服务商 Token 授权
4. bg.cooperativewarehouse.fulfill.submit → 提交合作仓履约
5. bg.cooperativewarehouse.fulfill.cancel → 取消合作仓履约单
6. bg.cooperativewarehouse.fulfill.query → 查询履约状态(待接入)
7. linkfox-temu-fulfillment-global → 物流轨迹(如需要)
8. linkfox-temu-order-global → 刷新订单履约状态---
典型自发货流程
1. linkfox-temu-order-global → 查待发货订单(fulfillmentType=fulfillBySeller)
2. bg.logistics.companies.get → carrierId(= logisticsServiceProviderId)
3. linkfox-temu-fulfillment-global → bg.logistics.warehouse.list.get(warehouseId)
4. bg.logistics.shipment.v2.confirm → 确认发货(主流程)
5. bg.logistics.shipment.v2.get → 核对运单/包裹/轨迹预警
6. bg.logistics.shipment.sub.confirm → 拆包追加子包裹(可选)
7. bg.logistics.shipment.shippingtype.update → 更正跟踪号 / 集成改非集成(可选)
8. linkfox-temu-order-global → 刷新订单发货状态订单列表/详情/地址解密等请用 `linkfox-temu-order-global`;商品与库存请用 `linkfox-temu-manage-product-global`。
---
物流跟踪
temu.track.trackinginfo.get(本 skill,global_tracking_track_trackinginfo_get.py)取消合作仓履约单 — bg.cooperativewarehouse.fulfill.cancel
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_co_warehouse_cooperativewarehouse_fulfill_cancel.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.cooperativewarehouse.fulfill.cancel,业务载荷放在 Body 的 params |
Description: cooperation warehouse ERP order
(取消已提交至合作仓(Cooperative Warehouse)的 ERP 履约单;按 `erpFulfillNo` 标识要取消的履约单。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 `request`。建议使用 `tokenPurpose=order-shipping`,且 `managementType=semi-managed`(本 skill 仅 Semi-managed)。
前置依赖:
- 须已完成 **`bg.cooperativewarehouse.token.authorization`** 绑定合作仓服务商。
- `erpFulfillNo` 通常来自 **`bg.cooperativewarehouse.fulfill.submit`** 提交成功后的返回,或 `bg.cooperativewarehouse.fulfill.query`(待接入)查询结果。
- 若履约单不存在,返回错误码 170020004。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
└── erpFulfillNo (STRING, 必填)request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| erpFulfillNo | STRING | 是 | erpFulfillNo(合作仓 ERP 履约单号;卖家/ERP 侧用于标识该笔合作仓履约请求的唯一编号,须与提交履约时使用的 `erpFulfillNo` 一致) |
官方 Request 表将顶层 `request` 标为选填(False),但 `erpFulfillNo` 为必填(True)。Partner Request Example CURL 将 `erpFulfillNo` 写在顶层;经 LinkFox 网关时建议放在 `params.request.erpFulfillNo`。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"erpFulfillNo": "ERP-FULFILL-20260101001"
}
}---
Response(Temu body 解析后)
Partner Response 表顶层为 `response` 对象;`result` 子行在导出 HTML 中为折叠状态,下列子层级按 Response 表 + Response Example 全部展开。
response(或解析后的根对象)
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── erpFulfillNo (STRING)
└── cwFulfillNo (STRING)顶层字段(response 内,或根级)
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | 业务结果对象(取消履约结果) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| erpFulfillNo | STRING | ERP fulfillment order number(ERP 履约单号;与请求 `erpFulfillNo` 对应,用于确认已受理取消的履约单) |
| cwFulfillNo | STRING | Cooperative warehouse fulfillment order number(合作仓侧履约单号;Temu/合作仓系统生成的履约单标识,与 `erpFulfillNo` 关联,便于在 `fulfill.query` 等接口中追踪) |
调用成功时先判断 `success === true`,再核对 `result.erpFulfillNo` 与请求一致。取消是否最终生效可能还须通过 `bg.cooperativewarehouse.fulfill.query`(待接入)或订单状态复核。
---
常见业务错误码(Partner Error Code)
| 错误码 | 错误信息(原文) | 处理建议 |
|---|---|---|
| 170020001 | This ERP provider is not supported. | 检查合作仓服务商是否受支持 |
| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 先完成 **token.authorization** |
| 170020003 | The parameter is illegal, please check and try again. | 检查 `erpFulfillNo` 格式 |
| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. | 核对 `erpFulfillNo` 是否存在、是否已取消 |
| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | 客户编码与授权不一致,重新授权 |
<details> <summary>完整错误码列表(5 条,Partner 原文)</summary>
| 错误码 | 错误信息 |
|---|---|
| 170020001 | This ERP provider is not supported. |
| 170020002 | This mall is not authorized to the cooperative warehouse service provider. |
| 170020003 | The parameter is illegal, please check and try again. |
| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |
| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. |
</details>
---
典型用法
1. bg.cooperativewarehouse.provider.list → 选择 warehouseProviderCode
2. bg.cooperativewarehouse.token.authorization → 合作仓授权
3. bg.cooperativewarehouse.fulfill.submit → 提交履约,获得 erpFulfillNo
4. bg.cooperativewarehouse.fulfill.cancel → 本接口:按 erpFulfillNo 取消
5. bg.cooperativewarehouse.fulfill.query → 查询取消后状态(待接入)---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_co_warehouse_cooperativewarehouse_fulfill_cancel.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"erpFulfillNo": "ERP-FULFILL-20260101001"
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.cooperativewarehouse.fulfill.cancel",
"params": {
"request": {
"erpFulfillNo": "ERP-FULFILL-20260101001"
}
}
}'提交合作仓履约 — bg.cooperativewarehouse.fulfill.submit
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_co_warehouse_cooperativewarehouse_fulfill_submit.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.cooperativewarehouse.fulfill.submit,业务载荷放在 Body 的 params |
Description: cooperativewarehouse_fulfill
(向合作仓服务商提交一笔合作仓履约单:指定合作仓、ERP 履约号、尾程发货方式及子订单 SKU/数量等;平台返回履约状态与合作仓履约号。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 `request`。建议使用 `tokenPurpose=order-shipping`,且 `managementType=semi-managed`(本 skill 仅 Semi-managed)。
前置依赖:
- `warehouseProviderCode` 来自 **`bg.cooperativewarehouse.provider.list`**。
- 若 `authorizeType=0`(默认),须已完成 **`bg.cooperativewarehouse.token.authorization`**,并填写 `cwCustomerCode`。
- 若 `authorizeType=1`,须填写 `authorizeToken`(及可选 `authorizeKey`)。
- `orderSn` / `parentOrderSn` 等通常来自 `linkfox-temu-order-global` 订单接口。
后续: 可用 `bg.cooperativewarehouse.fulfill.query` 查询履约结果(待接入)。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
├── warehouseProviderCode (STRING, 必填)
├── authorizeType (INTEGER, 选填, 默认 0)
├── authorizeKey (STRING, 选填)
├── authorizeToken (STRING, 条件必填)
├── cwCustomerCode (STRING, 条件必填)
├── warehouseCode (STRING, 必填)
├── erpFulfillNo (STRING, 必填)
├── tailShippingMode (INTEGER, 选填)
├── logisticsProductCode (STRING, 条件必填)
├── packageSn (STRING, 条件必填)
├── shipCompanyId (LONG, 选填)
├── channelId (LONG, 选填)
├── channelVersionId (LONG, 选填)
├── shipCompanyName (STRING, 条件必填)
├── trackingNumber (STRING, 条件必填)
├── shippingLabelFileType (STRING, 条件必填)
├── shippingLabelFileBase64 (STRING, 条件必填)
├── shipLogisticsType (STRING, 条件必填)
└── orderList[] (OBJECT[], 必填)
├── cwSkuCode (STRING, 必填)
├── productSkuId (LONG, 选填)
├── quantity (INTEGER, 必填)
├── orderSn (STRING, 必填)
├── parentOrderSn (STRING, 必填)
└── skuId (LONG, 选填)Partner Request 表在导出 HTML 中 `orderList` 子行未展开;上表 `orderList[]` 子字段按 Request Example 与 Error Code(170020024–170020027)补全。
request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| warehouseProviderCode | STRING | 是 | cooperative warehouse provider code(合作仓服务商编码;与 **provider.list** 中 `warehouseProviderCode` 一致) |
| authorizeType | INTEGER | 否 | Cooperation warehouse authorization methods(合作仓授权方式:`0` = 使用平台授权信息(using platform authorization information);`1` = 直接上传授权信息(directly uploading authorization information)。未传时默认为 `0`) |
| authorizeKey | STRING | 否 | cooperative warehouse authorization app key(合作仓授权 App Key;部分服务商在 `authorizeType=1` 时与 `authorizeToken` 一并使用) |
| authorizeToken | STRING | 条件 | Cooperative Warehouse Authorization Token, mandatory when authorizeType is 1(合作仓授权 Token;`authorizeType=1` 时必填,错误码 170020038) |
| cwCustomerCode | STRING | 条件 | cooperative warehouse customer code, mandatory when authorizeType is 0(合作仓客户编码;`authorizeType=0`(含默认)时必填,错误码 170020037;须与已授权客户编码一致,见 170020005) |
| warehouseCode | STRING | 是 | cooperative warehouse code(合作仓仓库编码) |
| erpFulfillNo | STRING | 是 | erp fulfill number(ERP/WMS 侧履约单号;须唯一,重复提交见 170020009) |
| tailShippingMode | INTEGER | 否 | tail shipping mode(尾程发货模式;不同取值下条件必填字段见下表及错误码 170020028–170020036) |
| logisticsProductCode | STRING | 条件 | logistics product code(物流产品编码;`tailShippingMode=0` 时必填,错误码 170020028) |
| packageSn | STRING | 条件 | package sn(包裹号;`tailShippingMode=1` 时必填,错误码 170020029;包裹不存在见 170020039) |
| shipCompanyId | LONG | 否 | ship company id(承运商 ID;`tailShippingMode=1` 时必填,错误码 170020034;须与 `shipCompanyName` 映射一致,见 170020011) |
| channelId | LONG | 否 | channel id(渠道 ID;`tailShippingMode=1` 时必填,错误码 170020035;须与 `shipCompanyName`、`shipLogisticsType` 匹配,见 170020041) |
| channelVersionId | LONG | 否 | channel version id(渠道版本 ID) |
| shipCompanyName | STRING | 条件 | ship company name(承运商名称;`tailShippingMode=1` 时必填,错误码 170020030) |
| trackingNumber | STRING | 条件 | trackingNumber(运单号;`tailShippingMode=1` 时必填,错误码 170020031;须与包裹运单一致,见 170020040) |
| shippingLabelFileType | STRING | 条件 | ship label file type(面单文件类型;`tailShippingMode=1` 时必填,错误码 170020032;类型非法见 170020007) |
| shippingLabelFileBase64 | STRING | 条件 | shippingLabelFileBase64(面单文件 Base64 内容;`tailShippingMode=1` 时必填,错误码 170020033;内容非法见 170020008) |
| shipLogisticsType | STRING | 条件 | shipLogisticsType(物流类型;`tailShippingMode=1` 时必填,错误码 170020036) |
| orderList | OBJECT[] | 是 | sub order list(子订单列表;至少一条,错误码 170020023) |
authorizeType 与授权字段
| authorizeType | 含义 | 必填业务字段 |
|---|---|---|
0(默认) | 使用平台授权信息 | `cwCustomerCode` |
1 | 直接上传授权 | `authorizeToken`(可选 `authorizeKey`) |
tailShippingMode 与尾程字段
| tailShippingMode | 含义(Partner 表仅写 tail shipping mode;条件必填以 Error Code 为准) | 条件必填字段 |
|---|---|---|
0 | 合作仓/平台物流产品发货 | `logisticsProductCode` |
1 | 卖家/ERP 自带面单与运单 | `packageSn`、`shipCompanyName`、`trackingNumber`、`shippingLabelFileType`、`shippingLabelFileBase64`、`shipCompanyId`、`channelId`、`shipLogisticsType` |
尾程模式非法见 170020006;当前承运商不支持面单见 170020010。
orderList[] 元素
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cwSkuCode | STRING | 是 | 合作仓 SKU 编码(Partner Request Example 字段;错误码 170020026) |
| productSkuId | LONG | 否 | 商品 SKU ID(Partner Request Example 示例为数值;Request 表未单独列出) |
| quantity | INTEGER | 是 | 发货数量(错误码 170020027) |
| orderSn | STRING | 是 | 子订单号(错误码 170020024;无效见 170020012) |
| parentOrderSn | STRING | 是 | 父订单号(错误码 170020025) |
| skuId | LONG | 否 | SKU ID(Partner Request Example 示例为数值;Request 表未单独列出) |
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"warehouseProviderCode": "PROVIDER_CODE",
"authorizeType": 0,
"cwCustomerCode": "YOUR_CW_CUSTOMER_CODE",
"warehouseCode": "WAREHOUSE_CODE",
"erpFulfillNo": "ERP_FULFILL_NO_001",
"tailShippingMode": 0,
"logisticsProductCode": "LOGISTICS_PRODUCT_CODE",
"orderList": [
{
"cwSkuCode": "CW_SKU_001",
"productSkuId": 1,
"quantity": 1,
"orderSn": "ORDER_SN",
"parentOrderSn": "PARENT_ORDER_SN",
"skuId": 1
}
]
}
}{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"warehouseProviderCode": "PROVIDER_CODE",
"authorizeType": 1,
"authorizeKey": "AUTHORIZE_KEY",
"authorizeToken": "AUTHORIZE_TOKEN",
"warehouseCode": "WAREHOUSE_CODE",
"erpFulfillNo": "ERP_FULFILL_NO_002",
"tailShippingMode": 1,
"packageSn": "PACKAGE_SN",
"shipCompanyId": 1,
"channelId": 1,
"channelVersionId": 1,
"shipCompanyName": "CARRIER_NAME",
"trackingNumber": "TRACKING_NUMBER",
"shippingLabelFileType": "PDF",
"shippingLabelFileBase64": "BASE64_LABEL_CONTENT",
"shipLogisticsType": "LOGISTICS_TYPE",
"orderList": [
{
"cwSkuCode": "CW_SKU_001",
"quantity": 1,
"orderSn": "ORDER_SN",
"parentOrderSn": "PARENT_ORDER_SN"
}
]
}
}---
Response(Temu body 解析后)
Partner Response 表顶层为 `response` 对象;`result` 子行在导出 HTML 中为折叠状态,下列子层级按 Response 表 + Response Example 全部展开。
response(或解析后的根对象)
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── fulfillStatus (INTEGER)
├── erpFulfillNo (STRING)
└── cwFulfillNo (STRING)顶层字段(response 内,或根级)
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | response result(业务结果对象) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| fulfillStatus | INTEGER | 履约状态(Partner Response 表未展开;Response Example 示例值为 `1`,具体枚举以 Temu/合作仓文档为准) |
| erpFulfillNo | STRING | erp fulfill number(回显提交的 ERP 履约单号) |
| cwFulfillNo | STRING | 合作仓履约单号(合作仓侧生成的履约编号,用于后续查询/对账) |
调用成功时先判断 `success === true`,再读 `result.fulfillStatus`、`result.cwFulfillNo`。若需轮询或核对,使用 `bg.cooperativewarehouse.fulfill.query`(待接入)。
---
常见业务错误码(Partner Error Code)
| 错误码 | 错误信息(原文) | 处理建议 |
|---|---|---|
| 170020021 | Parameter [warehouseProviderCode] is required but not provided in the input | 填写 `warehouseProviderCode` |
| 170020022 | Parameter [erpFulfillNo] is required but not provided in the input | 填写 `erpFulfillNo` |
| 170020023 | Parameter [orderList] is required but not provided in the input | 提供 `orderList` 且至少一条 |
| 170020024 | Parameter [orderSn] is required but not provided in the input | `orderList[]` 中填写 `orderSn` |
| 170020025 | Parameter [parentOrderSn] is required but not provided in the input | 填写 `parentOrderSn` |
| 170020026 | Parameter [cwSkuCode] is required but not provided in the input | 填写 `cwSkuCode` |
| 170020027 | Parameter [quantity] is required but not provided in the input | 填写 `quantity` |
| 170020028 | The [tailShippingMode] is 0, and the required parameter [logisticsProductCode] has not been filled in | `tailShippingMode=0` 时补 `logisticsProductCode` |
| 170020029 | The [tailShippingMode] is 1, and the required parameter [packageSn] has not been filled in | `tailShippingMode=1` 时补 `packageSn` |
| 170020030 | The [tailShippingMode] is 1, and the required parameter [shipCompanyName] has not been filled in | 补 `shipCompanyName` |
| 170020031 | [tailShippingMode] is 1, and the required parameter [trackingNumber] has not been filled in | 补 `trackingNumber` |
| 170020032 | The [tailShippingMode] is 1, and the required parameter [shippingLabelFileType] has not been filled in | 补 `shippingLabelFileType` |
| 170020033 | The [tailShippingMode] is 1, and the required parameter [shippingLabelFileBase64] has not been filled in | 补 `shippingLabelFileBase64` |
| 170020034 | The [tailShippingMode] is 1, and the required parameter [shipCompanyId] has not been filled in | 补 `shipCompanyId` |
| 170020035 | The [tailShippingMode] is 1, and the required parameter [channelId] has not been filled in | 补 `channelId` |
| 170020036 | The [tailShippingMode] is 1, and the required parameter [shipLogisticsType] has not been filled in | 补 `shipLogisticsType` |
| 170020037 | The [authorizeType] is 0, and the required parameter [cwCustomerCode] has not been filled in | `authorizeType=0` 时补 `cwCustomerCode` |
| 170020038 | The [authorizeType] is 1, and the required parameter [authorizeToken] has not been filled in | `authorizeType=1` 时补 `authorizeToken` |
| 170020039 | The package number does not exist. | 检查 `packageSn` |
| 170020040 | The tracking number corresponding to this package does not match the trackingNumber field. | `trackingNumber` 与包裹运单一致 |
| 170020041 | ChannelId, shipCompanyName and logisticType not match, please check! | 核对 `channelId` / `shipCompanyName` / `shipLogisticsType` |
| 170020001 | This ERP provider is not supported. | 更换支持的 `warehouseProviderCode` |
| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 先完成服务商授权 |
| 170020003 | The parameter is illegal, please check and try again. | 检查入参格式 |
| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | 修正 `cwCustomerCode` |
| 170020009 | This fulfillment order already exists, please submit another one. | 更换 `erpFulfillNo` |
| 170020006 | This fulfillment order has wrong tail shipping mode, please check and try again. | 修正 `tailShippingMode` 及关联字段 |
| 170020007 | This fulfillment order has wrong shipping label file type, please check and try again. | 修正 `shippingLabelFileType` |
| 170020008 | This fulfillment order has wrong shipping label file content, please check and try again. | 修正 `shippingLabelFileBase64` |
| 170020010 | The service provider does not support shipping label for the current shippingCompanyName... | 更换承运商或尾程方式 |
| 170020011 | This ship company id not match with the ship company name mapped. | `shipCompanyId` 与 `shipCompanyName` 一致 |
| 170020012 | The parentOrderSn in fulfill order is invalid. | 核对订单号 |
| 170020014 | The cooperative warehouse service provider returned: API authorization exception... | 刷新合作仓 Token |
| 170020016 | Your store has been restricted from using the function of logistics shipping by partner warehouse service providers... | 联系平台/服务商解除限制 |
<details> <summary>完整错误码列表(Partner 原文,含占位符项)</summary>
| 错误码 | 错误信息 |
|---|---|
| 170020017 | Parameter {*} is required but not provided in the input. |
| 170020018 | The [authorizeType] is {} , and the required parameter {} has not been filled in. |
| 170020019 | The [tailShippingMode] is {} and the required parameter {} has not been filled in. |
| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |
| 170020013 | The service provider has not signed the DPA Agreement of the country and cannot perform the contract... |
| 170020015 | The current order does not support address query, please check! |
</details>
---
典型用法
1. bg.cooperativewarehouse.provider.list → warehouseProviderCode、warehouseCode
2. bg.cooperativewarehouse.token.authorization → authorizeType=0 时绑定 cwCustomerCode
3. bg.cooperativewarehouse.fulfill.submit → 本接口:提交履约
4. bg.cooperativewarehouse.fulfill.query → 查询履约结果(待接入)---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_co_warehouse_cooperativewarehouse_fulfill_submit.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"warehouseProviderCode": "PROVIDER_CODE",
"cwCustomerCode": "YOUR_CW_CUSTOMER_CODE",
"warehouseCode": "WAREHOUSE_CODE",
"erpFulfillNo": "ERP_FULFILL_NO_001",
"tailShippingMode": 0,
"logisticsProductCode": "LOGISTICS_PRODUCT_CODE",
"orderList": [
{
"cwSkuCode": "CW_SKU_001",
"quantity": 1,
"orderSn": "ORDER_SN",
"parentOrderSn": "PARENT_ORDER_SN"
}
]
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.cooperativewarehouse.fulfill.submit",
"params": {
"request": {
"warehouseProviderCode": "PROVIDER_CODE",
"warehouseCode": "WAREHOUSE_CODE",
"erpFulfillNo": "ERP_FULFILL_NO_001",
"orderList": []
}
}
}'合作仓服务商列表 — bg.cooperativewarehouse.provider.list
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_co_warehouse_cooperativewarehouse_provider_list.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.cooperativewarehouse.provider.list,业务载荷放在 Body 的 params |
Description: cooperate warehouse erp order(Partner 导出页 Description 原文;本接口用于查询合作仓(Cooperative Warehouse)服务商/ERP 列表及授权许可状态,供后续 **`bg.cooperativewarehouse.token.authorization`** 等合作仓履约流程使用。)
(查询当前店铺可用的合作仓服务商(Warehouse Provider)列表,包含服务商编码、品牌、支持的承运商、区域、客户编码及包裹配送类型等;`permitsStatus` 反映合作仓相关许可/授权状态。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 `request`。建议使用 `tokenPurpose=order-shipping`,且 `managementType=semi-managed`(本 skill 仅 Semi-managed)。
后续: 授权绑定见 **`bg.cooperativewarehouse.token.authorization`**;履约提交见 **`bg.cooperativewarehouse.fulfill.submit`**;查询见 `bg.cooperativewarehouse.fulfill.query`(待接入)。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
└── needAllPlatformProviders (BOOLEAN, 选填)request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| needAllPlatformProviders | BOOLEAN | 否 | needAllPlatformProviders(是否返回全平台合作仓服务商列表;Partner Request 表将该说明写在 Required 列。true 时通常返回平台侧全部可选服务商;false 或不传时返回与当前店铺/授权范围相关的服务商,以实际调通为准) |
官方 Request 表将 `request` 与 `needAllPlatformProviders` 均标为选填(False)。Partner Request Example CURL 将 `needAllPlatformProviders` 写在顶层,经 LinkFox 网关时建议放在 `params.request.needAllPlatformProviders`。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"needAllPlatformProviders": true
}
}{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {}
}---
Response(Temu body 解析后)
Partner Response 表顶层为 `response` 对象;`result` 在导出 HTML 中为折叠状态,下列子层级按 Response 表 + Response Example 全部展开。
response(或解析后的根对象)
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── permitsStatus
└── warehouseProviderList[] (OBJECT[])
├── warehouseProviderCode
├── warehouseProviderBrandName
├── supportNoCwCustomCode
├── cwCustomerCodeList[] (STRING[])
├── regionId[] (STRING[])
├── supportedPackageDeliveryType[] (INTEGER[])
└── supportedShipCompany[] (OBJECT[])
├── shipCompanyName
└── shipCompanyId顶层字段(response 内,或根级)
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | result(业务结果对象) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| permitsStatus | INTEGER | Permits / authorization status(合作仓相关许可或授权状态;Response Example 为 `1`;具体枚举含义以 Partner 在线 Response 表为准,可结合后续 `bg.cooperativewarehouse.token.authorization` 判断店铺是否已完成服务商授权) |
| warehouseProviderList | OBJECT[] | Warehouse provider list(合作仓服务商列表) |
warehouseProviderList[] 元素字段
Partner Response 表中 `result` 子行在导出 HTML 中为折叠状态;下列字段与类型来自 Response Example,说明结合 Co-Warehouse 履约语义整理。若 Partner 在线文档 Expand 后有更完整枚举,以在线表为准。
| 参数 | 类型 | 说明 |
|---|---|---|
| warehouseProviderCode | STRING | Warehouse provider code(合作仓服务商编码;后续授权、履约接口中标识服务商) |
| warehouseProviderBrandName | STRING | Warehouse provider brand name(合作仓服务商品牌/展示名称) |
| supportNoCwCustomCode | INTEGER | Whether supports scenarios without cooperative warehouse custom code(是否支持无合作仓客户编码(cw custom code)的场景;Response Example 为 `1`,具体布尔语义以 Partner 为准) |
| cwCustomerCodeList | STRING[] | Cooperative warehouse customer code list(合作仓客户编码列表;绑定/授权后用于履约) |
| regionId | STRING[] | Region ID list(该服务商支持的发货/履约区域 ID 列表) |
| supportedPackageDeliveryType | INTEGER[] | Supported package delivery type list(支持的包裹配送类型列表;Response Example 为整数数组,具体类型枚举以 Partner 为准) |
| supportedShipCompany | OBJECT[] | Supported shipping company list(该合作仓服务商支持的物流公司/承运商列表) |
warehouseProviderList[].supportedShipCompany[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| shipCompanyId | INTEGER | Ship company ID(物流公司/承运商 ID) |
| shipCompanyName | STRING | Ship company name(物流公司/承运商名称) |
调用成功时先判断 `success === true`,再读 `result.permitsStatus` 与 `warehouseProviderList`。选定 `warehouseProviderCode` 后,通常继续调用 **`bg.cooperativewarehouse.token.authorization`** 完成授权,再使用 `bg.cooperativewarehouse.fulfill.submit` 等提交合作仓履约。
---
典型用法
1. bg.cooperativewarehouse.provider.list(本接口) → 查询可选合作仓服务商、permitsStatus
2. bg.cooperativewarehouse.token.authorization → 服务商 Token 授权(见 [文档](./bg-cooperativewarehouse-token-authorization.md))
3. bg.cooperativewarehouse.fulfill.submit → 提交合作仓履约
4. bg.cooperativewarehouse.fulfill.query → 查询合作仓履约(待接入)
4. linkfox-temu-order-global → 订单状态刷新---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_co_warehouse_cooperativewarehouse_provider_list.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"needAllPlatformProviders": true
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"type": "bg.cooperativewarehouse.provider.list",
"params": {
"request": {}
}
}'合作仓 Token 授权 — bg.cooperativewarehouse.token.authorization
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_co_warehouse_cooperativewarehouse_token_authorization.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.cooperativewarehouse.token.authorization,业务载荷放在 Body 的 params |
Description: Cooperative warehouse token authorization
(将卖家在合作仓服务商(ERP/WMS)侧取得的访问凭证授权绑定到 Temu 店铺,使平台可代店铺调用该合作仓履约能力。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 `request`。建议使用 `tokenPurpose=order-shipping`,且 `managementType=semi-managed`(本 skill 仅 Semi-managed)。
前置依赖:
- `warehouseProviderCode` 通常来自 **`bg.cooperativewarehouse.provider.list`** 返回的 `warehouseProviderList[].warehouseProviderCode`。
- `cwAccessToken`、`cwCustomerCode` 由合作仓服务商侧颁发/分配,须与所选 `warehouseProviderCode` 对应。
- `cwAppKey` 为选填,部分 ERP 服务商要求与 `cwAccessToken` 一并提交。
后续: 授权成功后可用 **`bg.cooperativewarehouse.fulfill.submit`** 提交合作仓履约;查询见 `bg.cooperativewarehouse.fulfill.query`(待接入)。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
├── cwAppKey (STRING, 选填)
├── cwAccessToken (STRING, 必填)
├── cwCustomerCode (STRING, 必填)
└── warehouseProviderCode (STRING, 必填)request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cwAppKey | STRING | 否 | cwAppKey(合作仓/ERP 侧应用 Key;部分服务商授权流程需要,Partner 表为选填) |
| cwAccessToken | STRING | 是 | cwAccessToken(合作仓服务商颁发的访问令牌;用于 Temu 校验卖家已在该服务商完成授权) |
| cwCustomerCode | STRING | 是 | cwCustomerCode(合作仓客户编码;须与服务商侧授权的客户身份一致,错误码 170020005) |
| warehouseProviderCode | STRING | 是 | warehouseProviderCode(合作仓服务商编码;与 **provider.list** 中 `warehouseProviderCode` 一致) |
官方 Request 表将顶层 `request` 标为选填(False),但 `cwAccessToken`、`cwCustomerCode`、`warehouseProviderCode` 为必填。Partner Request Example CURL 将业务字段写在顶层;经 LinkFox 网关时建议放在 `params.request` 下(亦可由extract_business_params放在params顶层转发)。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"managementType": "semi-managed",
"request": {
"cwAppKey": "YOUR_CW_APP_KEY",
"cwAccessToken": "YOUR_CW_ACCESS_TOKEN",
"cwCustomerCode": "YOUR_CW_CUSTOMER_CODE",
"warehouseProviderCode": "PROVIDER_CODE_FROM_LIST"
}
}{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"cwAccessToken": "YOUR_CW_ACCESS_TOKEN",
"cwCustomerCode": "YOUR_CW_CUSTOMER_CODE",
"warehouseProviderCode": "PROVIDER_CODE_FROM_LIST"
}
}---
Response(Temu body 解析后)
Partner Response 表顶层为 `response` 对象;`result` 子行在导出 HTML 中为折叠状态,下列子层级按 Response 表 + Response Example 全部展开。
response(或解析后的根对象)
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── authorizationSuccess (BOOLEAN)
└── authorizationFailReason (STRING)顶层字段(response 内,或根级)
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | 业务结果对象(授权结果) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| authorizationSuccess | BOOLEAN | Whether cooperative warehouse token authorization succeeded(合作仓 Token 授权是否成功;`true` 表示授权通过,`false` 表示未通过,须结合 `authorizationFailReason` 排查) |
| authorizationFailReason | STRING | Authorization failure reason(授权失败原因说明;`authorizationSuccess` 为 `true` 时可能为空或占位文案,以 Temu 实际返回为准) |
调用成功时先判断 `success === true`,再读 `result.authorizationSuccess`。若为 `false`,根据 `authorizationFailReason` 与下方业务错误码修正 `cwAccessToken` / `cwCustomerCode` / `warehouseProviderCode`,或确认店铺已在服务商侧完成授权(170020002)。
---
常见业务错误码(Partner Error Code)
| 错误码 | 错误信息(原文) | 处理建议 |
|---|---|---|
| 170020001 | This ERP provider is not supported. | 更换支持的 `warehouseProviderCode` / ERP 服务商 |
| 170020002 | This mall is not authorized to the cooperative warehouse service provider. | 店铺未对该合作仓服务商授权,先在服务商侧完成授权 |
| 170020003 | The parameter is illegal, please check and try again. | 检查入参格式与必填字段 |
| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. | 履约单号不存在(本接口较少见,以 Partner 为准) |
| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. | `cwCustomerCode` 与服务商侧已授权客户编码不一致 |
<details> <summary>完整错误码列表(5 条,Partner 原文)</summary>
| 错误码 | 错误信息 |
|---|---|
| 170020001 | This ERP provider is not supported. |
| 170020002 | This mall is not authorized to the cooperative warehouse service provider. |
| 170020003 | The parameter is illegal, please check and try again. |
| 170020004 | This fulfillment order not exists, please check if the fulfillment number is correct. |
| 170020005 | This cooperative warehouse customer code is not match the authorized customer code. |
</details>
---
典型用法
1. bg.cooperativewarehouse.provider.list → 获取 warehouseProviderCode、permitsStatus
2. bg.cooperativewarehouse.token.authorization → 本接口:提交 cwAccessToken / cwCustomerCode 完成绑定
3. bg.cooperativewarehouse.fulfill.submit → 提交合作仓履约
4. bg.cooperativewarehouse.fulfill.query → 查询履约结果(待接入)---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_co_warehouse_cooperativewarehouse_token_authorization.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"cwAppKey": "YOUR_CW_APP_KEY",
"cwAccessToken": "YOUR_CW_ACCESS_TOKEN",
"cwCustomerCode": "YOUR_CW_CUSTOMER_CODE",
"warehouseProviderCode": "PROVIDER_CODE_FROM_LIST"
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.cooperativewarehouse.token.authorization",
"params": {
"request": {
"cwAccessToken": "YOUR_CW_ACCESS_TOKEN",
"cwCustomerCode": "YOUR_CW_CUSTOMER_CODE",
"warehouseProviderCode": "PROVIDER_CODE_FROM_LIST"
}
}
}'获取区域可用物流商 — bg.logistics.companies.get
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_self_fulfilled_logistics_companies_get.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.companies.get,业务载荷放在 Body 的 params |
Description: Obtain full logistics providers that support shipping at the corresponding region(获取指定区域下支持发货的全部物流服务商列表)。
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方request。建议使用 `tokenPurpose=order-shipping`。自发货确认物流、创建运单前,通常需先调用本接口取得logisticsServiceProviderId等。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
└── regionId ← 必填request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| regionId | INTEGER | 是 | Region ID(区域 ID)。完整编码表见 Partner 文档:regionId 编码说明。全球站常用示例:211(USA,与 linkfox-temu-order-global 订单接口一致)。 |
官方表将顶层 `request` 标为选填(False),但 `request.regionId` 为必填;实际调用时应始终传入 `request` 且包含 `regionId`,否则无法按区域筛选物流商。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"regionId": 211
}
}---
Response(Temu body 解析后)
response
├── success ← 请求级是否成功
├── errorCode
├── errorMsg
└── result[] ← 物流服务商列表(OBJECT 数组)
├── logisticsServiceProviderId
├── logisticsServiceProviderName
└── logisticsBrandName顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT[] | 该区域下支持发货的物流服务商列表;无数据时可能为空数组 [] |
result[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| logisticsServiceProviderId | INTEGER | logistics Service Provider Id(物流服务商 ID;后续发货/创建运单等接口常作为承运商标识入参) |
| logisticsServiceProviderName | STRING | logistics Service Provider Name(物流服务商名称) |
| logisticsBrandName | STRING | logistics Brand Name(物流品牌名称;Partner 原文描述为 “logistics Service Provider Name”,与 logisticsServiceProviderName 字段区分,以实际返回为准) |
调用成功时先判断 `response.success === true`,再遍历 `result` 选用logisticsServiceProviderId/logisticsServiceProviderName。errorCode/errorMsg非空或success === false时以错误信息为准。
---
示例
export LINKFOXAGENT_API_KEY="<key>"
# 专用脚本(全球站 regionId=211)
python scripts/global_self_fulfilled_logistics_companies_get.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"regionId": 211
}
}'# 通用代理(等价)
python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.logistics.companies.get",
"params": {
"request": {
"regionId": 211
}
}
}'---
典型用法
1. 从订单接口(如 bg.order.detail.v2.get)或业务上下文确认 `regionId`(全球站多为 211)。 2. 调用本接口获取该区域可用 `logisticsServiceProviderId` 列表。 3. 用户或后续脚本选择承运商后,再调用自发货相关创建运单 / 确认发货等接口(待接入)。
在线下单购标 — bg.logistics.shipment.create
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_buy_shipping_logistics_shipment_create.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.create,业务载荷放在 Body 的 params |
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 购标核心接口。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 request。建议使用 `tokenPurpose=order-shipping`。前置依赖:warehouseId来自 `bg.logistics.warehouse.list.get`;channelId/shipCompanyId/shipLogisticsType/signServiceId等来自 `bg.logistics.shippingservices.get` 或 `temu.logistics.shiplogisticstype.get`;parentOrderSn/orderSn/quantity来自 `linkfox-temu-order-global`。
异步说明: 部分场景下单为异步处理;若返回成功但无运单,请用 **`bg.logistics.shipment.result.get`** 按 `packageSnList` 查询结果(错误码 120012013)。---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
├── sendType ← 必填
├── sendRequestList[] ← 选填(Package List Information;实际购标须传)
│ ├── warehouseId
│ ├── weight / weightUnit / extendWeight / extendWeightUnit
│ ├── length / width / height / dimensionUnit
│ ├── shipCompanyId
│ ├── channelId ← 与 shipLogisticsType 二选一履约方式
│ ├── shipLogisticsType ← 与 channelId 二选一履约方式
│ ├── signServiceId
│ ├── pickupStartTime / pickupEndTime
│ ├── orderSendInfoList[]
│ │ ├── parentOrderSn
│ │ ├── orderSn
│ │ ├── goodsId
│ │ ├── skuId
│ │ └── quantity
│ ├── confirmAcceptance[]
│ ├── splitSubPackage
│ ├── sendSubRequestList[] ← splitSubPackage=true 时必填
│ │ └── (附属包裹:尺寸/重量/渠道/仓库等,结构见下)
│ ├── interlineShipCompanyList[] ← 联运/分段渠道时必填
│ │ ├── shipStageType
│ │ ├── shipLogisticsType
│ │ ├── shipCompanyId
│ │ └── channelId
│ ├── cooperativeWarehouseShipment
│ ├── uspsMailingDateOffset
│ └── autoConfirmAfterPickup
├── shipLater ← 选填
└── shipLaterLimitTime ← 选填(shipLater=true 时按订单标签传)request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sendType | INTEGER | 是 | SendType(发货方式),见下表 |
| sendRequestList | OBJECT[] | 否* | Package List Information(包裹列表信息;购标时须传至少一个包裹) |
| shipLater | BOOLEAN | 否 | Ship Later(是否稍后发货),见下表 |
| shipLaterLimitTime | STRING | 否 | 稍后发货截止时间(小时数,字符串形式),见下表 |
\ Partner Request 表将 `sendRequestList` 标为选填(False),但购标业务必须*传入有效包裹明细。
sendType
| 值 | 说明 |
|---|---|
0 | All the products in one parent order are shipped in one package with one tracking number(同一父订单全部商品,一个包裹、一个运单号) |
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(同一父订单部分商品拆多包裹;该父订单下所有待发商品须在一次调用中全部提交) |
2 | All the products in multiple parent orders are shipped in one package with one tracking number(多个父订单合并为一个包裹、一个运单号) |
shipLater
| 值 | 说明 |
|---|---|
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) |
false | Apply to create the package and tracking numbers online, ship the package immediately and mark as shipped(在线购标、创建运单并立即发货)。COD 订单不允许 shipLater=true(错误码 120011053) |
shipLaterLimitTime
| 订单标签 | 可选值(小时,字符串) |
|---|---|
无 Y2_advance_sale 标签 | 24, 48, 72, 96, 120 |
有 Y2_advance_sale 标签 | 144, 168, 192, 216, 240, 264, 288, 312, 336, 360 |
无效枚举将报错 120015532。与 `shipLater=true` 配合使用,表示稍后发货的截止时间。sendRequestList[] 元素字段
Partner Request 表中 sendRequestList 子行在导出 HTML 中为折叠状态;下列字段、类型与说明来自 Request 表(顶层)、Request Example、Response Example 关联字段及 Partner Error Code 表。| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| warehouseId | STRING | 是 | Warehouse ID(发货仓库 ID;来自 `bg.logistics.warehouse.list.get` 的 `warehouseId`) |
| weight | STRING | 是 | 包裹重量。美国本地:整数磅写在 `weight`,小数/盎司部分写在 `extendWeight`(单位 `oz`);须为整数时见错误码 120015521 |
| weightUnit | STRING | 是 | 重量单位。美国包裹:`lb`;其他国家:`kg` |
| extendWeight | STRING | 否 | 扩展重量(美国本地订单的小数/盎司部分) |
| extendWeightUnit | STRING | 否 | 扩展重量单位。美国本地:`oz` |
| length | STRING | 是 | 包裹长度,保留两位小数 |
| width | STRING | 是 | 包裹宽度,保留两位小数 |
| height | STRING | 是 | 包裹高度,保留两位小数 |
| dimensionUnit | STRING | 是 | 尺寸单位。美国:`in`;其他国家:`cm` |
| shipCompanyId | INTEGER / LONG | 是 | Shipping company ID(物流公司 ID;与 `bg.logistics.shippingservices.get` 返回的 `shipCompanyId` 一致) |
| channelId | INTEGER / LONG | 条件 | Channel ID(物流渠道 ID;与 `bg.logistics.shippingservices.get` 返回的 `channelId` 一致)。与 `shipLogisticsType` 二选一作为履约方式(错误码 120015032) |
| shipLogisticsType | STRING | 条件 | Ship logistics type(物流类型标识;来自 `temu.logistics.shiplogisticstype.get` 或查价返回)。选定后 Temu 可自动匹配推荐 `channelId`。与 `channelId` 二选一 |
| signServiceId | INTEGER | 否 | Signature service ID(签收/签名服务 ID;来自查价 `onlineChannelDtoList[].signServiceId`) |
| pickupStartTime | INTEGER | 条件 | Pickup window start time(预约上门揽收开始时间;需要预约揽收的渠道必填,见 `pickupRules` / `availablePickupTimeSlotList`) |
| pickupEndTime | INTEGER | 条件 | Pickup window end time(预约上门揽收结束时间;须晚于 `pickupStartTime`) |
| orderSendInfoList | OBJECT[] | 是 | Product list in this package(本包裹内要发货的商品行) |
| confirmAcceptance | STRING[] | 否 | Confirmation matters for this shipment(本批发货需确认的异常/预警事项),见下表 |
| splitSubPackage | BOOLEAN | 否 | 是否为单件 SKU 拆多包裹(true:单件 SKU 多包裹;false/不传:否)。为 true 时 `quantity` 须为 1(120011045),且须传 `sendSubRequestList` |
| sendSubRequestList | OBJECT[] | 条件 | Attached sub-packages for single-SKU multi-package scenario(单件 SKU 多包裹时的附属包裹列表;最多 10 个,120011044)。COD 订单不允许(120011051) |
| interlineShipCompanyList | OBJECT[] | 条件 | Interline / split-channel shipping legs(联运/分段渠道信息;使用分段渠道时必填,120011111) |
| cooperativeWarehouseShipment | BOOLEAN | 否 | Whether fulfillment uses cooperative warehouse mode(合作仓发货;部分渠道强制合作仓,120018085) |
| uspsMailingDateOffset | INTEGER | 条件 | USPS mailing date offset(USPS 邮寄日期偏移;部分 USPS 渠道禁止为 0,120018086) |
| autoConfirmAfterPickup | BOOLEAN | 否 | Auto-confirm shipment after pickup(揽收后自动确认发货) |
orderSendInfoList[] 元素字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| parentOrderSn | STRING | 是 | Parent Order Number(父订单号) |
| orderSn | STRING | 是 | Order Number(子订单号);每项不可缺失(120011113) |
| goodsId | LONG | 是 | Goods ID(商品 ID) |
| skuId | LONG | 是 | SKU ID |
| quantity | INTEGER | 是 | Quantity of the product(本行发货数量;splitSubPackage=true 时须为 1) |
confirmAcceptance[] 枚举值
| 值 | 说明 |
|---|---|
DENY_CANCELLATION | Reject the cancellation request and proceed with shipment(拒绝取消申请后继续发货;订单存在待处理取消时,120012030) |
DENY_ADDRESS_CHANGE | Reject the address change request and proceed(拒绝改地址申请后继续发货;120012023) |
DENY_PARENT_RISK_WARNING | Reject/acknowledge parent order risk warning and proceed(确认父订单风控预警后继续发货;120012031 / 120012061) |
SUCCESSFUL_RETRY | Confirm retry after a previous successful call(前次下 call 已成功后的再次请求确认) |
NO_DELIVERY_ON_SATURDAY | Confirm Saturday non-delivery is acceptable(确认允许周六不派送) |
仅当订单存在对应待处理事项且商家选择继续发货时传入。
sendSubRequestList[] 元素字段
单件 SKU 拆多包裹时,主包裹 + 附属包裹共同完成发货;附属包裹不含 orderSendInfoList(商品行在主包裹 `sendRequestList` 元素上)。| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| warehouseId | STRING | 是 | Warehouse ID(附属包裹发货仓库) |
| weight | STRING | 是 | 包裹重量 |
| weightUnit | STRING | 是 | 重量单位(美国 `lb`) |
| extendWeight | STRING | 否 | 扩展重量 |
| extendWeightUnit | STRING | 否 | 扩展重量单位(美国 `oz`) |
| length | STRING | 是 | 包裹长度 |
| width | STRING | 是 | 包裹宽度 |
| height | STRING | 是 | 包裹高度 |
| dimensionUnit | STRING | 是 | 尺寸单位(美国 `in`) |
| shipCompanyId | INTEGER / LONG | 是 | Shipping company ID |
| channelId | INTEGER / LONG | 是 | Channel ID |
| shipLogisticsType | STRING | 否 | Ship logistics type(若渠道按类型履约) |
| signServiceId | INTEGER | 否 | Signature service ID |
| pickupStartTime | INTEGER | 条件 | Pickup start time |
| pickupEndTime | INTEGER | 条件 | Pickup end time |
| interlineShipCompanyList | OBJECT[] | 条件 | Interline legs(结构同主包裹) |
| confirmAcceptance | STRING[] | 否 | Confirmation matters |
interlineShipCompanyList[] 元素字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| shipStageType | STRING | 是 | Shipping stage type(运输段类型,如首程/末程;与 `bg.logistics.shippingservices.get` 的 `interlineChannelInfoList[].shipStageType` 一致) |
| shipLogisticsType | STRING | 是 | Logistics type for this stage(该段物流类型标识) |
| shipCompanyId | INTEGER / LONG | 是 | Shipping company ID for this stage |
| channelId | INTEGER / LONG | 是 | Channel ID for this stage |
网关 params 写法(sendType=0 单包裹购标示例)
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"sendType": 0,
"shipLater": false,
"sendRequestList": [
{
"warehouseId": "WH-001",
"length": "12.00",
"width": "8.00",
"height": "4.00",
"dimensionUnit": "in",
"weight": "2",
"weightUnit": "lb",
"extendWeight": "8",
"extendWeightUnit": "oz",
"shipCompanyId": 314439762,
"channelId": 19409681780736,
"orderSendInfoList": [
{
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1",
"goodsId": 6017592186252451,
"skuId": 281474976920151,
"quantity": 1
}
]
}
]
}
}{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"sendType": 0,
"shipLater": true,
"shipLaterLimitTime": "48",
"sendRequestList": [
{
"warehouseId": "WH-001",
"shipLogisticsType": "USPS_GROUND_ADVANTAGE",
"length": "12.00",
"width": "8.00",
"height": "4.00",
"dimensionUnit": "in",
"weight": "2",
"weightUnit": "lb",
"shipCompanyId": 314439762,
"signServiceId": 1001,
"pickupStartTime": 1717200000,
"pickupEndTime": 1717203600,
"orderSendInfoList": [
{
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1",
"goodsId": 6017592186252451,
"skuId": 281474976920151,
"quantity": 1
}
],
"confirmAcceptance": ["DENY_CANCELLATION"]
}
]
}
}---
Response(Temu body 解析后)
response
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── packageSnList[] (STRING[])
├── warningMessage[] (STRING[])
└── shipLaterLimitTime (STRING)顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | result(业务结果对象) |
result 内字段
Partner Response 表中 result 子行在导出 HTML 中为折叠状态;下列字段来自 Response Example 与购标后续流程约定。| 参数 | 类型 | 说明 |
|---|---|---|
| packageSnList | STRING[] | Package SN list(本次下单创建的包裹号列表;用于 `bg.logistics.shipment.result.get` 查询下单结果、`bg.logistics.shipment.document.get` 拉取面单) |
| warningMessage | STRING[] | Warning messages(警告信息列表;非阻塞提示,购标仍可能成功) |
| shipLaterLimitTime | STRING | Ship-later limit time returned when applicable(若请求 `shipLater=true`,可能返回确认的稍后发货截止时间/小时配置) |
调用成功时先判断 `response.success === true`,再使用 `result.packageSnList` 走结果查询与面单下载。若 `warningMessage` 非空,建议记录并人工确认是否影响发货。
---
常见业务错误码(Partner Error Code)
| 错误码 | 错误信息(原文摘要) | 处理建议 |
|---|---|---|
| 120012013 | Already requested by Temu integrated logistics; check via result.get | 调用 `bg.logistics.shipment.result.get` 确认是否已成功 |
| 120015032 | Choose channelId or shipLogisticsType | 二选一履约,勿同时乱填 |
| 120011111 | Split channel requires interlineShipCompanyList | 补全联运分段渠道 |
| 120011110 | No eligible channelId | 核对渠道参数或重新 shippingservices.get |
| 120011112 | Missing shipCompanyId | 补全物流公司 ID |
| 120011113 | orderSendInfoList missing orderSn | 每项商品行须有 orderSn |
| 120013002 | Item quantity does not match | 核对 quantity 与订单待发数量 |
| 120012015 | Combined delivery: addresses differ | 合并发货时地址须一致 |
| 120015032 | channelId or shipLogisticsType | 见上 |
| 120011053 | COD: shipLater must be FALSE | COD 勿稍后发货 |
| 120011051 | COD: no sub-packages | COD 勿拆子包裹 |
| 120011057 / 120018028 | COD vs PPD cannot mix in one request | 勿混 COD 与预付订单 |
| 120012037 | Before earliestTimeBuyShippingLabel | 未到可购标时间 |
| 120015534 | Y2_advance_sale: shipLater=true required | 预售标签订单须稍后发货 |
| 120015532 | shipLaterLimitTime invalid | 按订单标签选合法小时数 |
| 120015533 | Y2_advance_sale cannot mix with normal orders | 勿混预售与普通订单 |
| 120011043 | Missing sendSubRequestList | splitSubPackage 场景补子包裹 |
| 120011044 | Max 10 attached packages | 子包裹 ≤ 10 |
| 120011045 | splitSubPackage: quantity must be 1 | 拆包场景数量为 1 |
| 120018084 | Cooperative warehouse: no split sub package | 合作仓不支持拆子包裹 |
| 120018086 | USPSMailingDateOffset cannot be 0 | 调整 USPS 偏移 |
| 120019009 / 120019019 | Invalid pickup time | 按 pickupRules 重选时段 |
| 120015507 | Wrong package information | 检查重量尺寸单位 |
| 120015521 | Weight should be integer (US) | 美国 weight 用整数磅 |
| 120011006 | warehouseId invalid | 用 warehouse.list.get 有效 ID |
| 120012007 / 120012016 | parentOrder/order invalid | 核对父子订单 |
| 120015528 | COD orders: Temu Label only | COD 仅 Temu 面单 |
| 120018063 | Funds reserved; Buy shipping disabled | 账户资金受限 |
| 120012061 / 120012031 | Risk control alert on parent order | 评估是否继续发货 |
完整错误码以 Partner 文档 Error Code 表为准(导出 HTML 含 70+ 条)。
---
典型用法
1. bg.logistics.warehouse.list.get → warehouseId
2. linkfox-temu-order-global → parentOrderSn、orderSn、quantity、earliestTimeBuyShippingLabel
3. bg.logistics.shippingservices.get → channelId / shipCompanyId / signServiceId / pickup 时段
(或 temu.logistics.shiplogisticstype.get → shipLogisticsType)
4. bg.logistics.shipment.create → packageSnList(本接口)
5. [bg.logistics.shipment.result.get](./bg-logistics-shipment-result-get.md) → 确认异步下单结果
6. [bg.logistics.shipment.document.get](./bg-logistics-shipment-document-get.md) → 面单 URL
7. [bg.order.unshipped.package.get](./bg-order-unshipped-package-get.md) → 未发货包裹列表
7. bg.logistics.shipped.package.confirm → 确认已发货(待接入)---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_buy_shipping_logistics_shipment_create.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"sendType": 0,
"shipLater": false,
"sendRequestList": [
{
"warehouseId": "WH-001",
"length": "12.00",
"width": "8.00",
"height": "4.00",
"dimensionUnit": "in",
"weight": "2",
"weightUnit": "lb",
"shipCompanyId": 314439762,
"channelId": 19409681780736,
"orderSendInfoList": [
{
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1",
"goodsId": 6017592186252451,
"skuId": 281474976920151,
"quantity": 1
}
]
}
]
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.logistics.shipment.create",
"params": {
"request": {
"sendType": 0,
"shipLater": false,
"sendRequestList": [
{
"warehouseId": "WH-001",
"length": "12.00",
"width": "8.00",
"height": "4.00",
"dimensionUnit": "in",
"weight": "2",
"weightUnit": "lb",
"shipCompanyId": 314439762,
"channelId": 19409681780736,
"orderSendInfoList": [
{
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1",
"quantity": 1
}
]
}
]
}
}
}'获取面单/运单文档 — bg.logistics.shipment.document.get
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_buy_shipping_logistics_shipment_document_get.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.document.get,业务载荷放在 Body 的 params |
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.
(卖家获取已通过 Temu 集成物流渠道 成功履约包裹的快递面单/运单文档 URL,用于打印面单、包裹出库。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 `request`。建议使用 `tokenPurpose=order-shipping`。
前置依赖:
- `packageSnList` 来自 `bg.logistics.shipment.create` 或 `bg.logistics.shipment.result.get`(购标成功 `shippingLabelStatus=1`)。
- 须在订单 `earliestTimeGetShippingDocument` 之后调用(错误码 120012038)。
返回的 `url` 若为加签链接,可用本 skill 的 `temu_global_file_download.py`(POST /temu/fileDownload)下载 PDF/PNG 文件。---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
├── documentType (STRING, 选填)
└── packageSnList[] (STRING[], 选填)request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| documentType | STRING | 否 | Document Type(面单文档类型),见下表 |
| packageSnList | STRING[] | 否 | Package List that needs to get the shipping label(需要获取面单的包裹号列表) |
documentType
| 值 | 说明 |
|---|---|
SHIPPING_LABEL_PDF | The document URL will return the shipping label in PDF format for all the carriers you choose(返回 PDF 格式面单;推荐使用) |
SHIPPING_LABEL_PNG | The document URL will return the shipping label in PNG format for all the carriers you choose(返回 PNG 格式面单) |
| 不传 | The document URL will return the shipping label in PDF format or PNG format based on which carrier you choose(按承运商默认返回 PDF 或 PNG) |
官方 Request 表将 `request`、`documentType`、`packageSnList` 均标为选填(False);实际调用须传入有效 `packageSnList`(错误码 120018027)。Partner Request Example CURL 将字段写在顶层,经 LinkFox 网关时建议放在 `params.request` 下。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"documentType": "SHIPPING_LABEL_PDF",
"packageSnList": ["PKG-001", "PKG-002"]
}
}{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"packageSnList": ["PKG-001"]
}
}---
Response(Temu body 解析后)
Partner Response 表顶层为 `response` 对象;网关解析后通常直接见到 success / errorCode / errorMsg / result。`result` 在导出 HTML 中为折叠状态,下列子层级按 Response 表 + Response Example 全部展开。
response
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── shippingLabelUrlList[] (OBJECT[])
│ ├── packageSn
│ ├── documentType
│ └── url
└── warningMessage[] (STRING[])顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | result(业务结果对象) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| shippingLabelUrlList | OBJECT[] | 面单文档 URL 列表(每个元素对应一个 `packageSn` 的可打印面单链接) |
| warningMessage | STRING[] | Warning messages(警告信息列表;部分包裹成功、部分有提示时可能出现,见 Response Example) |
shippingLabelUrlList[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| packageSn | STRING | Package SN(包裹号;与请求 `packageSnList` 中项对应) |
| documentType | STRING | Document type actually returned(实际返回的文档类型,如 `SHIPPING_LABEL_PDF` / `SHIPPING_LABEL_PNG`) |
| url | STRING | Document download URL(面单/运单文档下载地址;用于打印或经 `temu_global_file_download.py` 拉取文件) |
warningMessage[] 元素
| 参数 | 类型 | 说明 |
|---|---|---|
| (元素) | STRING | 单条警告文案(Partner 未在 Response 表展开子字段;示例为字符串数组) |
调用成功时先判断 `response.success === true`,再遍历 `result.shippingLabelUrlList` 取 `url` 打印或下载。若 `warningMessage` 非空,须阅读警告内容(可能部分包裹未返回 URL 或需额外操作)。
---
常见业务错误码(Partner Error Code)
| 错误码 | 错误信息(原文) | 处理建议 |
|---|---|---|
| 120018027 | The packageSn is invalid. Please check the request area or if the packageSn is nonexistent etc. | 核对 `packageSn` 与站点 |
| 120012038 | Order can only get shipping document after the "earliestTimeGetShippingDocument". | 等待订单到达可获取面单时间后再调 |
| 120018075 | The package {*} only supports shipping from cooperative warehouses and restricts the printing of shippingLabel | 合作仓包裹限制打印面单 |
| 120011030 | Cooperative warehouse order fulfillment restricted. | 合作仓履约受限 |
| 120018010 | The packages {*} have been canceled. Please fulfill again by Temu non-integrated logistics or Temu integrated logistics. | 包裹已取消,需重新履约 |
---
典型用法
1. bg.logistics.shipment.create → packageSnList
2. bg.logistics.shipment.result.get → shippingLabelStatus=1,确认可打印时间
3. bg.logistics.shipment.document.get → shippingLabelUrlList[].url
4. temu_global_file_download.py(可选) → 下载加签 PDF/PNG
5. 打印面单 / 出库---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_buy_shipping_logistics_shipment_document_get.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"documentType": "SHIPPING_LABEL_PDF",
"packageSnList": ["PKG-001", "PKG-002"]
}
}'# 下载面单(若 url 需网关加签下载)
python scripts/temu_global_file_download.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"url": "<shippingLabelUrlList[].url>"
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.logistics.shipment.document.get",
"params": {
"request": {
"packageSnList": ["PKG-001"]
}
}
}'查询购标/在线下单结果 — bg.logistics.shipment.result.get
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_buy_shipping_logistics_shipment_result_get.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.result.get,业务载荷放在 Body 的 params |
Description: The bg.logistics.shipment.result.get interface is for sellers to query the result of placing online logistics orders, with the shipping label status including in-progress{0}, successful{1}, and failed{2}.
(卖家查询在线物流下单/购标结果;`shippingLabelStatus` 表示面单状态:0=进行中、1=成功、2=失败。)
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 `request`。建议使用 `tokenPurpose=order-shipping`。
前置依赖: `packageSnList` 中的包裹号通常来自 `bg.logistics.shipment.create` 或订单/包裹相关接口返回的 `packageSn`。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
└── packageSnList[] (STRING[], 选填)request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| packageSnList | STRING[] | 否 | Package number list(包裹号列表;传入一个或多个 `packageSn` 批量查询购标/在线下单结果) |
官方 Request 表将 `request` 与 `packageSnList` 均标为选填(False);实际查询须传入有效 `packageSn`(错误码 120018027)。Partner Request Example CURL 将 `packageSnList` 写在顶层,经 LinkFox 网关时建议放在 `params.request.packageSnList`(与 Partner Request 表一致)。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"packageSnList": ["PKG-001", "PKG-002"]
}
}---
Response(Temu body 解析后)
Partner Response 表顶层为 `response` 对象;网关解析后通常直接见到 success / errorCode / errorMsg / result。`result` 在导出 HTML 中为折叠状态,下列子层级按 Response 表 + Response Example 全部展开。
response(或解析后的根对象)
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
└── packageInfoResultList[] (OBJECT[])
├── packageSn
├── shippingLabelStatus
├── failReasonText
├── trackingNumber
├── channelId
├── shipLogisticsType
├── shipCompanyId
├── shippingCompanyName
├── warehouseId
├── warehouseName
├── mainPackageSn
├── subPackageSnList[]
├── subPackageType
├── cwFulfillNo
├── reservationSn
├── estimatedText
├── estimatedAmount
├── estimatedCurrencyCode
├── solutionText
├── packageDeliveryType
├── dimensionUnit
├── length
├── width
├── height
├── weight
├── weightUnit
├── extendWeight
├── extendWeightUnit
├── pickupStartTime
├── pickupEndTime
├── shipLabelPrintableTime
├── isConfirmAfterPickup
├── canChangeToManualSend
├── signServiceId
├── uspsMailingDateOffset
├── warningMessage[]
├── interlineShipCompanyList[] (OBJECT[])
│ ├── shipLogisticsType
│ ├── shipStageType
│ ├── shippingCompanyName
│ ├── channelId
│ └── shipCompanyId
├── shippingInfoList[] (OBJECT[])
│ ├── shipLogisticsType
│ ├── shipStageType
│ ├── shippingCompanyName
│ ├── trackingNumber
│ └── shipCompanyId
└── orderSendInfoList[] (OBJECT[])
├── semiUniqueId
├── quantity
├── orderSn
├── parentOrderSn
├── goodsId
├── mallId
└── skuId顶层字段(response 内,或根级)
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | result(业务结果对象) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| packageInfoResultList | OBJECT[] | 按 `packageSnList` 查询得到的包裹购标/在线下单结果列表(与请求包裹号一一对应或按平台规则返回) |
packageInfoResultList[] 元素字段
Partner Response 表中 `result` 子行在导出 HTML 中为折叠状态;下列字段与类型来自 Response Example,说明结合接口 Description 与 Buy-Shipping 流程整理。若 Partner 在线文档 Expand 后有更完整枚举,以在线表为准。
| 参数 | 类型 | 说明 |
|---|---|---|
| packageSn | STRING | Package number(包裹号;与请求 `packageSnList` 元素对应) |
| shippingLabelStatus | INTEGER | Shipping label status(物流面单/购标状态):0=in-progress(进行中),1=successful(成功),2=failed(失败) |
| failReasonText | STRING | Failure reason text(购标/下单失败原因文案;`shippingLabelStatus=2` 时关注) |
| trackingNumber | STRING | Tracking number(运单号/追踪号;成功后可用于物流跟踪) |
| channelId | INTEGER | Channel ID(物流渠道 ID;与 `bg.logistics.shippingservices.get` / `bg.logistics.shipment.create` 一致) |
| shipLogisticsType | STRING | Ship logistics type(发货物流类型编码) |
| shipCompanyId | INTEGER | Ship company ID(物流公司/承运商 ID) |
| shippingCompanyName | STRING | Shipping company name(物流公司/承运商名称) |
| warehouseId | STRING | Warehouse ID(发货仓库 ID) |
| warehouseName | STRING | Warehouse name(发货仓库名称) |
| mainPackageSn | STRING | Main package number(主包裹号;拆分子包裹场景下的主单号) |
| subPackageSnList | STRING[] | Sub package number list(子包裹号列表) |
| subPackageType | STRING | Sub package type(子包裹类型) |
| cwFulfillNo | STRING | Cooperative warehouse fulfill number(合作仓履约单号/履约编号) |
| reservationSn | STRING | Reservation SN(预约/预留单号,如取件预约相关) |
| estimatedText | STRING | Estimated delivery time text(预计送达/时效展示文案) |
| estimatedAmount | STRING | Estimated shipping amount(预估运费金额,字符串形式保留精度) |
| estimatedCurrencyCode | STRING | Currency code for estimatedAmount(预估运费币种代码) |
| solutionText | STRING | Solution / service description text(方案或服务说明文案) |
| packageDeliveryType | INTEGER | Package delivery type(包裹配送类型;具体枚举以 Partner 文档为准) |
| dimensionUnit | STRING | Dimension unit(长宽高单位,如 `in` / `cm`) |
| length | STRING | Package length(包裹长度,通常保留两位小数) |
| width | STRING | Package width(包裹宽度) |
| height | STRING | Package height(包裹高度) |
| weight | STRING | Package weight(包裹重量) |
| weightUnit | STRING | Weight unit(重量单位,如 `lb` / `kg`) |
| extendWeight | STRING | Extended weight portion(扩展重量,如美国本地订单盎司部分) |
| extendWeightUnit | STRING | Extended weight unit(扩展重量单位,如 `oz`) |
| pickupStartTime | INTEGER | Pickup window start time(取件窗口开始时间,Unix 秒级时间戳) |
| pickupEndTime | INTEGER | Pickup window end time(取件窗口结束时间,Unix 秒级时间戳) |
| shipLabelPrintableTime | INTEGER | Ship label printable time(面单可打印时间,Unix 秒级时间戳;`shippingLabelStatus=1` 后用于 `bg.logistics.shipment.document.get` 等) |
| isConfirmAfterPickup | BOOLEAN | Whether shipment is confirmed after pickup(是否在取件后确认发货) |
| canChangeToManualSend | BOOLEAN | Whether seller can switch to manual send(是否允许改为卖家自发货/手动发货) |
| signServiceId | INTEGER | Signature service ID(签名/签收服务 ID) |
| uspsMailingDateOffset | INTEGER | USPS mailing date offset(USPS 邮寄日期偏移量,USPS 渠道相关) |
| warningMessage | STRING[] | Warning messages(警告信息列表,非致命提示) |
| interlineShipCompanyList | OBJECT[] | Interline shipping company list(联运/分段物流承运商列表) |
| shippingInfoList | OBJECT[] | Shipping info list by stage(分段物流信息列表,含各段运单号) |
| orderSendInfoList | OBJECT[] | Orders included in this package(本包裹关联的订单发货信息列表) |
interlineShipCompanyList[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| shipLogisticsType | STRING | Ship logistics type(该段物流类型编码) |
| shipStageType | STRING | Ship stage type(运输阶段类型,如干线/末端等;枚举以 Partner 为准) |
| shippingCompanyName | STRING | Shipping company name(该段承运商名称) |
| channelId | INTEGER | Channel ID(该段渠道 ID) |
| shipCompanyId | INTEGER | Ship company ID(该段物流公司 ID) |
shippingInfoList[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| shipLogisticsType | STRING | Ship logistics type(该段物流类型编码) |
| shipStageType | STRING | Ship stage type(运输阶段类型) |
| shippingCompanyName | STRING | Shipping company name(该段承运商名称) |
| trackingNumber | STRING | Tracking number(该段运单号) |
| shipCompanyId | INTEGER | Ship company ID(该段物流公司 ID) |
orderSendInfoList[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| semiUniqueId | STRING | Semi-managed unique identifier(半托管业务侧唯一标识) |
| quantity | INTEGER | Quantity of the product(本行商品发货数量) |
| orderSn | STRING | Order number(子订单号) |
| parentOrderSn | STRING | Parent order number(父订单号) |
| goodsId | LONG | Goods ID(商品 ID) |
| mallId | LONG | Mall ID(店铺/商城 ID) |
| skuId | LONG | SKU ID(SKU ID) |
调用成功时先判断 `success === true`,再按 `packageSn` 在 `result.packageInfoResultList` 中查看 `shippingLabelStatus`:1 表示购标成功,可继续取面单;0 可轮询本接口;2 查看 `failReasonText`。
---
Error Code(Partner 摘录)
| Error Code | Error Message |
|---|---|
| 120018027 | The packageSn is invalid. Please check the request area or if the packageSn is nonexistent etc. |
---
典型用法
1. bg.logistics.shippingservices.get → 选渠道
2. [bg.logistics.shipment.create](./bg-logistics-shipment-create.md) → 购标,获得 packageSnList
3. bg.logistics.shipment.result.get → 本接口:轮询购标结果 / shippingLabelStatus
4. bg.logistics.shipment.document.get → 下载面单(待接入)---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_buy_shipping_logistics_shipment_result_get.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"packageSnList": ["PKG-001"]
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.logistics.shipment.result.get",
"params": {
"request": {
"packageSnList": ["PKG-001", "PKG-002"]
}
}
}'更新物流跟踪号 / 发货方式 — bg.logistics.shipment.shippingtype.update
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_self_fulfilled_logistics_shipment_shippingtype_update.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.shippingtype.update,业务载荷放在 Body 的 params |
Description: The bg.logistics.shipment.shippingtype.update interface is used by sellers to update logistics tracking numbers, supporting the following scenarios(卖家更新物流跟踪号,支持以下场景):
1. Non-integrated logistics updating logistics tracking numbers — 非集成物流更新物流跟踪号 2. Temu-integrated logistics has been changed to non-integrated logistics — Temu 集成物流已改为非集成物流
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 request。建议使用 `tokenPurpose=order-shipping`。- packageSn 通常来自 `bg.logistics.shipment.v2.get` 或 `bg.logistics.shipment.get`- shipCompanyId 与 bg-logistics-companies-get.md 返回的 `logisticsServiceProviderId` 相同- selfShippingWarehouseId 来自 `linkfox-temu-fulfillment-global` 的 `bg.logistics.warehouse.list.get`---
Request 结构(官方业务参数)
params
└── request (OBJECT, 选填)
└── editPackageRequestList[] (OBJECT[], 否)
├── packageSn (STRING, 是)
├── trackingNumber (STRING, 是)
├── shipCompanyId (LONG, 是)
└── selfShippingWarehouseId (STRING, 是)request
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| editPackageRequestList | OBJECT[] | 否 | edit package request list(编辑包裹请求列表) |
editPackageRequestList[]
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| packageSn | STRING | 是 | package number(包裹号) |
| trackingNumber | STRING | 是 | tracking number(物流跟踪号) |
| shipCompanyId | LONG | 是 | It's the same ID with the `logisticsServiceProviderId` you got from `bg.logistics.companies.get`(与 bg.logistics.companies.get 返回的 logisticsServiceProviderId 相同) |
| selfShippingWarehouseId | STRING | 是 | The shipment warehouse ID(发货仓库 ID),可从 `linkfox-temu-fulfillment-global` 的 `bg.logistics.warehouse.list.get` 获取 |
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"editPackageRequestList": [
{
"packageSn": "PKG-123456789",
"trackingNumber": "1Z999AA10123456784",
"shipCompanyId": 123456789,
"selfShippingWarehouseId": "WH-001"
}
]
}
}---
Response(Temu body 解析后)
response
├── success
├── errorCode
├── errorMsg
└── result (BOOLEAN)response 顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success |
| errorCode | INTEGER | error code |
| errorMsg | STRING | error message |
| result | BOOLEAN | 业务结果(Partner 文档类型为 BOOLEAN;具体语义以 Temu 返回为准) |
---
示例
python scripts/global_self_fulfilled_logistics_shipment_shippingtype_update.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"editPackageRequestList": [
{
"packageSn": "PKG-123456789",
"trackingNumber": "1Z999AA10123456784",
"shipCompanyId": 123456789,
"selfShippingWarehouseId": "WH-001"
}
]
}
}'典型流程:已发货包裹需更正跟踪号,或 Temu 集成物流改为非集成物流 → bg.logistics.companies.get 取 shipCompanyId → 本接口批量更新 editPackageRequestList → 可用 bg.logistics.shipment.v2.get 核对。
确认子包裹发货 — bg.logistics.shipment.sub.confirm
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_self_fulfilled_logistics_shipment_sub_confirm.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.sub.confirm,业务载荷放在 Body 的 params |
Description: The bg.logistics.shipment.sub.confirm interface should only be used in scenarios where the smallest sku needs to be shipped as split packages, and can append the sub-parcel information to the main parcel(仅在最小 SKU 需拆分为多个包裹发货时使用;向主包裹追加子包裹信息)。
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 request。建议使用 `tokenPurpose=order-shipping`。-mainPackageSn来自 `bg.logistics.shipment.get`(待接入时可先用temu_global_proxy.py)
-selfShippingWarehouseId来自 `linkfox-temu-fulfillment-global` 的 `bg.logistics.warehouse.list.get`(warehouseId)
- carrierId 可与 bg-logistics-companies-get.md 返回的物流商 ID 对应---
Request 结构(官方业务参数)
params
└── request (OBJECT, 选填)
├── mainPackageSn (STRING, 是)
└── sendSubRequestList[] (OBJECT[], 否)
├── carrierId (LONG, 是)
├── trackingNumber (STRING, 是)
└── selfShippingWarehouseId (STRING, 是)request
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mainPackageSn | STRING | 是 | Package number that you already shipped(已发货的主包裹号)。可从 `bg.logistics.shipment.get` 获取 |
| sendSubRequestList | OBJECT[] | 否 | Send Sub Package Info(子包裹发货信息列表) |
sendSubRequestList[]
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| carrierId | LONG | 是 | Carrier ID(承运商 ID) |
| trackingNumber | STRING | 是 | Tracking Number(物流跟踪号) |
| selfShippingWarehouseId | STRING | 是 | The shipment warehouse ID(发货仓库 ID),可从 `linkfox-temu-fulfillment-global` 的 `bg.logistics.warehouse.list.get` 返回的 `warehouseId` 获取 |
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"mainPackageSn": "PKG-MAIN-123456789",
"sendSubRequestList": [
{
"carrierId": 123456789,
"trackingNumber": "1Z999AA10123456784",
"selfShippingWarehouseId": "WH-001"
}
]
}
}---
Response(Temu body 解析后)
response
├── success
├── errorCode
├── errorMsg
└── result (BOOLEAN)response 顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success |
| errorCode | INTEGER | error code |
| errorMsg | STRING | error message |
| result | BOOLEAN | 业务结果(Partner 文档类型为 BOOLEAN;具体语义以 Temu 返回为准) |
---
示例
python scripts/global_self_fulfilled_logistics_shipment_sub_confirm.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"mainPackageSn": "PKG-MAIN-123456789",
"sendSubRequestList": [
{
"carrierId": 123456789,
"trackingNumber": "1Z999AA10123456784",
"selfShippingWarehouseId": "WH-001"
}
]
}
}'典型流程:主包裹已发货并取得 mainPackageSn(bg.logistics.shipment.get)→ 同一最小 SKU 需拆分子包裹时 → 本接口追加 sendSubRequestList 子包裹物流信息。
确认发货 V2 — bg.logistics.shipment.v2.confirm
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_self_fulfilled_logistics_shipment_v2_confirm.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.v2.confirm,业务载荷放在 Body 的 params |
Description: The bg.logistics.shipment.v2.confirm interface is designed to synchronize and return order fulfillment information through this interface. Switch the order status from pending shipment to shipped(同步并回传订单履约/发货信息,将订单状态从待发货切换为已发货)。
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 request。建议使用 `tokenPurpose=order-shipping`。前置依赖:carrierId与bg.logistics.companies.get返回的 `logisticsServiceProviderId` 相同;selfShippingWarehouseId来自 `linkfox-temu-fulfillment-global` 的 `bg.logistics.warehouse.list.get`(warehouseId)。订单号来自 `linkfox-temu-order-global`(如bg.order.detail.v2.get)。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
├── sendType ← 必填
└── sendRequestList[] ← 必填(Shipment package details)
├── carrierId ← 必填
├── trackingNumber ← 必填
├── selfShippingWarehouseId ← 必填
├── orderSendInfoList[] ← 必填(本包裹内商品行)
│ ├── parentOrderSn ← 必填
│ ├── orderSn ← 必填
│ ├── goodsId ← 选填
│ ├── skuId ← 选填
│ └── quantity ← 必填
├── confirmAcceptance[] ← 选填
└── subSendRequests[] ← 选填(子包裹/子运单)
├── carrierId ← 必填(当使用 subSendRequests 时)
├── trackingNumber ← 必填
└── selfShippingWarehouseId ← 必填request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sendType | INTEGER | 是 | SendType(发货方式),见下表 |
| sendRequestList | OBJECT[] | 是 | Shipment package details(发货包裹明细列表);每个元素描述一个包裹及其运单、仓库、商品行 |
sendType
| 值 | 说明 |
|---|---|
0 | 同一 父订单 内全部商品,一个包裹、一个运单号 发货 |
1 | 同一 父订单 内部分商品分多个包裹、多个运单号发货;该父订单下所有待发商品须在一次 API 调用中全部提交(不可拆成多次 confirm 漏发) |
2 | 多个父订单 的商品合并为 一个包裹、一个运单号 发货 |
sendRequestList[] 元素字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| carrierId | LONG | 是 | Carrier ID(承运商 ID),与 `bg.logistics.companies.get` 返回的 `logisticsServiceProviderId` 相同 |
| trackingNumber | STRING | 是 | Tracking Number(物流运单号 / 跟踪号) |
| selfShippingWarehouseId | STRING | 是 | The shipment warehouse ID(自发货仓库 ID),通过 `linkfox-temu-fulfillment-global` 的 `bg.logistics.warehouse.list.get` 返回的 `warehouseId` 获取 |
| orderSendInfoList | OBJECT[] | 是 | Product List in this package(本包裹内要发货的商品行列表) |
| confirmAcceptance | STRING[] | 否 | Confirmation matters for this shipment(本批发货需确认的异常/预警事项),见下表 |
| subSendRequests | OBJECT[] | 否 | Sub Send Requests(子发货请求;用于一单多包裹等场景下的子运单明细) |
orderSendInfoList[] 元素字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| parentOrderSn | STRING | 是 | Parent Order Number(父订单号) |
| orderSn | STRING | 是 | Order Number(子订单号 / 订单号) |
| goodsId | LONG | 否 | Goods ID(商品 ID) |
| skuId | LONG | 否 | SKU ID |
| quantity | INTEGER | 是 | Quantity of the product(本行发货数量) |
confirmAcceptance[] 枚举值
| 值 | 说明 |
|---|---|
DENY_CANCELLATION | Reject the cancellation request for this order(拒绝该订单的取消申请后继续发货) |
DENY_ADDRESS_CHANGE | Reject the address change request for this order(拒绝该订单的改地址申请后继续发货) |
DENY_PARENT_RISK_WARNING | Reject the risk warning for this order(拒绝/确认父订单风险预警后继续发货) |
仅当订单存在对应待处理事项且商家选择「拒绝申请并继续发货」等场景时传入;无此类事项可省略。
subSendRequests[] 元素字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| carrierId | LONG | 是 | Logistics Company ID(子包裹承运商 ID) |
| trackingNumber | STRING | 是 | Waybill Number(子包裹运单号) |
| selfShippingWarehouseId | STRING | 是 | Self-Delivery Warehouse ID(子包裹自发货仓库 ID) |
使用 `subSendRequests` 时,父级 `sendRequestList` 元素仍须填写 `orderSendInfoList` 等;子项用于补充额外运单/仓库组合,具体与 `sendType=1` 等多包裹场景配合,以 Partner 文档与订单详情约束为准。
网关 params 写法(sendType=0 单包裹示例)
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"sendType": 0,
"sendRequestList": [
{
"carrierId": 123456789,
"trackingNumber": "1Z999AA10123456784",
"selfShippingWarehouseId": "WH-001",
"orderSendInfoList": [
{
"parentOrderSn": "PO-xxx",
"orderSn": "O-xxx",
"goodsId": 987654321,
"skuId": 111222333,
"quantity": 1
}
]
}
]
}
}{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"sendType": 1,
"sendRequestList": [
{
"carrierId": 123456789,
"trackingNumber": "TRACK-A",
"selfShippingWarehouseId": "WH-001",
"orderSendInfoList": [
{
"parentOrderSn": "PO-xxx",
"orderSn": "O-xxx-a",
"quantity": 1
}
],
"confirmAcceptance": ["DENY_CANCELLATION"],
"subSendRequests": [
{
"carrierId": 123456789,
"trackingNumber": "TRACK-B",
"selfShippingWarehouseId": "WH-001"
}
]
}
]
}
}官方表将顶层 `request` 标为选填(False),但 `sendType`、`sendRequestList` 及其子字段多为必填;实际调用时应传入完整 `request` 对象。
---
Response(Temu body 解析后)
response
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
├── assistantAgreementText
└── warningMessage[]顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | result(业务结果对象) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| assistantAgreementText | STRING | Enables intelligent trajectory assistant to detect and correct potential mistakes in carrier entries(智能轨迹助手相关提示文案,用于检测并纠正承运商录入错误) |
| warningMessage | STRING[] | Provides relevant prompts related to the current shipping request(与本次发货请求相关的提示/警告信息列表) |
调用成功时先判断 `response.success === true`,再查看 `result.warningMessage` 是否有需向用户展示的警告;发货是否最终在平台侧生效,建议再调 `linkfox-temu-order-global` 的 bg.order.detail.v2.get 核对订单状态。---
典型流程
1. linkfox-temu-order-global → 待发货订单 / 订单详情(parentOrderSn、orderSn、数量)
2. bg.logistics.companies.get → carrierId(= logisticsServiceProviderId)
3. linkfox-temu-fulfillment-global → bg.logistics.warehouse.list.get → warehouseId / selfShippingWarehouseId
4. bg.logistics.shipment.v2.confirm(本接口)→ 提交运单并确认发货
5. linkfox-temu-order-global → 刷新订单状态(parentOrderStatus 等)---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_self_fulfilled_logistics_shipment_v2_confirm.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"sendType": 0,
"sendRequestList": [
{
"carrierId": 123456789,
"trackingNumber": "9400111899223344556677",
"selfShippingWarehouseId": "YOUR_WAREHOUSE_ID",
"orderSendInfoList": [
{
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1",
"skuId": 58224724203874,
"quantity": 2
}
]
}
]
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.logistics.shipment.v2.confirm",
"params": {
"request": {
"sendType": 0,
"sendRequestList": []
}
}
}'查询发货信息 V2 — bg.logistics.shipment.v2.get
| 项 | 值 |
|---|---|
| 脚本 | scripts/global_self_fulfilled_logistics_shipment_v2_get.py |
| Partner 文档 | https://partner-global.temu.com/documentation?menu_code=7289390cfd724be4a196f11ebe45a896(按 type 在 Partner Global 后台打开) |
| 网关 | POST /temu/proxy,type=bg.logistics.shipment.v2.get,业务载荷放在 Body 的 params |
Description: The bg.logistics.shipment.v2.get interface is for sellers to verify shipped info after self-fulfillment(卖家自发货后,按订单查询并核对已提交的发货/物流信息)。
网关鉴权字段由本 skill 网关脚本处理;业务参数见下方 request。建议使用 `tokenPurpose=order-shipping`。通常在 `bg.logistics.shipment.v2.confirm` 确认发货之后调用,用于核对运单号、包裹号、承运商及子包裹信息;parentOrderSn/orderSn来自 `linkfox-temu-order-global`。
---
Request 结构(官方顶层)
params
└── request (OBJECT, 选填)
├── parentOrderSn ← 必填
└── orderSn ← 必填request 内字段
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| parentOrderSn | STRING | 是 | Parent Order Number(父订单号) |
| orderSn | STRING | 是 | Order Number(子订单号 / 订单号) |
官方表将顶层 `request` 标为选填(False),但 `parentOrderSn`、`orderSn` 均为必填;实际调用时应传入完整 `request` 对象。
网关 params 写法
{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1"
}
}---
Response(Temu body 解析后)
response
├── success
├── errorCode
├── errorMsg
└── result (OBJECT)
└── shipmentInfoDTO[] ← shipment result(发货结果列表)
├── carrierId
├── carrierName
├── trackingNumber
├── skuId
├── quantity
├── packageSn
├── packageDeliveryType
├── trackingWarningLabel
├── cooperativeWarehouseDTO (OBJECT) ← 合作仓履约时可能有值;卖家自发货时可能为空
│ ├── warehouseProviderCode
│ ├── warehouseProviderBrandName
│ ├── warehouseCode
│ └── warehouseName
└── subPackageShipmentInfoList[] ← subPackage Shipment result(子包裹发货结果)
├── carrierId
├── carrierName
├── packageSn
├── packageDeliveryType
└── trackingNumber顶层字段
| 参数 | 类型 | 说明 |
|---|---|---|
| success | BOOLEAN | success(当前请求是否成功,True 成功,False 失败) |
| errorCode | INTEGER | error code(错误码) |
| errorMsg | STRING | error message(错误信息) |
| result | OBJECT | result(业务结果对象) |
result 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| shipmentInfoDTO | OBJECT[] | shipment result(发货结果列表;每个元素对应一条主包裹维度的发货信息,可含子包裹列表) |
shipmentInfoDTO[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| carrierId | LONG | Carrier ID(承运商 ID),与 `bg.logistics.companies.get` 返回的 `logisticsServiceProviderId` 相同 |
| carrierName | STRING | Carrier name(承运商名称);Partner 原文表述为与 bg.logistics.companies.get 中对应 ID 的名称一致(字段 `logisticsServiceProviderName`) |
| trackingNumber | STRING | Tracking Number(物流运单号)。Y2 订单:仅当 API 调用时间戳 ≥ `earliestTimeGetShippingDocument` 时才会返回 trackingNumber |
| skuId | LONG | SKU ID |
| quantity | INTEGER | Quantity of the product(该包裹行对应的发货数量) |
| packageSn | STRING | Package number(包裹号) |
| packageDeliveryType | INTEGER | Package delivery type(包裹履约/发货渠道类型),见下表 |
| trackingWarningLabel | INTEGER | Tracking warning labels(轨迹预警标签),见下表 |
| cooperativeWarehouseDTO | OBJECT | 仅当该订单由合作仓履约时可能返回 DTO;卖家自发货时可能为空 |
| subPackageShipmentInfoList | OBJECT[] | subPackage Shipment result(子包裹发货结果列表;拆包/多包裹场景) |
packageDeliveryType(主包裹与子包裹共用)
| 值 | 说明 |
|---|---|
1 | Seller fulfills this order by non-integrated channel(卖家通过非 Temu 集成渠道履约) |
2 | Seller fulfills this order by Temu-integrated channel(卖家通过 Temu 集成渠道履约) |
3 | Cooperative warehouse fulfills this order by non-integrated channel(合作仓通过非集成渠道履约) |
4 | Cooperative warehouse fulfills this order by Temu-integrated channel(合作仓通过 Temu 集成渠道履约) |
trackingWarningLabel
| 值 | 说明 |
|---|---|
0 | No issues(无异常) |
1 | No tracking information(无轨迹信息) |
2 | Potentially incorrect(轨迹可能不正确) |
3 | The receiving address is inconsistent(收货地址不一致) |
4 | Over time collection(揽收超时) |
cooperativeWarehouseDTO 内字段
| 参数 | 类型 | 说明 |
|---|---|---|
| warehouseProviderCode | STRING | Warehouse Provider Code(仓配服务商编码) |
| warehouseProviderBrandName | STRING | Warehouse Provider Brand Name(仓配服务商品牌名) |
| warehouseCode | STRING | warehouse Code(仓库编码) |
| warehouseName | STRING | Warehouse Name(仓库名称) |
卖家自发货(Self-Fulfilled)场景下,该对象常为 空或不返回;合作仓履约订单才需关注。
subPackageShipmentInfoList[] 元素字段
| 参数 | 类型 | 说明 |
|---|---|---|
| carrierId | LONG | Carrier ID,与 `bg.logistics.companies.get` 的 `logisticsServiceProviderId` 相同 |
| carrierName | STRING | Carrier name,与 bg.logistics.companies.get 中对应承运商名称一致 |
| packageSn | STRING | Package number(子包裹号) |
| packageDeliveryType | INTEGER | Package delivery type,枚举同主包裹 `packageDeliveryType` |
| trackingNumber | STRING | Tracking Number(子包裹运单号) |
调用成功时先判断 `response.success === true`,再解析 `result.shipmentInfoDTO`。若需核对平台侧订单状态,可配合 `linkfox-temu-order-global` 的 bg.order.detail.v2.get。---
典型用法
1. bg.logistics.shipment.v2.confirm → 确认发货
2. bg.logistics.shipment.v2.get → 按 parentOrderSn + orderSn 核对运单、包裹号、预警标签
3. (拆包场景)subPackageShipmentInfoList → 获取各子包裹 packageSn / trackingNumber,供 sub.confirm 等后续操作---
示例
export LINKFOXAGENT_API_KEY="<key>"
python scripts/global_self_fulfilled_logistics_shipment_v2_get.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"request": {
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1"
}
}'python scripts/temu_global_proxy.py '{
"accessToken": "TOKEN",
"tokenPurpose": "order-shipping",
"type": "bg.logistics.shipment.v2.get",
"params": {
"request": {
"parentOrderSn": "PO-20260101001",
"orderSn": "O-20260101001-1"
}
}
}'#!/usr/bin/env python3
"""Factory for thin Global fulfillment API CLI scripts (all domains)."""
import sys
import _temu_global_common # noqa: F401
from _temu_common import load_json_arg
from _temu_global_common import extract_business_params, run_and_print
def run_cli(api_type: str, usage: str) -> None:
if len(sys.argv) < 2:
print(f"Usage: {usage}", file=sys.stderr)
sys.exit(1)
params = load_json_arg(sys.argv)
run_and_print(params, api_type, extract_business_params(params))
#!/usr/bin/env python3
"""temu.logistics.label.list.get — 查询 Temu 平台购标面单列表."""
import _global_fulfillment_script as m
if __name__ == "__main__":
m.run_cli(
"temu.logistics.label.list.get",
"global_buy_shipping_logistics_label_list_get.py '<JSON>'",
)