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

注册于 1年前

回答
82
文章
5
关注者
2

打印箱子标签用的是 getLabels:

**GET /fba/inbound/v0/shipments/{shipmentId}/labels
**
注意 shipmentId 要传的是 shipmentConfirmationId,就是那个 FBA15G7C2CZQ 这种格式的,不是 v2024 流程里 createInboundPlan 返回的那个 shipmentId

PageType 传 PackageLabel_Plain_Paper 就行,你截图里选的 99x105 A4 纸每页6个,对应的就是这个。

文档地址: https://developer-docs.amazon.com/sp-api/reference/getlabels

API调试地址:

ERP 系统是可以直接通过 SP-API 的 FBA Inbound v2024-03-20 来实现自动分仓的,不过新版 API 的流程和以前 createInboundShipmentPlan 不一样,需要按新的流程调用。

一般 ERP 对接的流程大致是:

createInboundPlan
提交发货地址、SKU 和数量,创建 inbound plan。

generatePackingOptions / listPackingOptions
生成并获取装箱方案。

generatePlacementOptions / listPlacementOptions
生成分仓方案,Amazon 会返回系统计算好的仓库分配结果。

confirmPlacementOption
确认分仓方案后会生成对应的 shipment。

setPackingInformation
上传箱规、重量、SKU数量等装箱信息。

简单理解就是:
ERP提交SKU数量 → Amazon返回分仓结果 → ERP按分仓结果装箱并创建货件。

现在很多系统都是用 Pack Later(先分仓再装箱) 的方式来实现自动分仓,这也是新版 API 推荐的流程。

可以的,你在aws队列页面,点击Send and receive messages,就可以看到消息

这里注意,需要提前给你的SQS加一个让SP-API的AWS ID可以写入数据的权限。不然会收不到消息

你检查看看是不是图片链接的问题,我看你主图和附图用的链接也不一样

比如:
static.instudio.me(主图)或 www.ingroupcloud.com(辅图)对 Amazon 抓取端不可访问(403/防盗链/证书/跳转),导致所有图片被判无效,后台就显示全空

另外还有一个常见的原因是,亚马逊抓到主图图片里有不符合图片要求和政策的内容。
比如 logo/文字 等,亚马逊对主图要求还是比较多的

可以从上面两个原因里查一下

有几个地方的原因,你可以试试:
"transactionType": "Cancel"
这个操作是在取消货件吗?

另外你需要确认好,你是用AMZNCC 还是SSCC ,两个不太一样。

修正了一下你的参数,你参考一下

