以前に、多店舗間の在庫連携にAmazon MWS注文APIによる保留注文データの利用方法について説明しました。 今回は、Amazon MWS注文APIを使用して確定注文一覧を漏れなく取得する方法をご紹介いたします。
注文の最新情報を定期的に取得するには、ListOrdersオペレーションを使用してAmazonOrderIdを含む注文リストを取得した後、ListOrderItemsオペレーション(AmazonOrderIdパラメータを指定)を使用して各注文の商品SKUと数量を取得します。ListOrdersオペレーションを呼び出し、「保留中」から出荷および出荷通知対象となる「未出荷」に変わった注文一覧を得する場合、以下の点に注意してください。
OrderStatusを正しく指定する
正しく注文情報を取得するには、注文ステータスを適切に指定する必要があります。支払い方法が確定し、保留期間が過ぎて出荷可能になった注文を取得するには、OrderStatusパラメータにUnshippedとPartiallyShippedを両方指定しなくてはなりません。LastUpdateAfterを指定する
注文の支払い方法によって保留期間が異なるため、注文の作成日時ではなく、注文ステータスが更新された日時で絞ることが大切です。ListOrdersオペレーションを定期的に呼び出す際、LastUpdateAfterパラメータに対して、このオペレーションを前回呼び出した日時またはそれより前の日時を指定して呼び出します。※LastUpdateAfterと前回呼び出した日時がオーバラップする場合、重複を考慮したプログラムを組んでください。
※ネットワーク障害等により呼び出しが失敗した場合、LastUpdateAfterを調整して復帰後に失敗した分を再取得するなど、回復のロジックを取り入れ、取りこぼしのリスクを回避してください。
ListOrdersByNextToken
ListOrdersオペレーションのレスポンスにNextToken が返された場合、その値を指定してListOrdersByNextTokenオペレーションを呼び出し、注文一覧の次ページを取得します。NextToken が返されなくなるまでListOrdersByNextTokenオペレーションを繰り返し呼び出します。以上、確定注文を例に説明しましたが、OrderStatusパラメータの値を変更して「保留中の注文」や「キャンセルされた注文」も取りこぼしなく取得できますのでご用途に応じてお役立てください。
※ListOrders、ListOrdersByNextTokenおよびListOrderItemsオペレーションにそれぞれリクエスト数制限(スロットリング)が設定されています。2012年11月現在、最短で、約1分間に1回の間隔で注文情報の取得が可能です。注文APIの詳細については、APIリファレンスをご参照ください。