Category Archives: ebay开发

利用ebay api获取ebay订单(1)

订单管理是ebay管家婆的核心功能之一,订单管理包括下载订单处理订单(标记已发货,留好评,上传追踪号等等),我们这里要讲的是如何利用ebay api下载ebay订单。

ebay提供了好几个api函数来获取订单,推荐使用的是GetOrders,在详细介绍这个函数的用法前,我们先讲清楚几个基本概念。

如果大家list过商品,都知道一个list要么是fixed price(一口价),要么是auction(拍卖),对于fixed price的商品,可以有好多件;对于auction的商品,只能有一件。而买家买的时候,多数情况下买一件,有时也买多件:买多件的时候他可以选择Combined Payment,就是合并付款,那么一个订单里面有好几个商品,或者他一件一件付款,那么每个商品就是一个订单,如下图所示:

基本概念:

  • 订单(Order):一个订单里面可以包含一笔交易,或者多比交易,每个订单由一个订单号(OrderID)来唯一标识。
  • 交易(Transaction):每笔交易对应于买家购买的一件商品,交易由交易号(TransactionID)来标识,每笔交易包含一个对应的商品的ItemID。
  • 商品(Item):表示用户购买的上架商品,用ItemID来标识,一个上架商品可能是多件(fixed price),也可能是一件(fixed price或者auction)。

ebay中很多操作是基于交易而非订单的,比如买家留好评:买家A买了两件商品,合并付款在一个订单里面,他留好评的时候是留两个,而不是一个,也就是每个交易留一个好评,所以我们要有一种方法来唯一标识交易。

你可能问我们刚刚说的交易号(TransactionID)不行么?答案是不行,交易号只能在一个订单里面唯一标识一笔交易,而且对于一个 list只有一件商品,买家购买完后,其交易号是0!

我们来看一个例子:

OrderID                                                     TransactionID                                ItemID

133226486015                                        1075831541017                          271157242416

133226486015                                        1075831542017                          271157242416

271157242416-1075838043017             1075838043017                          271157242416

221203982620-0                                      0                                                 221203982620

这个例子显示了三个订单:

  • 订单号133226486015有两笔交易:对应的ItemID是一致的,表示是在一个fixed price listing里面购买了两种商品。
  • 订单号271157242416-1075838043017有一笔交易。
  • 订单号221203982620-0有一笔交易,其TransactionID是0,表明该listing只有一个商品。

我们可以看到订单号有两种表示方式:

  • 没有连字符(-)的:表明这个订单里面有多比交易:
  • 有连字符的(-):表明这个订单只有一笔交易,而且订单号是 OrderID = ItemID-TransactionID

我们上面提到ebay很多操作基于交易的,对于含多笔交易的订单,怎么唯一标识里面的一个交易了?TransactionID不行,ebay引入了一个叫OrderLineItemID

OrderLineItemID = ItemID + TransactionID

每个OrderLineItemID唯一标识一个交易,对于单笔订单,这个OrderLineItemID=OrderID,而对于含多笔交易的订单,OrderLineItemID!=OrderID。

明白了基本的概念,我将在下一篇帖子里讲述如何利用GetOrders获取订单信息。