解决eBay库存API中"USED"条件失败问题(手办品类技术解析)

本文深入分析eBay手办品类中库存API使用"USED"条件失败的技术原因,揭示UI与API枚举值不匹配问题,提供具体curl命令示例和解决方案,帮助开发者正确使用USED_EXCELLENT替代值。

背景

在eBay的手办品类中,列表用户界面仅提供两个条件选项: 全新(NEW)和已使用(USED)。 然而,当使用eBay库存API创建SKU时,直接指定"USED"会导致错误。

根本原因

根据eBay的API规范,枚举值"USED"并不存在。

UI标签 → “USED”

API期望值 → “USED_EXCELLENT”(条件ID:3000)

因此,要在API中复制UI的"USED"条件,需要使用"USED_EXCELLENT"而不是"USED"。

参考文档

  • createOrReplaceInventoryItem - 库存API
  • ConditionEnum定义

❌ 示例:使用"USED"失败

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
curl -X PUT 'https://api.ebay.com/sell/inventory/v1/inventory_item/test-sku-001' \
  -H "Authorization: Bearer DUMMY_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "condition": "USED",
    "product": {
      "title": "Dummy Action Figure",
      "description": "Dummy description for an action figure item.",
      "imageUrls": ["https://dummyurl.com/dummy-image.jpg"]
    },
    "availability": {
      "shipToLocationAvailability": {
        "quantity": 1
      }
    }
  }'

错误响应

1
2
3
4
5
6
7
{
  "errors": [
    {
      "message": "Could not serialize field [condition]"
    }
  ]
}

✅ 示例:使用"USED_EXCELLENT"成功

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
curl -X PUT 'https://api.ebay.com/sell/inventory/v1/inventory_item/test-sku-001' \
  -H "Authorization: Bearer DUMMY_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "condition": "USED_EXCELLENT",
    "product": {
      "title": "Dummy Action Figure",
      "description": "Dummy description for an action figure item.",
      "imageUrls": ["https://dummyurl.com/dummy-image.jpg"]
    },
    "availability": {
      "shipToLocationAvailability": {
        "quantity": 1
      }
    }
  }'

现在通过API的USED列表可以正确工作了。

总结

  • 在手办品类(及类似品类)中,UI只显示"全新"和"已使用",但是…
  • eBay库存API不接受"USED"
  • 相反,当列为已使用时,使用"USED_EXCELLENT"(条件ID 3000
  • 因此:
    • 全新商品 → "condition": "NEW"
    • 已使用商品 → "condition": "USED_EXCELLENT"
  • 这种不匹配源于eBay内部的ConditionEnum设计,并且没有明确记录,这成为开发人员常见的困惑来源。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计