Alex
Alex
10年跨境老兵(微信:sfgoods),熟悉主流平台(Amazon Ebay 速卖通 Shopee Lazada),欢迎交流~

注册于 1年前

回答
82
文章
5
关注者
2

私有(Private)应用的自授权上限是 10 个,这是按应用(application-level)计算的,不是按“同一营业执照/主体的店铺数”来限定。私有应用只能做自授权,超过 10 个就无法再新增授权,除非改为公开(Public)应用或移除已有的自授权

官方链接是:https://developer-docs.amazon.com/sp-api/docs/application-authorization-limits

image.png

赔偿(补偿)

  • FBA 赔偿报表GET_FBA_REIMBURSEMENTS_DATA(Reports API)。包含每条赔偿及原因,日更。(Amazon 开发者文档)
  • 财务事件(含 SAFE-T 赔偿、移除运费等)

    • 旧版:Finances v0 的 listFinancialEvents* 可返回事件类型(如 SAFETReimbursementEventRemovalShipmentEvent)。(Spapi.vip)
    • 新版:Finances v2024-06-19listTransactions 汇总交易(v0 正在弃用,需迁移到 v2024-06-19)。(Amazon 开发者文档)

盘存(库存)

  • FBA Inventory APIgetInventorySummaries 获取仓网内库存汇总/明细。(Amazon 开发者文档)
  • 常用库存报表(Reports API)

    • GET_AFN_INVENTORY_DATA(亚马逊履约库存快照)
    • GET_RESERVED_INVENTORY_DATA(预留库存)
    • GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA / GET_FBA_MYI_ALL_INVENTORY_DATA(在售/含归档库存明细)
      以上均在“FBA Inventory Reports”页列出。(Amazon 开发者文档)

月仓储费

  • FBA 仓储费报表GET_FBA_STORAGE_FEE_CHARGES_DATA(可请求或定时,含每 ASIN 当月预计仓储费、费率等字段)。(Amazon 开发者文档)

长期仓储费(LTSF)

  • FBA 长期仓储费扣费报表GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA(按月生成,含收费数量、金额、年龄层等)。(Amazon 开发者文档)

移除订单

  • 移除订单明细报表GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA(含订单行、数量、费用、状态,近实时)。(Amazon 开发者文档)
  • 移除货件跟踪报表GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA(承运商、跟踪号、发货数量等)。(Amazon 开发者文档)
  • 财务事件(移除相关费用):Finances 事件中的 RemovalShipmentEvent。(Spapi.vip)

换货订单(Replacement)

  • Orders API 字段getOrder / getOrders 返回 IsReplacementOrderReplacedOrderId 等,用于识别换货单。(Amazon 开发者文档)
  • FBA 换货报表GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA(列出已发出的换货,NA/IN 可用)。(Amazon 开发者文档)

快速选型建议

  • 需要“交易/扣费明细”(含赔偿、移除费):优先用 Finances v2024-06-19 listTransactions(官方在逐步替代 v0)。(Amazon 开发者文档)
  • 需要“库存/仓储费/移除/换货的批量明细”:走 Reports API 对应 reportType(上面已列)。(Amazon 开发者文档)
  • 需要“实时库存快照/变更”:走 FBA Inventory getInventorySummaries。(Amazon 开发者文档)

暂时没有,还不支持
你可以用结算报告拉到近似的数据, GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2,这是一个结算报告(settlement report),可以通过这个报告获取 每一个结算周期(settlement group) 的支付明细

支持,FBM Easy Ship可以通过API获取税票。具体方式包括:

1. Easy Ship Documents API

  • 使用 GET_EASYSHIP_DOCUMENTS 报告类型
  • 可以获取发票(invoice)、运输标签和保修文档
  • 需要 "Tax Invoicing (Restricted)" 角色权限
  • 主要适用于印度和新加坡市场

2. Easy Ship Feed API

  • 使用 POST_EASYSHIP_DOCUMENTS Feed类型
  • 可批量获取Easy Ship订单的发票、运输标签和保修文档

自发货(FBM/MFN) 获取税票INVOICE