{
  "shipments": [{
    "vendorShipmentIdentifier": "AMAZON-SHIP20260113121254-000026",
    "transactionType": "Original",  // 改为Original
    "transactionDate": "2026-01-20T12:00:00.000Z",
    
    "sellingParty": {
      "partyId": "UH681"
    },
    "shipFromParty": {
      "partyId": "0-188422721",
      "address": {
        "name": "LinkW Technology Logistics Inc.",
        "addressLine1": "14650 Meyer Canyon Drive"
      }
    },
    "shipToParty": {
      "partyId": "GEU5"
    },
    
    "shipmentFreightTerm": "Collect",
    "transportationDetails": {
      "shipMode": "SmallParcel"
    },
    
    "collectFreightPickupDetails": {
      "requestedPickUp": "2026-01-14T12:00:00.000Z",
      "scheduledPickUp": "2026-01-14T12:00:00.000Z"
    },
    
    "shipmentMeasurements": {
      "totalCartonCount": 1,
      "totalPalletStackable": 0,
      "totalPalletNonStackable": 0,
      "shipmentWeight": {
        "unitOfMeasure": "Lb",
        "value": 3.6
      },
      "shipmentVolume": {
        "unitOfMeasure": "CuFt",
        "value": "2.682"
      }
    },
    
    "purchaseOrders": [{
      "purchaseOrderNumber": "8TWTXM8G",
      "purchaseOrderDate": "2026-01-12T00:00:00.000Z",
      "shipWindow": "2026-01-12T00:00:00.000Z--2026-01-29T00:00:00.000Z",
      "items": [{
        "itemSequenceNumber": "001",  // 保持字符串格式
        "buyerProductIdentifier": "B07837W5NX",
        "vendorProductIdentifier": "B07837W5NX",
        "shippedQuantity": {
          "amount": 1,
          "unitOfMeasure": "Eaches",
          "unitSize": 1
        }
      }]
    }],
    
    "containers": [{
      "containerSequenceNumber": "1",
      "containerType": "Carton",
      
      // 方案1: 提供正确的18位SSCC
      "containerIdentifiers": [{
        "containerIdentificationType": "SSCC",
        "containerIdentificationNumber": "000059203339970001"  // 18位
      }],
      
      // 或者 方案2: Small Parcel可以不提供,让Amazon生成
      // "containerIdentifiers": [],
      
      "dimensions": {
        "length": 10,
        "width": 10,
        "height": 10,
        "unitOfMeasure": "In"
      },
      "weight": {
        "unitOfMeasure": "Lb",
        "value": 1
      },
      
      "packedItems": [{
        "itemSequenceNumber": "001",  // 与PO中保持一致
        "buyerProductIdentifier": "B07837W5NX",
        "vendorProductIdentifier": "B07837W5NX",
        "itemDetails": {
          "purchaseOrderNumber": "8TWTXM8G"
        },
        "packedQuantity": {
          "amount": 1,
          "unitOfMeasure": "Eaches"  // 改为Eaches保持一致
        }
      }]
    }]
  }]
}

你试试,
重新提交 SubmitShipments
等待承运商分配
轮询查询: GET /vendor/shipping/v1/shipments

然后下载标签

   GET vendor/shipping/v1/transportLabels

正常操作应该是你重新put一下,把其他链接删掉。put是覆盖的

如果非要patch,可以试试一个邪修招数main_product_image_locator 正常传值, other_product_image_locator_1 - other_product_image_locator_3 传无法访问的图片,这样子试试

这EventBridge 的Rule配置的没啥问题,
你确认下是否确定订阅的是 LISTINGS_ITEM_STATUS_CHANGE

我也测试这个看看试下

只有 IN_QUEUE状态的报告能取消,IN_PROGRESS的只能等了

你现在能做的“处理办法”:

1 先把队列里没开始的都取消掉(能做的唯一“止血”动作)

2 对于已经 IN_PROGRESS 超 24 小时的那一单:只能提个工单,联系平台处理了

你图里(领星的吧?)显示的 FBA总库存、可用库存、可售库存,都是通过FBA Inventory API 拿到的。

核心接口只有一个:

GET /fba/inventory/v1/summaries
https://api.sp-api.net/zh/api-308929928
image.png

从这里能直接得到:

totalQuantity → FBA总库存

inStockSupplyQuantity → FBA可用库存(也就是可售库存)

inboundShipmentQuantity → 在途库存

reservedQuantity → 预留库存

第三方平台就是把这些字段整理后展示出来的。

FBA 当前库存报告(GET_FBA_FULFILLMENT_CURRENT_INVENTORY_DATA)
这个报告里也有可售库存(fulfillable_quantity),但它有延迟,不实时。

简单说:商品页面里那个“€1.99 运费”,SP-API 拿不到。
Amazon 没开放这个前台展示的配送费接口。

你唯一能拿到运费的地方,是订单生成之后,通过订单接口查:

  • GET /orders/v0/orders/{orderId}
  • GET /orders/v0/orders/{orderId}/orderItems

在里面能看到:

  • ShippingPrice(买家实际付的运费)
  • ShippingDiscount
  • ShippingTax

也就是:上架时的运费拿不到,只有下单后的运费能查。

或者爬虫

