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

注册于 1年前

回答
78
文章
5
关注者
2

啊,这个问题,调整售价就可以解决了吧

需要用到AWS事件桥和SQS,详细如下:

目标

  • 订阅商品更新(如:LISTINGS_ITEM_STATUS_CHANGE)
  • 订阅订单更新(如:ORDER_CHANGE)

总体流程

有两种接收通知的方式:

  1. Amazon EventBridge:用于商品相关通知(Listings)
  2. Amazon SQS(Simple Queue Service):用于订单等通知(Orders)

商品更新订阅流程(使用 Amazon EventBridge)

支持的通知类型示例

  • LISTINGS_ITEM_STATUS_CHANGE
  • LISTINGS_ITEM_MFN_QUANTITY_CHANGE
  • BRANDED_ITEM_CONTENT_CHANGE

步骤 1:创建 Destination(createDestination)

接口: POST /notifications/v1/destinations

参数:

{
  "resourceSpecification": {
    "eventBridge": {
      "region": "us-east-1",
      "accountId": "AWS_ACCOUNT_ID"
    }
  },
  "name": "MyEventBridgeDestination"
}

返回值中保存:

  • destinationId
  • resource.eventBridge.name(用于 EventBridge 配置)

步骤 2:在 AWS EventBridge 配置 partner event source

  1. 登录 AWS 控制台
  2. 找到 EventBridge > Partner event sources
  3. 找到格式为 aws.partner/sellingpartnerapi.amazon.com/{AWS Account Id}/{Application Id} 的 source
  4. 点击并关联事件总线(Event Bus)

步骤 3:创建 Rule 匹配通知类型

  1. 在 EventBridge 控制台,进入 Rules > Create rule
  2. 选择刚刚关联的 partner event bus
  3. 选择 “Use pattern form”
  4. 事件模式样例(仅接收某类通知):
{
  "source": [
    {
      "prefix": "aws.partner/sellingpartnerapi.amazon.com"
    }
  ],
  "detail-type": ["LISTINGS_ITEM_STATUS_CHANGE"]
}
  1. 设置 Target(如 SQS queue、Lambda 等)

步骤 4:创建 Subscription(createSubscription)

接口: POST /notifications/v1/subscriptions/{notificationType}

参数示例:

{
  "payloadVersion": "1.0",
  "destinationId": "YOUR_DESTINATION_ID"
}

notificationType 示例值:

  • "LISTINGS_ITEM_STATUS_CHANGE"
  • "BRANDED_ITEM_CONTENT_CHANGE"

订单更新订阅流程(使用 Amazon SQS)

支持的通知类型示例

  • ORDER_CHANGE
  • ANY_OFFER_CHANGED(可以包含 marketplaceIds 过滤器)

步骤 1:授权 SP-API 写入 SQS

参考 AWS 文档配置权限策略,允许 SP-API 写入您指定的 SQS 队列。


步骤 2:如使用加密,授权 SP-API 访问 KMS key(可选)

提供以下 IAM policy 示例:

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::437568002678:root"
  },
  "Action": ["kms:GenerateDataKey", "kms:Decrypt"],
  "Resource": "*"
}

步骤 3:创建 Destination(createDestination)

接口: POST /notifications/v1/destinations

参数:

{
  "resourceSpecification": {
    "sqs": {
      "arn": "arn:aws:sqs:region:account_id:queue_name"
    }
  },
  "name": "MySQSQueueDestination"
}

返回值中保存:

  • destinationId

步骤 4:创建 Subscription(createSubscription)

接口: POST /notifications/v1/subscriptions/{notificationType}

常见 notificationType 示例:

  • "ORDER_CHANGE"(订单状态/买家取消)
  • "ANY_OFFER_CHANGED"(包含市场过滤器)

参数示例(带过滤器):

{
  "payloadVersion": "1.0",
  "destinationId": "YOUR_DESTINATION_ID",
  "processingDirective": {
    "eventFilter": {
      "eventFilterType": "ANY_OFFER_CHANGED",
      "marketplaceIds": ["ATVPDKIKX0DER"]
    },
    "aggregationSettings": {
      "aggregationTimePeriod": "FiveMinutes"
    }
  }
}

重要说明

  • SQS 类型必须是 Standard queue,不能是 FIFO
  • 接收通知时需去重:通过 NotificationMetadata.notificationId
  • 支持重复、乱序交付,需做好幂等处理
  • ORDER_CHANGE 不支持 marketplaceIds 过滤,若需要请使用 ANY_OFFER_CHANGED

具体流程是这个文档:https://developer-docs.amazon.com/sp-api/docs/notifications-api-v1-use-case-guide

再次调用confirmShipment 或者POST_ORDER_FULFILLMENT_DATA 试试

数据格式组装不对,你先用patchlisting试一下,先把组装数据调成功了,在使用feed批量上传

你用getListing拉取一下看看是不是5天。lead_time_to_ship_max_days或者有的订单是产生在设置之前。

确认设置没有问题了,观察新产生的订单是否正常。

我们之前和销售确认过,设置之后确实有用的

upc和item_type_keyword没有关系。和recommended_browse_nodes‌算是有点关系
UPC豁免是按照分类,或者分类类型来的。

8560,大概率是你upc豁免没有成功,或者豁免的分类和刊登的不是同一个分类。你检查一下

最好的办法,你叫销售,在店铺后台刊登看看是否可以成功。排除豁免问题
然后你用代码刊登,和他测试可以成功的用同一个分类,这样子可以减少很多干扰

先确认 AmazonOrderId 正确无误

用同一个 AmazonOrderId 同时调用 getOrderItems 和 getOrderItemsBuyerInfo,对比结果。

看下返回内容格式

是整个 OrderItems 为空,还是每个 OrderItem 里 OrderItemId 为 null?

可以发下你的返回示例,我帮你分析。 或者微信私聊我,发access_token,我帮你看看

商品处理时间?指的是等待发货的天数吗? 你试试这个字段 lead_time_to_ship_max_days

可以给一些具体的例子,请求示例和请求结果,方便看问题

你用getInboundOperationStatus 这个接口试一下

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

作用:用于查询某个异步操作的处理状态,例如货件的处理进度。
支持状态:返回的状态包括 IN_PROGRESS(处理中)、SUCCESS(成功)、FAILED(失败)。
适用场景:在发起创建、确认等异步操作后,调用此API可以获取操作的最新状态。
image.png

item_type_keyword 是用来唯一标识您的产品类型的属性,通常用于描述产品的类别或特定类型。它是一个字符串类型的参数,帮助系统理解您的商品属于哪个具体类别。

传参时,您需要提供符合该产品类别的关键词。例如,如果您的产品是电子产品中的手机,item_type_keyword 可能是 "smartphone";如果是服装,可能是 "t-shirt"。
比如:

'item_type_keyword' =>

array (

0 =>

array (

'value' => 'smartphone',

'marketplace_id' => 'ATVPDKIKX0DER',

)

),

GET_MERCHANT_LISTINGS_ALL_DATA是CSV格式的。
确实有的报告是xml的,甚至是压缩包的

你需要根据,document reponse header部分解析这些,然后进一步处理

价格部分,你有传price吗,offer部分? 你发的json太长了,我没看到。

一般报价确实有两个情况:

  1. 确实没有传,会有这个报错
  2. 传了,但是刚上传上去报错。 大概要停一段时间就好了,亚马逊是异步处理的

你搜一下你传json的price部分看看或者offer

发布
问题

公众
平台

最新资讯发布