List return inventories with pagination
返品在庫
Return Inventories 一覧(ページネーション付き)
GET
List return inventories with pagination
返品在庫レコードのページング付き一覧——倉庫側のアイテム単位の状態——を返します。各レコードは、現在のハンドリング決定、RMA、SKU マッピング、倉庫割当を含む 1 件の受領アイテムを表します。
呼び出してよいタイミング(それ以外では呼ばないでください)
- 一回限りのバックフィル — 初回統合時、webhook 購読の前にローカル DB に既存の在庫を書き込むため。
- 定期的な整合性チェック — webhook 配信の漏れや順序ずれを検知するため。ローカルキャッシュとこのエンドポイントの結果を差分してください。
必須パラメータ
createFrom/createTo— どちらも必須、ISO 8601 タイムスタンプ。範囲の上限は 62 日(SearchConfig.simpleRecordsMaxDays)。それ以上はソフトエラーで拒否されます。「62 日」の正確な意味は下の ウィンドウのセマンティクス を参照してください。pageSize—1から50の間。offset— 非負整数。pageSizeと組み合わせてオフセットページングを行います。
レスポンスの注意
totalNumberOfRecords(dataと同じ階層のトップレベルフィールド)が現在のウィンドウの総件数です——ページングループの終了条件として使用してください。handlingCodeは当該アイテムの現在のハンドリング決定を表します——変更するには 返品在庫ハンドリングを更新 を呼び出してください。handlingStatusCodeはそのハンドリングの状態を表します。すべてのハンドリングステータスを取得 で変換できます。- アイテムの RMA(
rma)は倉庫が割り当てた識別子で、セラー側の参照番号ではありません。
履歴在庫のバックフィル
本エンドポイントを使って、過去に発生したすべての返品在庫レコードをローカル DB に取り込み、その後は webhook で継続的に更新します。API は 1 リクエストあたり最長 62 日に制限されているため、タイムラインを 62 日ウィンドウで遡り、各ウィンドウ内でページングを行い、アカウントの開設日まで進みます。ウィンドウのセマンティクス
ループを書き始める前に、以下 2 つのルールを把握しておいてください——これがクリーンなバックフィルと「気づかぬうちに 1 日漏らす」バックフィルの境目です。-
バリデータの規則(日単位の差):
比較前に時刻部分は切り落とされます。よって
createFrom = 2024-03-13T15:00:00Z、createTo = 2024-05-14T09:00:00Zのリクエストは有効です(May 14 − Mar 13 = 62日)。実時刻差が 62 × 24 時間より短くても問題ありません。 -
データのフィルタ(両端の日付を丸ごと含む):
つまりサーバ側は
createFromを当日00:00:00.000に、createToを当日23:59:59.999に拡張してからフィルタを適用します。したがって、1 回の有効なリクエストは連続する 63 日分のデータをカバーします(createFrom の日付の全日、createTo の日付の全日、およびその間のすべての日)。
createFrom をそのままウィンドウ N+1 の createTo として使うと、その境界日が両方の結果に現れます。これは 重複 であって 欠落 ではありません——アルゴリズムが行を漏らすことは決してなく、各ウィンドウの継ぎ目で約 1 日分を多めに取得するだけです。ローカル ストアが returnInventoryId を主キーとし UPSERT(または INSERT IGNORE)で書き込む限り、重複は自動的に解決され最終状態は完全に正確になります。
完全に重複なしで取得したい場合は、毎回 windowEnd = windowStart ではなく windowEnd = windowStart − 1 day に進めてください。各ウィンドウが重なりなく 63 日ぴったりのスライスになります。どちらの実装も正しいですが、下記のサンプルはクライアント/サーバ間の時計ずれに寛容な「継ぎ目を許容する」版を推奨デフォルトとして採用しています。
バックフィルのアルゴリズム
historyStartを決める(例: アカウント開設日)。windowEnd = now()から開始。windowStart = max(windowEnd − 62 日, historyStart)を計算。- ウィンドウ内で
offset = 0からpageSize単位でページングし、offset ≥ totalNumberOfRecordsになるまで続ける。各レコードをreturnInventoryIdを主キーとしてローカル DB に UPSERT する。 windowEnd = windowStartにして手順 3 へ戻り、windowEnd ≤ historyStartになるまで繰り返す。- 以降は
newInventoryCreatedwebhook(およびその他の在庫ライフサイクル イベント)でローカル ストアを維持。webhook のデータ欠落が疑われない限り、再バックフィルは不要です。
サンプルコード
関連
- 返品在庫の詳細を取得 — webhook がキャッシュされていない
returnInventoryIdを参照した場合に、ID で 1 件取得。 - ラインアイテム ID で返品在庫を取得 —
returnRequestLineItemIdで検索。 - 返品在庫ハンドリングを更新 — 書き込み側エンドポイント。
- すべてのハンドリングステータスを取得 と すべてのハンドリングタイプを取得 — コード → ラベルのマッピング。
- Webhooks — 在庫ライフサイクル イベントの正規チャネル。本エンドポイントを利用する前に必ず webhook を設定してください。
承認
Your API key
Your API token — keep this private
クエリパラメータ
Number of records per page (1–50)
必須範囲:
1 <= x <= 50