你现在用的 /vendor/directFulfillment/payments/v1/invoices 只是上传发票的接口,本身不提供处理状态。
要查发票有没有通过、有没有被拒,必须用另外一个接口:

查询状态的接口

GET /vendor/directFulfillment/transactions/v1/transactions/{transactionId}

上传发票后,系统会回给你一个 transactionId,用这个去查就行。


状态怎么理解

Amazon 这边对发票目前就两种状态:

状态说明
Processing已接收、正在处理。对发票来说,长期保持 Processing 就表示已经通过了。
Failure处理失败,相当于 Rejected,会给出错误原因。

它不会返回 “Approved” 这种字面状态。


整体上

  1. 上传发票 → 拿到 transactionId
  2. 用 transactionId 调接口:
    GET /vendor/directFulfillment/transactions/v1/transactions/{id}
  3. Processing = 基本通过
  4. Failure = 被拒

你最开始碰到的两个错误:

  • 100632(ERROR):商品不满足《通用商品安全条例》(GPSR),缺合规信息 → 上架会被拦
  • 100528(WARNING):欧盟责任人信息(Responsible Person)没提供,超过 2024-12-13 会被下架

其实就是 Listing 里少了 GPSR 相关的 4 个字段


一、必须补齐的 4 个核心字段(Listing Schema里有,最终以schema为准)

在 SP-API 的 attributes 下,把这些补上即可:

  1. gpsr_manufacturer_reference.gpsr_manufacturer_email_address

    • 制造商邮箱(ASIN 级)
  2. dsa_responsible_party_address

    • 欧盟责任人(Responsible Person)的邮箱或完整地址(SKU 级)
    • 这个字段对应你 100528 报错
  3. gpsr_safety_attestation

    • 是否豁免提供安全文件
    • 大部分商品不是豁免 → 写 false
  4. compliance_media

    • 安全文件、说明书、警告文档等(PDF/图片的直链)
    • 非豁免商品必须至少提供一份

二、可以直接用的 JSON 示例(你只需要替换几项)

如果你用 Listings Items API

{
  "productType": "GENERIC_PRODUCT_TYPE",
  "requirements": "LISTING",
  "attributes": {
    "gpsr_manufacturer_reference": [
      {
        "gpsr_manufacturer_email_address": "manufacturer@example.com",
        "marketplace_id": "A1PA6795UKMFR9"
      }
    ],
    "dsa_responsible_party_address": [
      {
        "value": "responsible.person.eu@example.com",
        "marketplace_id": "A1PA6795UKMFR9"
      }
    ],
    "gpsr_safety_attestation": [
      {
        "value": false,
        "marketplace_id": "A1PA6795UKMFR9"
      }
    ],
    "compliance_media": [
      {
        "content_type": "safety_information",
        "content_language": "de_DE",
        "source_location": "https://your-public-file-url/safety_info.pdf",
        "marketplace_id": "A1PA6795UKMFR9"
      }
    ]
  }
}

你只需要改动这几个点:

  • productType:换成你 SKU 对应的(例如 SHOES、TOYS_AND_GAMES、INK_OR_TONER…)
  • marketplace_id:按你卖的站点替换(DE/FR/IT/ES/PL 等)
  • manufacturer@example.com:真实制造商邮箱
  • responsible.person.eu@example.com:你设定的欧盟责任人邮箱
  • source_location:你自己真正可下载的 PDF 直链
⚠️ 重点:文档链接不能是 Google Drive / Dropbox 的 preview 链接,必须能直接下载,可以和图片的方式差不多。

三、这 4 个字段如何对应你的报错

  • 100632(ERROR):一般是缺

    • manufacturer email
    • safety attestation
    • compliance media
  • 100528(WARNING):就是缺

    • dsa_responsible_party_address

把上面那段 JSON 补齐后,基本可以解决欧洲站的 GPSR 报错,你试试。

发布
问题

公众
平台

最新资讯发布