卖家账户故障排除
了解如何排除和解决卖家账户中的 API 错误。
本主题介绍在遇到 API 错误时如何对卖家账户进行故障排除。使用以下故障排除方法可以帮助追踪错误并在 SP-API 和卖家平台之间成功传输 API 调用。
销售合作伙伴 API 提供错误消息,帮助您追踪错误。账户问题和不正确的 API 调用都可能导致错误。在以下示例中, 400
的错误响应 createFeed
操作是由非活动账户问题引起的。
{
"errors": [
{
"code": "InvalidInput",
"message": "Invalid request parameters",
"details": ""
}
]
}
错误代码 | 原因 | 解决步骤 |
---|---|---|
400 | 来自的回应 | 卖家必须检查其在该商城的账户状态。请注意, |
对 API 错误进行故障排除
当你收到 API 错误消息时,你需要确定这是否是由账户问题引起的。检查以下条件:
- 请求本身是否有问题?
- 所有卖家是否都有同样的问题?
- 卖家在指定商城是否处于活动状态?
以下流程图可以帮助您确定最合适的行动方案。
确定 API 错误的原因
当您收到 API 错误并且错误消息中包含的信息不足以帮助立即检测问题时,首先要检查的是 HTTP 状态码。状态码为 200
表示 API 调用成功。如果状态码是 400
或 500
类,则表示 API 调用失败。
例如,getOrders
API 返回 200
类,但响应是空列表。在这种情况下,API 调用成功。
要获取正确的 API 响应,请检查相关的请求参数。例如,检查查询参数中指定的日期范围是否应该没有订单。
这个 500
类显示内部服务器错误,表明亚马逊服务器未能完成请求。但是,对于某些特定的 API,例如 getListingOffersBatch
操作,如果请求正文中存在错误的 URI 参数,则响应为 500
而不是 400
。
以下技术论文涵盖了与以下内容相关的故障排除和优化策略 429
和 403
HTTP 状态码:
如果你仍然有问题,请检查你的角色和代币。
步骤 1:检查角色和令牌
确认错误后,如果错误代码和消息未提供解决方案,请咨询工程团队,以确定最近的任何代码更改是否可能导致 API 调用失败。检查角色和代币参数,尤其是在使用新 API 时。
Roles
检查角色参数时,请确保应用程序具有 正确的角色 用于 API 调用。例如,一些针对品牌所有者的分析报告(例如 GET_BRAND_ANALYTICS_ALTERNATE_PURCHASE_REPORT
报告(可在北美、欧盟和欧洲自由地区提供)要求 品牌分析的角色。此外,请确保该角色同时应用于开发者个人资料和应用程序,或者 403
可能会出现错误。
访问令牌
接下来,检查访问令牌。根据 API 请求的类型,有三种主要的访问令牌类型。
- 访问令牌
访问令牌是 SP-API 调用中最常用的访问令牌。如果您在 LWA
操作的查询参数中包含 refreshToken
密钥,则访问令牌将出现在响应中。
- 用于无授权操作的访问令牌
无授权操作的访问令牌仅用于 grantless operations
。
请务必在 LWA operation
的查询参数中包含 scope
参数,并指定 SCOPE_NOTIFICATIONS_API
用于 Notifications
API 或 SCOPE_MIGRATION_API
用于 Authorization
API。
- 受限数据令牌
受限数据令牌 (RDT) 仅用于获取个人身份信息 (PII) 数据,例如配送地址、买家姓名或税务相关信息。
RDT 只能通过 Tokens
API 获取。例如,如果开发者需要从 getOrders
API 响应中获取配送地址信息,则开发者应首先使用访问令牌通过 Tokens
API 请求 RDT,然后使用响应中的 RDT 作为访问令牌来调用 getOrders
API。
在采用新的 API 时,最佳做法是使用 Postman,并从使用最少参数的简单 API 调用开始。如果可能,仅使用必需的参数。确保 API 调用成功,然后逐一添加选项以避免可选参数发生冲突。
检查角色和令牌后,检查路径。
步骤 2:检查路径
通过检查路径,您可以区分错误是否源于卖家账户问题。
为了确定卖家是否收到同样的错误,我们建议不断记录每个 HTTP 请求的以下内容。
- 资源路径
- 状态码
- 错误消息
- 卖家 ID(卖家 ID)
- 商城 ID
通过记录这些信息,您正在创建可以随时查看的记录,以帮助您识别账户存在的问题。此商城信息用于 第 3 步。
发生错误时,检查 API 资源路径以确定 API 操作,然后筛选出该资源路径的日志,以确定有多少卖家处于错误状态。
如果服务出现后端问题,则所有卖家都会返回错误。如果只有一个卖家或有限的卖家群体遇到该问题,则该错误消息表示存在账户问题。如果只有部分卖家收到错误消息,则需要进行更多调试才能找到问题。通过比较同一错误的出现次数,您可以大致确定下一个故障排除步骤是否是继续 第 3 步 或者联系卖家。
步骤 3:确定受影响的商城
最后一步是检查哪个 市场 卖家为导致错误的账户参与。
API 调用失败可能源于卖家向您提供的账户信息不正确。为避免这种情况,请使用 getMarketplaceParticipations
操作以确定卖家正在参与哪些市场。
如果您看到以下任何回复,请与卖家核对他们在该商城的账户,或要求他们重新授权:
403
+Unauthorized
。- 响应中未包含预期的商城。
- 的价值
isParticipating
这个市场中的字段是false
。
远东 (FE) 地区的响应示例:
{
"payload": [
{
"marketplace": {
"id": "A1VC38T7YXB528",
"countryCode": "JP",
"name": "Amazon.co.jp",
"defaultCurrencyCode": "JPY",
"defaultLanguageCode": "ja_JP",
"domainName": "www.amazon.jp (http://www.amazon.jp/)“
},
"participation": {
"isParticipating": true,
"hasSuspendedListings": false
}
},
{
"marketplace": {
"id": "A1VN0HAN483KP2",
"countryCode": "JP",
"name": "Non-Amazon",
"defaultCurrencyCode": "JPY",
"defaultLanguageCode": "ja_JP",
"domainName": "jp-shipment-injection.stores.amazon.co.jp"
},
"participation": {
"isParticipating": true,
"hasSuspendedListings": false
}
}
]
}
您还应检查 API 是否适用于商城,尤其是报告 API 、上传数据 API 和通知 API 操作,因为并非所有资源路径都适用于每个商城。
要确定 API 支持哪个商城,请参阅上传数据类型、报告类型和通知类型文档。
帮助防止账户问题的一种方法是设置 API 来帮助您监控账户。
使用 API 防止账户出现问题
在进行 API 调用之前了解卖家是否存在账户问题有助于防止不必要的 API 错误。您可以请求两个 API 来监控账户的状态。
-
ACCOUNT_STATUS_CHANGED
通知类型 API
每当卖家/商城对的账户状态发生变化时,都会发送通知。通过实施此通知类型,每当卖家的账户状态在NORMAL
、AT_RISK
或DEACTIVATED
之间发生变化时,开发者都会收到通知。如果收到通知currentAccountStatus
不是NORMAL
,请前往卖家平台的 “卖家账户信息”。 -
GET_V2_SELLER_PERFORMANCE_REPORT
举报
此报告类型包含来自卖家平台账户状况控制面板的个人绩效指标数据。我们提供的响应与以下示例类似。但是,你一定不能依赖这种格式。
{
"accountStatuses":[
{
"marketplaceId":"A1VC38T7YXB528",
"status":"NORMAL"
}
],
"performanceMetrics":[
{
"lateShipmentRate":{},
"invoiceDefectRate":{},
"orderDefectRate":{
"afn":{},
"mfn":{}
},
"onTimeDeliveryRate":{},
"validTrackingRate":{},
"preFulfillmentCancellationRate":{},
"warningStates":[],
"accountHealthRating":{},
"listingPolicyViolations":{},
"productAuthenticityCustomerComplaints":{},
"productConditionCustomerComplaints":{},
"productSafetyCustomerComplaints":{},
"receivedIntellectualPropertyComplaints":{},
"restrictedProductPolicyViolations":{},
"suspectedIntellectualPropertyViolations":{},
"foodAndProductSafetyIssues":{},
"customerProductReviewsPolicyViolations":{},
"otherPolicyViolations":{},
"documentRequests":{},
"marketplaceId":"A1VC38T7YXB528"
}
]
}
定期调用 GET_V2_SELLER_PERFORMANCE_REPORT
并检查 performanceMetrics
对象的第一级。它包括账户指标,而且每个指标都包含状态信息。
如果有任何指标未处于 GOOD
状态,请在卖家平台查看卖家账户状态以获取更多信息。有关采用此 API 的更多信息,请查看《报告 API 用户指南》。
通过将 ACCOUNT_STATUS_CHANGED
和 GET_V2_SELLER_PERFORMANCE_REPORT
API 与 Sellers API
结合使用,您可以确定卖家参与了哪些商城,账户在该商城中是否处于活动状态,以及是否有任何账户表现不佳的迹象。
以下流程图概述了在防止出现账户问题方面系统设计的最佳实践。
Updated 8 months ago