您的位置:首页 >Amazon MWS API教程:获取商品与非活跃数据指南
发布于2026-01-16 阅读(0)
扫一扫,手机访问

亚马逊卖家在日常运营中,经常需要获取其所有商品的详细信息,包括活跃(Active)和非活跃(Inactive)状态的商品。非活跃商品可能由于多种原因产生,例如库存不足、商品被抑制(Suppressed)、价格问题(如“潜在高价”警告)等。传统上,卖家可能会尝试使用一些MWS报告,例如GET_MERCHANT_LISTINGS_INACTIVE_DATA、GET_MERCHANT_CANCELLED_LISTINGS_DATA或GET_MERCHANT_LISTINGS_DEFECT_DATA。然而,这些报告往往无法提供所有非活跃商品的完整视图,特别是那些因“潜在高价”而处于非活跃状态的商品,在某些情况下可能无法通过这些报告完全捕获。此外,亚马逊卖家后台的“价格健康”等页面虽然能清晰展示这些商品,但并不提供直接的MWS API导出功能,这给需要自动化数据获取的卖家带来了不便。
为了克服这一挑战,我们需要利用Amazon MWS API中更全面、更通用的报告类型来获取所有商品数据。
针对获取所有商品(包括非活跃商品)的需求,以下MWS报告类型被证明更为有效:
在上述报告中,GET_MERCHANT_LISTINGS_ALL_DATA是获取全面商品列表和状态信息(包括非活跃商品)的首选。
通过Amazon MWS API获取报告通常涉及以下三个主要步骤:
以下是一个使用Python伪代码演示如何请求GET_MERCHANT_LISTINGS_ALL_DATA报告的示例:
import mws
import time
# 假设您已配置好MWS凭证,请替换为您的实际值
# marketplace_id = 'ATVPDKIKX0DER' # 示例:美国站点ID
# seller_id = 'YOUR_SELLER_ID'
# aws_access_key_id = 'YOUR_AWS_ACCESS_KEY_ID'
# mws_auth_token = 'YOUR_MWS_AUTH_TOKEN'
# secret_key = 'YOUR_SECRET_KEY'
# 初始化 Reports API 客户端
# reports_api = mws.Reports(
# aws_access_key_id=aws_access_key_id,
# secret_key=secret_key,
# seller_id=seller_id,
# mws_auth_token=mws_auth_token
# )
def get_all_listings_report(reports_api_client, marketplace_id):
"""
请求并下载 GET_MERCHANT_LISTINGS_ALL_DATA 报告。
Args:
reports_api_client: 已初始化的 mws.Reports 客户端实例。
marketplace_id: 目标亚马逊市场的ID。
Returns:
str: 报告保存的文件名,如果失败则返回 None。
"""
report_type = '_GET_MERCHANT_LISTINGS_ALL_DATA_'
try:
# 1. 请求报告
print(f"请求生成报告: {report_type}...")
request_report_response = reports_api_client.request_report(
report_type=report_type,
marketplaceids=[marketplace_id]
)
# 从响应中提取 ReportRequestId
request_id = request_report_response.parsed['ReportRequestInfo']['ReportRequestId']['value']
print(f"报告请求ID: {request_id}")
# 2. 轮询报告状态,直到报告生成完成
report_id = None
while report_id is None:
print("等待报告生成中,请稍候...")
time.sleep(60) # 每60秒检查一次报告状态
get_report_request_list_response = reports_api_client.get_report_request_list(
reportrequestids=[request_id] # 使用 ReportRequestId 查询
)
report_request_info = get_report_request_list_response.parsed['ReportRequestInfo']
if 'ReportId' in report_request_info:
report_id = report_request_info['ReportId']['value']
print(f"报告已生成,报告ID: {report_id}")
elif report_request_info['ReportProcessingStatus']['value'] == '_CANCELLED_':
print("报告请求被取消。")
return None
elif report_request_info['ReportProcessingStatus']['value'] == '_DONE_NO_DATA_':
print("报告已生成,但无数据。")
return None
else:
print(f"报告处理状态: {report_request_info['ReportProcessingStatus']['value']}")
# 3. 获取报告内容
print(f"下载报告内容 (报告ID: {report_id})...")
get_report_response = reports_api_client.get_report(report_id=report_id)
report_content = get_report_response.parsed # 报告内容通常是字符串
# 将报告内容保存到文件
file_ 上一篇:财务软件新增科目操作教程
下一篇:《逆战:未来》竞技任务玩法详解
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9