Amazon 店铺 Fulfillment Outbound
Use this Skill for Amazon Multi-Channel Fulfillment workflows on Fulfillment Outbound v2026-07-04. It exposes all nine operations in Amazon's current Outbound model plus the overview page's associated getInvoiceHeaders operation from Invoices v2026-06-25, while keeping the existing production linkfox-amazon-store-fba and linkfox-amazon-store-external-fulfillment implementations untouched.
Prerequisites
- Require
linkfox-amazon-store-auth. Run python scripts/check_auth_dependency.py; exit code 42 means the dependency must be installed or loaded first.
- Select one authorized store and obtain its
sellerId and region. Accept only NA, EU, or FE.
- Never accept or forward
amzAccessToken, accessToken, or refreshToken; the server resolves authorization from sellerId + region.
- Read references/api.md for operation contracts and references/workflows.md before a create, update, or cancel action.
- After explicit user confirmation, pass boolean
confirmWrite: true to createOrder, updateOrder, cancelOrder, updateOrderStatus, or updatePackage; the wrappers reject writes without it.
- When Amazon assigned a multi-tenant service identifier, pass it only as top-level
fulfillmentServiceId (1–40 characters). The proxy maps it to x-amzn-fulfillment-service-id; never put the raw header name in query or body.
调用方式
- API 端点:
POST /spApi/developerProxy(完整参数/响应/错误码见 references/api.md)
- Python 脚本:
python scripts/<operation_script>.py '<JSON 参数>' [--inline] [--no-cache]
- 调用约束:本工具沿用 Amazon Store Skill 的统一免费配置;同一会话同一参数组合默认只调用一次,脚本带 24h 本地缓存。失败/空结果不得自动换参数、翻页或连续试探;需要继续调用时先征得用户同意。
输出策略(脚本默认行为):
- 始终将完整响应写入
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-store-fulfillment-outbound-<timestamp>.json(<session> 取自 SESSION_ID;禁止写入 /tmp,当前目录不可写则报错)
- 响应体 ≤ 8 KB:落盘后把完整 JSON 打印到 stdout
- 响应体 > 8 KB:落盘后 stdout 只输出摘要(顶层字段、常见计数、最大列表字段长度及前 3 条样本)
- 加
--inline 强制全量打印到 stdout(同样落盘)
- 加
--no-cache 强制本次读/预览操作访问网关;只在用户要求刷新或已确认外部状态变化时使用
读数据建议:先看摘要;需要具体字段时用 jq 或 ConvertFrom-Json 从保存文件按需抽取。
Operation Guide
| Stage |
Operation |
Script |
Availability |
| Quote |
getOffers |
get_offers.py |
Production |
| Preview |
getOrderPreview |
get_order_preview.py |
Production |
| Create |
createOrder |
create_order.py |
Production |
| Read |
getOrder |
get_order.py |
Production |
| List |
listOrders |
list_orders.py |
Production |
| Release hold / update |
updateOrder |
update_order.py |
Production |
| Cancel |
cancelOrder |
cancel_order.py |
Production |
| Simulate order status |
updateOrderStatus |
update_order_status.py |
Amazon dynamic sandbox only |
| Simulate package status |
updatePackage |
update_package.py |
Amazon dynamic sandbox only |
| List invoice headers |
getInvoiceHeaders |
get_invoice_headers.py |
Production, Invoices v2026-06-25 |
Workflow Rules
- Use
getOffers for multi-SKU delivery options and expiration times; use getOrderPreview for planned shipments, fees, constraints, and fulfillability.
- Show the chosen store, destination, line items, service tier, fees, hold/ship action, and
orderId before createOrder.
- Treat
orderId and every lineItemId as seller-controlled idempotency identifiers. Never invent a replacement ID after an uncertain timeout.
- A
createOrder response can be HTTP 200 or 202. On 202, use the returned/requested orderId with getOrder; do not automatically poll.
- Use
updateOrder only to update the supported fulfillment configuration, currently the HOLD/SHIP action. Confirm before releasing a held order.
- Confirm before
cancelOrder. Amazon only stops fulfillment where cancellation is still possible; do not present 202 as completed cancellation.
- Add
shipments: "INCLUDE" to getOrder or listOrders when package and tracking details are needed.
- Never automatically replay POST/PUT after 429, 500, 503, or a timeout. Recover with
getOrder where possible.
- Use
getInvoiceHeaders only for header-level invoice discovery. Require marketplaceId; provide both issue-date bounds or neither, keep the range within 90 days, and page with nextToken only after user approval.
Important Limitations
updateOrderStatus and updatePackage are marked x-amzn-api-sandbox-only: true by Amazon. Consistent with the existing FBA skill, their wrappers use the same /spApi/developerProxy request shape as every other operation and do not accept or send a separate sandbox control field. Use them only with sandbox test data; availability depends on the unified gateway/upstream route.
- The optional
x-amzn-fulfillment-service-id multi-tenant header is exposed only through the typed top-level fulfillmentServiceId parameter. Raw header names, nested aliases, blank values, values over 40 characters, and newline characters are rejected before calling the gateway.
- Amazon's Outbound overview role list mentions
getInvoiceHeaders, but its Reference path is /finances/invoices/2026-06-25/invoices. This Skill exposes it as an explicitly labeled related Invoices operation; it is not counted among the nine Outbound OpenAPI operations and does not accept fulfillmentServiceId.
- Legacy v2020-07-01 returns, features, and package-tracking operations remain in the production FBA Skill and are not copied into this current-version Skill. Read references/migration.md when migrating.
Display Rules
- Present Amazon data and identifiers without exposing internal tool names or access tokens.
- Separate operation success from business completion: show gateway
errcode, Amazon httpStatus, order status, constraints, and next action.
- For offers and previews, show expiration, service tier, delivery interval, currency, price, and item constraints together.
- For orders, show
orderId, status, line items, shipments, packages, tracking, proof of delivery, drop-off/locker details, unit identifiers, and pagination token only when present.
User Expression
Ask: “Check MCF delivery options for these Amazon SKUs to this postal code.”
Do: use getOffers; do not create an order.
Ask: “Preview and then create this MCF order.”
Do: run getOrderPreview, present constraints and fees, obtain confirmation, then run createOrder once.
Ask: “Track my MCF order.”
Do: run getOrder with shipments: "INCLUDE"; do not call the legacy tracking operation.
Feedback
Report issues with skillName: linkfox-amazon-store-fulfillment-outbound, operation, masked IDs, resolved path, gateway status, and Amazon response summary. Never include credentials.
积分消耗规则
不消耗积分(以网关实际计费为准)。
更多跨境 Skill:LinkFox Skills
1---2name: linkfox-amazon-store-fulfillment-outbound3description: 亚马逊 Multi-Channel Fulfillment(MCF)出仓履约 Skill,经 LinkFox /spApi/developerProxy 调用 Fulfillment Outbound API v2026-07-04,并提供该文档角色列表关联的 Invoices v2026-06-25 getInvoiceHeaders;支持配送报价与预览、创建/查询/列出/更新/取消履约订单、动态沙箱订单/包裹状态更新及发票头分页查询。用户提到 Fulfillment Outbound、MCF、多渠道配送、getOffers、getOrderPreview、createOrder、getInvoiceHeaders、Amazon 库存配送到站外客户、订单包裹与跟踪、签收证明或投递照片、receivedBy、locker/drop-off location、商品序列号/unitIdentifiers、v2026-07-04 时触发。与 External Fulfillment、普通 Orders API 和旧版 v2020-07-01 不同。4---5
6# Amazon 店铺 Fulfillment Outbound
7
8Use this Skill for Amazon Multi-Channel Fulfillment workflows on Fulfillment Outbound `v2026-07-04`. It exposes all nine operations in Amazon's current Outbound model plus the overview page's associated `getInvoiceHeaders` operation from Invoices `v2026-06-25`, while keeping the existing production `linkfox-amazon-store-fba` and `linkfox-amazon-store-external-fulfillment` implementations untouched.
9
10## Prerequisites
11
121. Require **`linkfox-amazon-store-auth`**. Run `python scripts/check_auth_dependency.py`; exit code `42` means the dependency must be installed or loaded first.
132. Select one authorized store and obtain its `sellerId` and `region`. Accept only `NA`, `EU`, or `FE`.
143. Never accept or forward `amzAccessToken`, `accessToken`, or `refreshToken`; the server resolves authorization from `sellerId + region`.
154. Read [references/api.md](references/api.md) for operation contracts and [references/workflows.md](references/workflows.md) before a create, update, or cancel action.
165. After explicit user confirmation, pass boolean `confirmWrite: true` to `createOrder`, `updateOrder`, `cancelOrder`, `updateOrderStatus`, or `updatePackage`; the wrappers reject writes without it.
176. When Amazon assigned a multi-tenant service identifier, pass it only as top-level `fulfillmentServiceId` (1–40 characters). The proxy maps it to `x-amzn-fulfillment-service-id`; never put the raw header name in query or body.
18
19## 调用方式
20
21- **API 端点**:`POST /spApi/developerProxy`(完整参数/响应/错误码见 `references/api.md`)
22- **Python 脚本**:`python scripts/<operation_script>.py '<JSON 参数>' [--inline] [--no-cache]`
23- **调用约束**:本工具沿用 Amazon Store Skill 的统一免费配置;同一会话同一参数组合默认只调用一次,脚本带 24h 本地缓存。失败/空结果不得自动换参数、翻页或连续试探;需要继续调用时先征得用户同意。
24
25**输出策略(脚本默认行为)**:
26- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-store-fulfillment-outbound-<timestamp>.json`(`<session>` 取自 `SESSION_ID`;禁止写入 `/tmp`,当前目录不可写则报错)
27- 响应体 ≤ 8 KB:落盘后把完整 JSON 打印到 stdout
28- 响应体 > 8 KB:落盘后 stdout 只输出摘要(顶层字段、常见计数、最大列表字段长度及前 3 条样本)
29- 加 `--inline` 强制全量打印到 stdout(同样落盘)
30- 加 `--no-cache` 强制本次读/预览操作访问网关;只在用户要求刷新或已确认外部状态变化时使用
31
32**读数据建议**:先看摘要;需要具体字段时用 `jq` 或 `ConvertFrom-Json` 从保存文件按需抽取。
33
34## Operation Guide
35
36| Stage | Operation | Script | Availability |
37|---|---|---|---|
38| Quote | `getOffers` | `get_offers.py` | Production |
39| Preview | `getOrderPreview` | `get_order_preview.py` | Production |
40| Create | `createOrder` | `create_order.py` | Production |
41| Read | `getOrder` | `get_order.py` | Production |
42| List | `listOrders` | `list_orders.py` | Production |
43| Release hold / update | `updateOrder` | `update_order.py` | Production |
44| Cancel | `cancelOrder` | `cancel_order.py` | Production |
45| Simulate order status | `updateOrderStatus` | `update_order_status.py` | Amazon dynamic sandbox only |
46| Simulate package status | `updatePackage` | `update_package.py` | Amazon dynamic sandbox only |
47| List invoice headers | `getInvoiceHeaders` | `get_invoice_headers.py` | Production, Invoices v2026-06-25 |
48
49## Workflow Rules
50
511. Use `getOffers` for multi-SKU delivery options and expiration times; use `getOrderPreview` for planned shipments, fees, constraints, and fulfillability.
522. Show the chosen store, destination, line items, service tier, fees, hold/ship action, and `orderId` before `createOrder`.
533. Treat `orderId` and every `lineItemId` as seller-controlled idempotency identifiers. Never invent a replacement ID after an uncertain timeout.
544. A `createOrder` response can be HTTP 200 or 202. On 202, use the returned/requested `orderId` with `getOrder`; do not automatically poll.
555. Use `updateOrder` only to update the supported fulfillment configuration, currently the HOLD/SHIP action. Confirm before releasing a held order.
566. Confirm before `cancelOrder`. Amazon only stops fulfillment where cancellation is still possible; do not present 202 as completed cancellation.
577. Add `shipments: "INCLUDE"` to `getOrder` or `listOrders` when package and tracking details are needed.
588. Never automatically replay POST/PUT after 429, 500, 503, or a timeout. Recover with `getOrder` where possible.
599. Use `getInvoiceHeaders` only for header-level invoice discovery. Require `marketplaceId`; provide both issue-date bounds or neither, keep the range within 90 days, and page with `nextToken` only after user approval.
60
61## Important Limitations
62
63- `updateOrderStatus` and `updatePackage` are marked `x-amzn-api-sandbox-only: true` by Amazon. Consistent with the existing FBA skill, their wrappers use the same `/spApi/developerProxy` request shape as every other operation and do not accept or send a separate `sandbox` control field. Use them only with sandbox test data; availability depends on the unified gateway/upstream route.
64- The optional `x-amzn-fulfillment-service-id` multi-tenant header is exposed only through the typed top-level `fulfillmentServiceId` parameter. Raw header names, nested aliases, blank values, values over 40 characters, and newline characters are rejected before calling the gateway.
65- Amazon's Outbound overview role list mentions `getInvoiceHeaders`, but its Reference path is `/finances/invoices/2026-06-25/invoices`. This Skill exposes it as an explicitly labeled related Invoices operation; it is not counted among the nine Outbound OpenAPI operations and does not accept `fulfillmentServiceId`.
66- Legacy v2020-07-01 returns, features, and package-tracking operations remain in the production FBA Skill and are not copied into this current-version Skill. Read [references/migration.md](references/migration.md) when migrating.
67
68## Display Rules
69
70- Present Amazon data and identifiers without exposing internal tool names or access tokens.
71- Separate operation success from business completion: show gateway `errcode`, Amazon `httpStatus`, order `status`, constraints, and next action.
72- For offers and previews, show expiration, service tier, delivery interval, currency, price, and item constraints together.
73- For orders, show `orderId`, status, line items, shipments, packages, tracking, proof of delivery, drop-off/locker details, unit identifiers, and pagination token only when present.
74
75## User Expression
76
77**Ask**: “Check MCF delivery options for these Amazon SKUs to this postal code.”
78
79**Do**: use `getOffers`; do not create an order.
80
81**Ask**: “Preview and then create this MCF order.”
82
83**Do**: run `getOrderPreview`, present constraints and fees, obtain confirmation, then run `createOrder` once.
84
85**Ask**: “Track my MCF order.”
86
87**Do**: run `getOrder` with `shipments: "INCLUDE"`; do not call the legacy tracking operation.
88
89## Feedback
90
91Report issues with `skillName: linkfox-amazon-store-fulfillment-outbound`, operation, masked IDs, resolved path, gateway status, and Amazon response summary. Never include credentials.
92
93## 积分消耗规则
94
95不消耗积分(以网关实际计费为准)。
96
97---
98*更多跨境 Skill:[LinkFox Skills](https://skill.linkfox.com/)*