自发货也可以通过API获取税票,但方式和条件有所不同:

1. VAT发票数据报告

对于加入VAT计算服务(VCS)的卖家,可以使用 GET_FLAT_FILE_VAT_INVOICE_DATA_REPORTGET_XML_VAT_INVOICE_DATA_REPORT 获取VAT发票数据

2. 订单报告

对于MFN(Merchant Fulfilled Network)订单,可以使用 GET_ORDER_REPORT_DATA_INVOICING 获取发票数据

3. Invoices API

https://api.sp-api.net/zh/api-308930396

  • 可以导出发票文件
  • 支持创建和上传自定义发票
  • 使用 getInvoicesExport 操作获取XML格式的发票文件

重要限制和要求

  1. 权限要求: 需要 "Tax Invoicing (Restricted)" 角色权限(PII)
  2. 市场限制: Easy Ship主要在印度和新加坡市场可用
  3. VCS注册: VAT相关功能需要注册Amazon的VAT计算服务(VCS),目前仅在爱尔兰、西班牙、英国、法国、比利时、荷兰、德国、意大利、瑞典和波兰等欧盟市场可用
  4. 时效性: Amazon要求卖家在24小时内上传发票

我试了一遍创建到删除,没有任何问题哦。你这个应该是中间接口哪里用的有问题

第一步:先到AWS SQS那边创建队列。这个就不细说了

第二步:先创建无授权Token

https://api.sp-api.net/zh/api-289542717

第三步:创建createDestination

https://api.sp-api.net/zh/api-308930057
body:

{
  "resourceSpecification": {
    "sqs": {
      "arn": "arn:aws:sqs:ap-southeast-1:345345343:myorder"
    }
  },
  "name": "MySQSDestination0905"
}

如果是事件桥

{
  "resourceSpecification": {
    "eventBridge": {
      "region": "us-east-1",
      "accountId": "123456789012"
    }
  },
  "name": "MyEventBridgeDestination"
}
这个地方同一个arn只能创建一次,你执行完毕之后,再创建,就会报错。name也不要重复
你的报错应该在这个地方
返回值:
{
  "payload": {
    "resource": {
      "sqs": {
        "arn": "arn:aws:sqs:ap-southeast-1:742343:myorder"
      },
      "eventBridge": null,
      "privateSqs": null,
      "webhook": null
    },
    "destinationId": "53f3423a5a1-4f9b-be5c-329423684c",
    "name": "MySQSDestination0905"
  }
}

第四步,正常接下来是要订阅了,这里我就不继续了,我操作了删除

image.png

回答你另外一个问题

不同地区是用同一个,还是分开。答案: 都可以。 不分地区,这个Destination 是共用的。
所以看你业务情况,你希望放在一个Destination 可以,分开也可以

Orders API 目前没有字段可以直接区分“FLEX(Seller Flex / FBA Onsite)订单”和标准 FBA 订单。 getOrders 只能按履约渠道筛到 AFN(FBA)或 MFN(卖家自配送),在 AFN 里不会再细分出 FLEX。

曲线方法你试试:
用 Reports API 的 FBA 发货报告抓“履约中心ID(fulfillment-center-id)”,靠映射识别 FLEX

  • 通过 Reports API 申请 FBA Amazon Fulfilled Shipments 报告(发票/税务版本任一都包含发货明细字段),该类报告包含成交明细与物流信息。
  • 报告字段里有 fulfillment-center-id(发货仓代码)。你可以把你自家 Seller Flex 站点的 FC 代码维护成白名单映射;命中这些 FC 代码即可判定为 FLEX,否则为常规 FBA。亚马逊帮助页也明确“fulfillment-center-id 为订单发货的履约中心标识”

你有没有尝试使用 searchListingsItems 这些看看能否拉到VC的数据?

如果能拉到,说明SC这个接口也适合VC的,就可以用notication来更新库存了(准实时)

你可以试试。 或者需要我一起协助可以加我 微信 sfgoods

我配合你测试一下

需要使用getListingsItem 接口拉取一下,看看issue是什么,一般是有错误导致的查不到

