商品画像一括アップロードAPI

zipで圧縮した複数枚の商品画像を一括でアップロードします。
※ フロント反映はしません。別途反映処理が必要です。
※画像アップロード上限数は「10,000枚/1時間」までです。
 上限を超えた場合、エラー(429)が返却される場合があります。
 (参考)【Yahoo!ショッピング】【重要】商品データアップロードガイドラインのご案内

サンプルコード(PHP版)をご用意しています。こちらをご確認ください。

変更履歴

2024年11月12日

機能説明に画像のアップロード時の件数に制限が設定されたことを記載しました。

2022年04月08日

リクエストパラメータ「file」の説明を修正しました。

リクエストURL

本番環境
https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImagePack
テスト環境
https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImagePack

テスト用APIを利用したい場合は、こちらから利用申請をお願いします。

リクエストパラメータ

Web APIの使い方#POSTとは」をご参照ください。

パラメータ 説明
seller_id
(必須)
string ストアアカウントを指定します。
GETパラメータで渡してください。
file
(必須)
multipart/form-data zipファイルを指定します。

1回にアップロード可能なデータ容量は25メガバイト以下です。
zipに含める画像ファイルはGIFもしくはJPEG形式のみです。
画像一枚のサイズは、2MB以下です。

商品と画像を紐付けるためにはファイル名を以下のようにしてください。
商品画像:商品コード.拡張子
商品詳細画像:商品コード_(1-20).拡張子
※拡張子は、jpg または gif になります。

※2022年5月以降、拡張子「png」をご利用いただけます。
出店者様ごとに順次リリースになりますので、リリース日について告知ページにてご確認ください。

サンプルリクエストURL

https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImagePack?eller_id=teststore

サンプルリクエスト

POST /ShoppingWebService/V1/uploadItemImagePack?eller_id=teststore HTTP/1.1
Host: circus.shopping.yahooapis.jp
Authorization: Bearer <アクセストークン>

ile=(sample1.zip)

レスポンスフィールド

フィールド 説明
/ResultSet クエリーレスポンスのすべてを含みます。
/ResultSet/Result 結果
/ResultSet/Result/Status NG:失敗 OK:成功

サンプルレスポンス

<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet>
    <Result>
        <Status>OK</Status>
    </Result>
</ResultSet>

エラー

Yahoo!ショッピングで提供している全てのAPIには、共通で利用するエラーコードがあります。エラーの際には、まず始めに以下をご確認ください。

商品画像一括アップロードAPIで固有に返すエラーコードは以下をご覧ください。

商品系API共通エラーコード

コード HTTPステータスコード 説明
ed-00000 404 ページが見つかりません。
ed-00001 500 システムエラーが発生しました。
ed-00002 503 サーバがメンテナンス中です。
ed-00003 400 ストアアカウントが指定されていません。
ed-00004 400 ストアアカウントが存在しません。
ed-00005 400 ストアアカウントの指定が不正です。
ed-00006 400 反映またはアップロード中のため更新ができません。

エラーコード

コード HTTPステータスコード 説明
im-03001 400 fileは必須項目です。
im-03002 400 1回にアップロード可能なデータ容量は25メガバイトまでです。
im-03004 400 反映またはアップロード中のためアップロードができません。

サンプルコード(PHP)

<?php

  $header = [
      'Content-Type: multipart/form-data',
      'POST /ShoppingWebService/V1/uploadItemImagePack?seller_id=<ストアアカウント> HTTP/1.1',
      'Host: circus.shopping.yahooapis.jp',
      'Authorization: Bearer ' . <アクセストークン>,
  ];

  $url   = 'https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImagePack?seller_id=<ストアアカウント>';
  $param = array('file' => new CURLFile('<zipファイルのパス>'));

  // 必要に応じてオプションを追加してください。
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST,  'POST');
  curl_setopt($ch, CURLOPT_HTTPHEADER,     $header);
  curl_setopt($ch, CURLOPT_URL,            $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST,           true);
  curl_setopt($ch, CURLOPT_POSTFIELDS,     $param);

  $response = curl_exec($ch);
  curl_close($ch);

?>

利用約款

このAPIに関する利用約款はこちら

アプリケーションの管理

目次

利用のルール

開発のヒント