背景
在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
设计,并且没有明确记录,这成为开发人员常见的困惑来源。