You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ebaysdk中导入Product API?UPC查商品信息报错求助

解决eBay通过UPC获取商品全量信息的问题

我来帮你搞定这个问题——你踩的坑其实很多开发者都遇到过,咱们一步步捋清楚:

先明确错误原因

你收到的报错已经说得很直白了:

ConnectionError: 'getProductDetails: Class: RequestError, Severity: Error, Code: 2, Unsupported API call. The API call "getProductDetails" is invalid or not supported in this release.'

这个错误核心就是:getProductDetails不属于你当前使用的Trading API模块,它是Product API的专属接口,所以用Trading的Connection调用肯定会失败。下面给你几个可行的解决方案:


方案1:用Trading API自带接口完成UPC搜索+详情获取

如果你习惯用Trading API,可以用它的GetProductSearchResults接口先通过UPC找到对应商品ID,再用你熟悉的GetItem拉取全量信息。代码示例:

from ebaysdk.trading import Connection

# 初始化Trading API连接
api = Connection(devid=dev_id, certid=cert_id, appid=app_id, token=token_id, globalId="EBAY-US", config_file=None)

# 构造UPC搜索请求
search_request = {
    "ProductSearch": {
        "ProductID": {
            "Value": "#UPCNUMBER",  # 替换成你的目标UPC码
            "Type": "UPC"
        }
    },
    "IncludeSelector": "ProductDetails,ItemSpecifics"  # 指定返回商品详情和属性
}

# 执行搜索并解析结果
search_response = api.execute('GetProductSearchResults', search_request)
search_result = search_response.dict()

# 提取商品ID并调用GetItem获取全量信息
if search_result.get('ProductSearchResult'):
    # 取第一个匹配的商品ID(多结果场景可自行扩展逻辑)
    product_item_id = search_result['ProductSearchResult'][0]['Product']['ProductID']['Value']
    item_response = api.execute('GetItem', {"ItemID": product_item_id, "IncludeSelector": "All"})
    print(item_response.dict())

方案2:直接用Product API的getProductDetails接口

ebaysdk其实有专门的product子模块,你只需要切换到这个模块初始化连接就行。代码示例:

from ebaysdk.product import Connection

# 初始化Product API连接(认证参数和Trading API一致)
api = Connection(devid=dev_id, certid=cert_id, appid=app_id, token=token_id, globalId="EBAY-US", config_file=None)

# 调用getProductDetails接口
response = api.execute('getProductDetails', {
    "productDetailsRequest": {
        "dataset": {
            "UPC": "#UPCNUMBER"  # 替换成你的目标UPC码
        }
    }
})
product_details = response.dict()
print(product_details)

⚠️ 注意:要确保你的eBay开发者账号已经启用了Product API,否则会出现权限报错。

方案3:用Finding API快速获取商品基础信息

如果你只需要标题、图片、价格、属性这类基础信息,用Finding API的FindItemsByProduct更简单——它不需要用户token,只用appid就能调用:

from ebaysdk.finding import Connection

# 初始化Finding API连接
api = Connection(appid=app_id, config_file=None, siteid='EBAY-US')

# 构造UPC搜索请求
response = api.execute('findItemsByProduct', {
    'productId': {
        '@type': 'UPC',
        '#text': '#UPCNUMBER'  # 替换成你的目标UPC码
    },
    'outputSelector': ['ItemSpecifics', 'PictureURLLarge']  # 指定返回属性和大图
})
item_list = response.dict()
print(item_list)

几个关键提醒

  • 所有API都需要在eBay开发者平台提前启用,否则会调用失败
  • UPC码要保证准确,不要带空格、横杆这类多余符号
  • 不同API返回的数据结构不同,你可以通过调整IncludeSelector或outputSelector来筛选需要的字段

内容的提问来源于stack exchange,提问作者Eli Borodach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:41:08