
亚马逊卖家在日常运营中,经常需要获取其所有商品的详细信息,包括活跃(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_以上就是Amazon MWS API:全面获取商品列表与非活跃商品数据的教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号