Etsy API 接入的三个坑,文档都没写清楚
美润官方
我们接 Etsy 订单时踩了三个坑,每一个文档都写错或没写:
1. x-api-key 要用冒号拼接
文档说放 keystring。实际要的是 keystring:sharedSecret,两个用冒号拼起来。
- 只发 keystring:报 Shared secret is required in x-api-key header
- 只发 secret:报 API key not found
最阴的是它在 OAuth 全部走完之后才暴露,因为换 token 那一步不用这个头。可以用 /application/openapi-ping 这个接口先测,它只认这个头、不要 token。
2. was_shipped=false 里永远包含已取消的单
取消的单永远不会发货,所以永远满足「未发货」。我们实测一家店返回的未发货单里,大部分其实是已取消的。一定要自己读 status 过滤掉 Canceled;但 Partially Refunded(部分退款)不能过滤,三件退一件还有两件要发。
3. 订单行上的 SKU 经常是空的
SKU 挂在商品规格上,订单行只给 product_id。解决办法很简单:在 Etsy 后台把每个规格的 SKU 填上,之后拉下来的订单就带 SKU 了。
另外,Etsy 返回的商品标题是 HTML 转义过的(比如 20"),显示前要解码一次。