订单管理是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获取订单信息。