Amazon FBA 库存 API 对接实战
在亚马逊 FBA 精细化运营中库存实时同步、防超卖、自动补货高度依赖 SP-APISelling Partner API的 FBA Inventory 接口。本文以实战视角完整覆盖权限申请、认证签名、接口调用、数据解析、避坑与落地流程可直接用于 ERP/WMS 对接开发。一、前置准备权限与密钥配置FBA 库存查询使用SP-API v1 版本旧版 MWS 已逐步下线必须迁移至 SP-API。1. 必备密钥LWA 密钥Client ID、Client SecretIAM 密钥Access Key、Secret KeyRefresh Token店铺授权后获取站点 ID如美国站 A1F83G8C2ARO7P2. 权限开通卖家后台 → 应用与服务 → 开发应用 → 添加应用勾选FBA Inventory权限完成店铺授权获取 Refresh Token。二、核心认证流程必过环节SP-API 采用LWAAWS SigV4双签名是对接最易出错点。用 Refresh Token 请求 LWA获取有效期 1 小时的Access Token按 AWS SigV4 规范对请求头、参数、时间戳签名签名放入请求头携带 Access Token 调用接口实战要点Token 过期自动刷新避免频繁申请触发限流。三、核心接口getInventorySummaries接口地址GET /fba/inventory/v1/summaries必传参数detailstrue返回完整库存明细granularityTypeMarketplacegranularityId对应站点 IDsellerSkus指定 SKU 查询可选startDateTime按变更时间筛选可选响应关键字段业务核心sellerSku卖家 SKUasin亚马逊 ASINfulfillableQuantity可售库存防超卖核心inboundWorkingQuantity在途入库reservedQuantity预留库存totalQuantity总库存四、Python 实战调用代码python运行import requests import boto3 from botocore.auth import SigV4Auth from botocore.awsrequest import AWSRequest import datetime # 1. 配置密钥 LWA_CLIENT_ID 你的ClientID LWA_CLIENT_SECRET 你的ClientSecret REFRESH_TOKEN 你的RefreshToken AWS_ACCESS_KEY 你的IAM AK AWS_SECRET_KEY 你的IAM SK REGION us-east-1 MARKETPLACE_ID A1F83G8C2ARO7P # 2. 获取Access Token def get_access_token(): url https://api.amazon.com/auth/o2/token data { grant_type: refresh_token, refresh_token: REFRESH_TOKEN, client_id: LWA_CLIENT_ID, client_secret: LWA_CLIENT_SECRET } resp requests.post(url, datadata) return resp.json()[access_token] # 3. SigV4签名 def signed_request(method, url, headers, params): request AWSRequest(methodmethod, urlurl, headersheaders, paramsparams) SigV4Auth(boto3.Session( aws_access_key_idAWS_ACCESS_KEY, aws_secret_access_keyAWS_SECRET_KEY ).get_credentials(), execute-api, REGION).add_auth(request) return dict(request.headers) # 4. 查询FBA库存 def get_fba_inventory(): access_token get_access_token() url https://sellingpartnerapi-na.amazon.com/fba/inventory/v1/summaries params { details: true, granularityType: Marketplace, granularityId: MARKETPLACE_ID } headers { x-amz-access-token: access_token, Content-Type: application/json } signed_headers signed_request(GET, url, headers, params) resp requests.get(url, headerssigned_headers, paramsparams) return resp.json() if __name__ __main__: inventory get_fba_inventory() print(inventory)五、数据处理与业务落地库存分层只以fulfillableQuantity作为可售库存排除在途、预留、不可售避免超卖。分页处理单页默认 100 条用nextToken分页拉取全量 SKU。定时同步建议 5~15 分钟同步一次高峰加频低峰降频平衡实时性与接口调用量。异常兜底接口失败时使用本地缓存 告警防止库存中断。六、高频避坑清单签名错误时间戳误差 300 秒、密钥错误、区域不匹配均会签名失败。假库存陷阱totalQuantity包含在途与预留直接使用必超卖。限流触发默认 QPS 较低批量查询需加队列与重试避免 429 报错。站点 ID 错误不同站点 ID 不通用填错返回空数据。Token 未刷新Access Token 有效期 1 小时需自动续期。七、落地最佳实践搭建 Token 中心化服务统一管理与刷新库存数据入库建立可售 / 在途 / 预留多维度视图对接预警可售 安全库存自动触发补货提醒对接订单系统下单前校验库存实时扣减防超卖日志全记录便于排查库存差异与接口异常八、总结FBA 库存 API 对接的核心是搞定双签名 正确识别可售库存。按本文流程配置密钥、完成认证、调用接口、处理数据即可实现库存自动化同步。配合定时任务与异常兜底能有效解决超卖、库存不准等运营痛点大幅提升 FBA 管理效率。