エラーレスポンス#
| HTTP ステータス | 意味 | 推奨する対応 |
|---|---|---|
400 Bad Request | リクエスト本文またはクエリパラメータが無効です。 | リクエストを修正してから再試行してください。 |
401 Unauthorized | 認証情報が未指定、無効、期限切れ、または非アクティブです。 | 認証ヘッダーを確認するか、Ideal House に連絡してください。 |
403 Forbidden | 要求した shopId が認証情報に関連付けられていません。 | 認証情報に割り当てられた Shop ID を使用してください。 |
404 Not Found | インポートステータス、または一致する商品が見つかりません。 | Shop ID と、要求した商品 ID または SKU を確認してください。 |
409 Conflict | ショップで別のインポートジョブが実行中です。 | 現在のインポートジョブが終了するまで待ってください。 |
429 Too Many Requests | リクエストの頻度が高すぎます。 | 待機時間を指数関数的に延ばし、ランダムな揺らぎを加えて再試行してください。 |
500 Internal Server Error | サービスで予期しないエラーが発生しました。 | 待機時間を指数関数的に延ばして再試行してください。エラーが続く場合は Ideal House に連絡してください。 |
502 Bad Gateway または 503 Service Unavailable | API を一時的に利用できません。 | 待機時間を指数関数的に延ばして再試行してください。 |
検証エラーでは、次の形式が使用される場合があります。
{
"message": ["shopId should not be empty"],
"error": "Bad Request",
"statusCode": 400
}
message のテキストは変わる場合があります。プログラムの判定処理には、HTTP ステータスコードと、仕様に記載されたレスポンスフィールドを使用してください。
再試行と復旧の指針#
- ジョブが
pendingまたはrunningの間は、2~5 秒ごとにポーリングしてください。 429、500、502、503のレスポンスには、待機時間を指数関数的に延ばしてランダムな揺らぎを加え、再試行回数に上限を設定してください。400、401、403のレスポンスは、リクエストまたは認証情報を修正せずに自動再試行しないでください。409の後は、実行中のジョブがcompletedまたはfailedに達するまで待ってください。- レスポンスを受け取る前に送信がタイムアウトした場合は、バッチを再送信する前にステータスエンドポイントを照会してください。
- インポートは作成または更新の動作を行うため、同じ商品を同じ SKU で安全に再試行できます。
- 商品ごとの失敗があるジョブが完了した後は、失敗した商品だけを含む新しいバッチを送信してください。
- ジョブ全体の失敗が起きても、
successCountに数えられた商品はすでに更新されている場合があります。同じ SKUs で元のバッチを安全に再送信できます。 - リクエストが
503を返しても、削除はすでに実行されている場合があります。同じ削除リクエストを安全に再試行できます。
ステータスエンドポイントは、実行中または最新のジョブを追跡するためのもので、恒久的なインポート履歴用ではありません。照合とサポートのため、送信したバッチ、jobId、ステータスのレスポンス、最終結果を自身のシステムに保存してください。
本番運用チェックリスト#
- Client Secret はシークレット管理サービス、または保護されたサーバー環境に保存してください。
- 各商品に固定の一意な SKU を使用してください。
- リクエストごとの商品数を 500 件以下にしてください。
- 画像の URLs が公開アクセス可能であり、処理中も利用可能な状態を保つことを確認してください。
- 画像の前処理が必要で、画像ごとの処理料金 1 クレジットを了承する場合にのみ、
processImages: trueを明示的に設定してください。それ以外は省略するかfalseに設定してください。 - 床材画像の分割を有効にするには、
processImagesとprocessFloorImagesの両方をtrueに設定してください。 - すべての商品に
name、imageUrl、productUrl、width、height、対応するproductTypeを指定してください。 statusを指定する場合は、active、inactive、out_of_stock、invalidのいずれかに設定してください。- 寸法は対応する単位付きの正の値として送信してください。単位を省略するとインチを使用します。保存時に値はインチに統一されます。
- 返された
jobIdを保存し、後続のステータスレスポンスと比較してください。 completedでfailedCount > 0の場合は部分的な成功として扱ってください。- 上限なしのカタログを要求せず、商品一覧をページ単位で取得してください。
- 削除操作では
productIdまたはskuのどちらか一方だけを指定してください。 - 待機時間を指数関数的に延ばし、ランダムな揺らぎを加えた、上限のある再試行を実装してください。
認証情報、導入時に提供される値、商品タイプの対応付け、継続する連携の問題については、Ideal House の連携担当者に連絡してください。