楽天市場商品検索APIを叩いて商品情報を取得する

楽天市場商品検索APIから商品情報を取得

楽天市場商品検索API(※Rakuten Web Service SDK for PHP 利用)を用いて検索キーワード「CAMP」に該当する商品情報のリストを取得するサンプル。

<?php 
// SDKのautoload.phpを読み込み
require __DIR__ . '/vendor/autoload.php';

// パラメータ設定
$applicationId = '1234567890xxxxxxxxx';                 // アプリIDを指定
$affiliateId   = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // アフィリエイトIDを指定
$keyword       = 'CAMP';                                // 検索キーワード
$hits          = 10;                                    // 1ページあたりの取得件数
$page          = 1;                                     // 取得ページ
$imageFlag     = 1;                                     // 商品画像有無フラグ

// 楽天API RakutenRws_Clientクラスのインスタンス生成
$client = new RakutenRws_Client();
// 
$client->setApplicationId($applicationId);
$client->setAffiliateId($affiliateId);
// 
$response = $client->execute(
    'IchibaItemSearch', // 楽天市場商品検索API
    array(
      'keyword'   => $keyword,   // 検索キーワード
      'hits'      => $hits,      // 1ページあたりの取得件数
      'page'      => $page,      // 取得ページ
      'imageFlag' => $imageFlag, // 商品画像有無フラグ
    )
);

?>
<!doctype html>
<html>
<head>
  <meta charset="UTF-8">
</head>
<body>
<table>
<thead>
  <tr>
    <th>画像</th>
    <th>商品名</th>
    <th>キャッチコピー</th>
    <th>商品コード</th>
    <th>商品価格</th>
    <th>商品説明文</th>
    <th>商品URL</th>
    <th>アフィリエイトURL</th>
    <th>店舗名</th>
    <th>店舗コード</th>
    <th>店舗URL</th>
    <th>店舗アフィリエイトURL</th>
  </tr>
</thead>
<tbody>
<?php
// レスポンスが正常か確認する
if ( $response->isOk() ) {

  echo $response['count']."件見つかりました。\n";

  //var_dump($response);
  //
  foreach ( $response as $item ) {
    // 商品情報詳細を取得する
    $itemName        = $item['itemName'];               // 商品名
    $catchcopy       = $item['catchcopy'];              // キャッチコピー
    $itemCode        = $item['itemCode'];               // 商品コード
    $itemPrice       = $item['itemPrice'];              // 商品価格
    $itemCaption     = $item['itemCaption'];            // 商品説明文
    $itemUrl         = $item['itemUrl'];                // 商品URL
    $affiliateUrl    = $item["affiliateUrl"];           // アフィリエイトURL        
    $mediumImageUrls = $item["mediumImageUrls"];        // 商品画像128x128URL(最大3枚の画像)
    $imageUrls       = array();
    // 画像サイズ変換
    foreach ( $mediumImageUrls as $mediumImage ) {
      // APIから返ってくる画像サイズは 128 ですが、指定サイズを変更して大きなサイズの画像を取得することが可能でした。
      $imageUrl320  = str_replace('128', '320', $mediumImage["imageUrl"]); // 商品画像320x320URLに変換
      $imageUrls[]  = $imageUrl320;
    }
    // 店舗情報を取得する
    $shopName          = $item['shopName'];         // 店舗名
    $shopCode          = $item['shopCode'];         // 店舗コード
    $shopUrl           = $item['shopUrl'];          // 店舗URL
    $shopAffiliateUrl  = $item['shopAffiliateUrl']; // 店舗アフィリエイトURL
?>
<tr>
  <td>
    <?php foreach ( $imageUrls as $imageUrl ): ?>
    <img src="<?php echo $imageUrl; ?>" />
    <?php endforeach; ?>
  </td>
  <td><?php echo $itemName; ?></td>
  <td><?php echo $catchcopy; ?></td>
  <td><?php echo $itemCode; ?></td>
  <td><?php echo $itemPrice; ?></td>
  <td><?php echo $itemCaption; ?></td>
  <td><a href="<?php echo $itemUrl; ?>">商品URL</a></td>
  <td><a href="<?php echo $affiliateUrl; ?>">アフィリエイトURL</a></td>
  <td><?php echo $shopName; ?></td>
  <td><?php echo $shopCode; ?></td>
  <td><a href="<?php echo $shopUrl; ?>">店舗URL</a></td>
  <td><a href="<?php echo $shopAffiliateUrl; ?>">店舗アフィリエイトURL</a></td>
</tr>
<?php
    }
} else {
  // getMessage() でレスポンスメッセージを取得する
  echo 'Error:'.$response->getMessage();
}
?>
</tbody>
</table>
</body>
</html>

関連記事

動作環境情報

"エックスサーバー" スタンダード(旧X10)
"PHP" 7.4.25

コメント

タイトルとURLをコピーしました