SuperAPI AI 工具集

linkfox-amazon-store-fulfillment-outbound

办公与效率

查看项目

更新于 10-16 09:21

技能介绍

本技能用于亚马逊 Multi-Channel Fulfillment(MCF)新版出仓履约管理,基于 Fulfillment Outbound v2026-07-04 接口,覆盖 Amazon 当前 Outbound 模型的全部九个操作,并额外提供 Invoices v2026-06-25 概览页关联的 getInvoiceHeaders 操作。原有生产环境的 linkfox-amazon-store-fba 与 linkfox-amazon-store-external-fulfillment 实现保持不变。

【前置条件】 需先安装 linkfox-amazon-store-auth 授权依赖,可运行 python scripts/check_auth_dependency.py 检查,退出码 42 表示需先安装或加载该依赖。需选择一个已授权店铺并获取其 sellerId 与 region,region 仅接受 NA、EU 或 FE。不得接受或转发 amzAccessToken、accessToken 或 refreshToken,服务端通过 sellerId + region 解析授权。执行创建、更新或取消操作前,应先阅读 references/api.md 了解操作契约,并阅读 references/workflows.md。

【主要能力与操作】 报价:getOffers(get_offers.py),生产可用。 预览:getOrderPreview(get_order_preview.py),生产可用。 创建:createOrder(create_order.py),生产可用。 读取:getOrder(get_order.py),生产可用。 列表:listOrders(list_orders.py),生产可用。 释放保留/更新:updateOrder(update_order.py),生产可用。 取消:cancelOrder(cancel_order.py),生产可用。 模拟订单状态:updateOrderStatus(update_order_status.py),仅 Amazon 动态沙箱。 模拟包裹状态:updatePackage(update_package.py),仅 Amazon 动态沙箱。 列出发票头:getInvoiceHeaders(get_invoice_headers.py),生产可用,属 Invoices v2026-06-25。

【使用方式】 API 端点:POST /spApi/developerProxy,完整参数、响应与错误码见 references/api.md。 Python 脚本:python scripts/<operation_script>.py '<JSON 参数>' [--inline] [--no-cache]。 调用约束:同一会话同一参数组合默认只调用一次,脚本带 24 小时本地缓存;失败或空结果不得自动换参数、翻页或连续试探,需继续调用时先征得用户同意。 输出策略:始终将完整响应写入 <cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-store-fulfillment-outbound-<timestamp>.json(<session> 取自 SESSION_ID,禁止写入 /tmp,当前目录不可写则报错);响应体 ≤ 8 KB 时落盘后把完整 JSON 打印到 stdout,> 8 KB 时只输出摘要(顶层字段、常见计数、最大列表字段长度及前 3 条样本);加 --inline 强制全量打印,加 --no-cache 强制本次读/预览访问网关。读数据建议先看摘要,需要具体字段时用 jq 或 ConvertFrom-Json 从保存文件按需抽取。 写操作需用户明确确认后传入布尔值 confirmWrite: true,适用于 createOrder、updateOrder、cancelOrder、updateOrderStatus 或 updatePackage,包装器会拒绝未带该参数的写操作。当 Amazon 分配了多租户服务标识时,仅作为顶层 fulfillmentServiceId 传入(1–40 字符),代理会映射为 x-amzn-fulfillment-service-id,不得将原始头名称放入查询或请求体。

【工作流规则】 使用 getOffers 获取多 SKU 配送选项与过期时间;使用 getOrderPreview 获取计划发货、费用、约束与可履约性。在 createOrder 前展示所选店铺、目的地、行项目、服务层级、费用、保留/发货动作与 orderId。将 orderId 与每个 lineItemId 视为卖家控制的幂等标识,超时不确定后不得自行编造替代 ID。createOrder 响应可能为 HTTP 200 或 202,遇 202 时用返回或请求的 orderId 调用 getOrder,不要自动轮询。updateOrder 仅用于更新受支持的履约配置(当前为 HOLD/SHIP 动作),释放保留订单前需确认。cancelOrder 前需确认,Amazon 仅在仍可取消时停止履约,不得将 202 呈现为已完成取消。需要包裹与跟踪详情时,在 getOrder 或 listOrders 中加 shipments: "INCLUDE"。遇 429、500、503 或超时后不得自动重放 POST/PUT,尽量用 getOrder 恢复。getInvoiceHeaders 仅用于发票头级发现,需提供 marketplaceId,两个签发日期边界要么都提供要么都不提供,范围保持在 90 天内,仅在用户批准后用 nextToken 翻页。

【重要限制】 updateOrderStatus 与 updatePackage 被 Amazon 标记为 x-amzn-api-sandbox-only: true,其包装器与其他操作使用相同的 /spApi/developerProxy 请求形态,不接受也不发送单独的沙箱控制字段,仅可与沙箱测试数据一起使用,可用性取决于统一网关/上游路由。可选的 x-amzn-fulfillment-service-id 多租户头仅通过类型化顶层 fulfillmentServiceId 参数暴露,原始头名称、嵌套别名、空值、超过 40 字符的值及换行符会在调用网关前被拒绝。Amazon Outbound 概览角色列表提到 getInvoiceHeaders,但其 Reference 路径为 /finances/invoices/2026-06-25/invoices,本技能将其作为明确标注的相关 Invoices 操作暴露,不计入九个 Outbound OpenAPI 操作,且不接受 fulfillmentServiceId。旧版 v2020-07-01 的退货、功能与包裹跟踪操作仍保留在生产 FBA 技能中,未复制到本当前版本技能,迁移时请阅读 references/migration.md。

【展示规则】 呈现 Amazon 数据与标识时不得暴露内部工具名称或访问令牌。将操作成功与业务完成分开:展示网关 errcode、Amazon httpStatus、订单状态、约束与下一步动作。报价与预览需同时展示过期时间、服务层级、配送区间、货币、价格与商品约束。订单仅在存在时展示 orderId、状态、行项目、货件、包裹、跟踪、签收证明、drop-off/locker 详情、单元标识与分页令牌。

【接口保护与重试】 同一店铺连续收到 Amazon SP-API 的 400、403、404 或 429 时,网关会返回 450、453、454 或 459 并短暂冷却,这些自定义状态码不是 Amazon 原生状态,也不表示封号。450(对应 400,店铺+接口,60 秒内超过 3 次冷却 5 分钟,10 分钟内超过 4 次冷却 20 分钟)应停止原参数重试,检查必填字段、marketplace、ID、日期与请求体;453(对应 403,店铺全部接口,60 秒内超过 2 次冷却 5 分钟,10 分钟内超过 4 次冷却 30 分钟)应停止该店铺调用,检查授权、权限、店铺归属与区域;454(对应 404,店铺+接口,60 秒内超过 3 次冷却 5 分钟,10 分钟内超过 4 次冷却 30 分钟)应确认资源 ID、所属店铺/站点、资源状态与接口路径;459(对应 429,店铺+接口,首次冷却 15 秒,2 分钟内超过 2 次冷却 30 秒,3 分钟内超过 4 次冷却 2 分钟)应降低并发、分页与轮询频率并逐级退避。应立即停止自动或并发重试,不得通过换脚本或重复创建任务绕过保护,优先遵循 retryAfter、blockedUntil。450/453/454 必须先修正参数、授权或资源标识,冷却后最多谨慎重试一次,再次触发则停止调用;453 期间停止该店铺全部 SP-API。保留已有 reportId、feedId 等任务 ID,写操作结果不确定时先查询状态,不直接重放。向用户先说明店铺保护,再给原因、处理与等待时间。

【算力消耗】 不消耗算力(以网关实际计费为准)。