APIによる出品・受注管理

APIで出品商品や受注データの取得管理方法について紹介します。

用語説明

eBayの用語で、受注管理に関する主なものは次の通りです。
項目 説明
Item 出品した商品
Order 受注情報(落札情報):商品が購入されるとTransactionのインスタンスになり、1つ以上のTransactionをまとめたコンテナのインスタンスがOrderとなる。
Transaction 受注明細を意味し、Order と Transaction は1対Nの関係

取得可能な情報

受注管理をするにあたり、取得して参照する頻度が高いものは次の通りです。
項目 説明
出品状況 入札数、出品期間等
受注(落札)状況 受注情報、受注処理状況、受注明細等
支払状況 PayPal支払ステータス等

API呼び出し

出品一覧

出品した商品の一覧を取得するためには、GetMyeBaySellingが適切です。 出品中、落札、削除済み、販売済みなど、様々な一覧の取得が可能です。 注意点として、取得件数が最大25,000点までの制限があるため、出品数が25,000を超える場合は、GetSellerListを使う必要があります。 GetSellerListは、出品した商品を期間指定で取得する仕様になっており、取得件数の制限はありません。

受注(落札)一覧

販売済みの商品一覧を取得するには、GetOrdersが適しています。 この関数は、更新日時の範囲指定でフィルタリングをすることができるので、定期的に取得し、受注データをためていく事が可能です。

入金済み受注一覧

受注情報の入金状況を確認するには、GetOrdersを実行した結果から、当該受注情報の状況が
  • Order.CheckoutStatus.eBayPaymentStatus = NoPaymentFailure
  • Order.CheckoutStatus.Status = Complete
であることを確認します。 なお、キャンセルされた受注かどうかは、OrderArray.Order.CancelStatusで判断する必要があります。

未発送の受注一覧

発送済みの受注の場合、ShippedTimeとフィールドの発送時刻がセットされます。この発送時刻がない場合、未発送として判断されます。 なお、入金済みと未発送の条件を合わせると、発送待ちの受注を絞ることが可能です。

追跡番号(Tracking Number)を更新

eBayでは、商品発送時に発送状況が確認できるよう、追跡番号(Tracking Number)を登録することが求められます。 追跡番号登録専用のAPIコールではありませんが、CompleteSaleを利用して追跡番号が登録できます。 ItemIDとTransactionIDを指定して、Shipmentコンテナの必要なフィールドを入力します。
<?xml version='1.0' encoding='utf-8'?>
<CompleteSaleRequest xmlns='urn:ebay:apis:eBLBaseComponents'>
  <WarningLevel>High</WarningLevel>
  <ItemID>110043584632</ItemID>
  <TransactionID>24727824001</TransactionID>
  <Paid>true</Paid>
  <Shipped>true</Shipped>
  <Shipment>
    <ShipmentTrackingDetails>
      <ShipmentTrackingNumber>11111111112222222222333333333344
      </ShipmentTrackingNumber>
      <ShippingCarrierUsed>UPSGround</ShippingCarrierUsed>
    </ShipmentTrackingDetails>
    <ShippedTime>2010-02-18T11:17:47.432Z</ShippedTime>
  </Shipment>
  <RequesterCredentials>
<eBayAuthToken>****</eBayAuthToken>
  </RequesterCredentials>
</CompleteSaleRequest>
... 
詳細は、英語のKnowledge Baseを参照下さい。

ページング(Pagination)について

Trading APIは、一度のコールで全てのデータを一括取得することができません。代わりにページングの概念があり、1回の問い合わせあたり200件のデータを取得可能であり、全データを取得するには、全ページ数分の問い合わせが必要となります。
【設定例】... 検索結果を1ページあたり200行に分割し、その2ページ目を返す。

<Pagination>
  <EntriesPerPage>200</EntriesPerPage>
  <PageNumber>2</PageNumber>
</Pagination>