[https://api.sp-api.net/zh/api-308930030
](https://api.sp-api.net/zh/api-308930030)
image.png

如果需要上传没有品牌名称和商品编号的商品,putListingsItem能实现吗

可以的,需要按照schema格式上传

通过 SP-API 无法直接获取 Easy Ship 订单的完整轨迹(包含所有历史状态和时间戳);
但可以通过调用 getScheduledPackage 接口获取当前状态(带追踪 ID),结合轮询与通知机制(若能捕获状态变化),逐步构建出轨迹历史;同时可以借助报告接口做批量补充和审核。

看起来并不是“接口坏了”,而是没能在目标站点把你的 SKU 挂到同一个目录商品上,所以 LISTING_OFFER_ONLY 被系统判定为“没有找到可挂载的目录商品 → 走成了创建商品流(LISTING)”,于是返回了:

  • 13013:西语提示“该商品不在该站点目录或已被删除。不要用 建议 ASIN,要用原始 UPC/GTIN 再发一次。”
  • 90220:既然被当成“创建商品”,就需要 item_name 等标题类必填字段,但你没传,所以报缺失。

你的请求里最关键的一点是:
你只传了 merchant_suggested_asin(“建议 ASIN”),这不会保证在 ES 站点成功匹配。如果该 ASIN 在西班牙站没有对应目录条目(或还没被跨站同步),SP-API 就无法把你挂到现有目录,于是走创建流并要求标题等信息。


为什么后台/表格/历史 feed 可以成功,而 PUT Listings 失败?

  • 后台和表格(Flat File)通常会用 GTIN(EAN/UPC)去匹配,而不是“建议 ASIN”。同一个 GTIN 在各站点的目录能自动归并,所以能顺利挂上。
  • 你这次用 LISTING_OFFER_ONLY + merchant_suggested_asin,如果目标站点没有该 ASIN,系统就找不到“可挂”的目录 → 报 13013/90220。

可以这几个方面自查看看

  1. 该 ASIN 在目标站点是否存在?
    用 Catalog Items API(2022-04-01 版)查 GET /catalog/2022-04-01/items/{ASIN}?marketplaceIds=A1RKKUPIHCS9HS

    • 存在:继续看第 2 点。
    • 不存在:见“修复方案 B”。
  2. productType 是否与该 ASIN 的 item_type_keyword 匹配?
    你传的是 "productType": "CABINET"。如果目标站点该 ASIN 实际的 product type 不是 CABINET,会导致校验偏离。

    • 用 Definitions API getDefinitionsProductType(传 marketplace=ES、locale=es_ES)核对该 ASIN 的 item_type_keyword,把 productType 改成目标站点实际的 product type。
  3. 用“报价专用”字段,不要混入创建商品字段
    requirements: LISTING_OFFER_ONLY 下,只传报价/配送相关字段:价格(purchasable_offer)、库存(fulfillment_availability)、成色(condition_type)、运费模板(merchant_shipping_group)等。
    你现在的字段基本没问题,但仅靠 merchant_suggested_asin 不足以匹配
  4. 库存与价格
    你请求里 quantity: 0,但响应里读回是 18——说明后面有别的系统/模板同步了库存。若想立即在 ES 站点上架,确保 quantity > 0 且有有效价格。

推荐的修复方案(择一)

方案 A:先确认 ASIN 在 ES 存在 → 纯“跟卖挂接”

前提:该 ASIN 在 ES 站点确实存在。
做法

  • productType 改成与该 ASIN 在 ES 的 item_type_keyword 一致的值。
  • 维持 requirements: LISTING_OFFER_ONLY,并去掉一切创建商品用的字段(别传 item_name 等)。
  • merchant_suggested_asin 可以保留,但不要指望它完成匹配,真正的匹配取决于该 ASIN是否在该站存在。
  • 传价格、库存、成色、运费模板即可。
若这样仍报 13013,基本就是该 ASIN 在 ES 没目录或暂未可售 → 用方案 B。

方案 B:用 GTIN 在目标站点“先建后挂”

前提:该 ASIN 在 ES 不存在/不可售。
做法

  • 把请求切换为 requirements: "LISTING"(不是 OFFER_ONLY)。
  • 使用 GTIN(EAN/UPC) 匹配(Listings Items 支持通过属性提交外部 ID;若你用 Feeds 更顺手,也可走 Feeds 的 product/price/inventory 模板)。
  • 同时提供该 productType 下 创建商品的必填字段external_product_id(+类型)、brand/manufactureritem_nameitem_type_keyword 等。
  • 一旦创建成功,目录会在 ES 生成与 DE 同 GTIN 的条目,你的报价自然就挂上了。
这与后台/表格成功的原理一致:它们也是用 GTIN 做跨站归并。

方案 C:用 BIL/全球开店工具做跨站同步

如果你常规要把 DE 的上架自动“推”到 FR/IT/ES,考虑用 Build International Listings 或后台的“跨国上架”功能,让系统负责在目标站点建立/映射目录,再由 API 只发报价和库存即可。


一个更稳的请求示例(已存在同 ASIN 的前提

{
  "listingsItemPutRequest": {
    "attributes": {
      "purchasable_offer": [{
        "marketplace_id": "A1RKKUPIHCS9HS",
        "our_price": [{
          "schedule": [{ "value_with_tax": 149.99 }]
        }],
        "currency": "EUR"
      }],
      "condition_type": [{
        "marketplace_id": "A1RKKUPIHCS9HS",
        "value": "new_new"
      }],
      "fulfillment_availability": [{
        "quantity": 18,
        "fulfillment_channel_code": "DEFAULT"
      }],
      "merchant_shipping_group": [{
        "marketplace_id": "A1RKKUPIHCS9HS",
        "value": "legacy-template-id"
      }]
      /* 可选:supplier_declared_dg_hz_regulation 等 */
    },
    "productType": "<与该 ASIN 在ES的item_type_keyword一致>",
    "requirements": "LISTING_OFFER_ONLY"
  },
  "sellerId": "ES店铺SellerID",
  "site": "ES",
  "sku": "你的SellerSKU"
}

常见坑位对照

  • 用 GTIN 做跨站匹配;ASIN 只是各站点的本地标识,可能不通用。
  • 核对 productType(用 Definitions/Catalog 拿到 ES 站点的 item_type_keyword)。
  • ✅ OFFER ONLY 只传报价/库存/成色等;一旦被系统判定为“创建”,就会要求 item_name、品牌等。
  • ❌ 仅靠 merchant_suggested_asin。这是提示性字段,不保证匹配。
  • ❌ 目标站点没有该 ASIN 还用 LISTING_OFFER_ONLY。应改走 LISTING+GTIN,或先用 BIL 建好。

不确定你这个商品是否是做了FBA和FBM还是只有FBM? 在这个不知道的前提下有几个场景你试试:

  1. 如果有FBA和FBM同时,那修改时候把FBA和FBM的都加上

比如:

{
  "fulfillmentAvailability": [
    {
      "fulfillmentChannelCode": "DEFAULT",   // 自发货
      "quantity": 10,
      "leadTimeToShipMinDays": 2,
      "leadTimeToShipMaxDays": 4
    },
    {
      "fulfillmentChannelCode": "AMAZON_NA"  // FBA 北美
      // 这里不要放 lead_time_to_ship / leadTimeToShip* / quantity
    }
  ]
}

或者不用PATCH使用MERGE

  1. 如果是单纯的FBM,你加上市场ID看看
{
    "productType": "PRODUCT",
    "patches": [
        {
            "op": "replace",
            "path": "/attributes/fulfillment_availability",
            "value": [
                {
                    "marketplace_id": "ABCDE",
                    "fulfillment_channel_code": "DEFAULT",
                    "lead_time_to_ship_max_days": 4,
                    "quantity": 543
                }
            ]
        }
    ]
}

这个修改和PT没关系。这个属性是通用属性,用PRODUCT或者不传PT(没记错的话)应该都可以修改

发布
问题

公众
平台

最新资讯发布