2026年5月13日から「世界標準規格対応」や「セキュリティ向上」のために、楽天APIが新しくなります。
ブログ運営で関係あるものといえば、物販神プラグインでおなじみのRinker。
しかし、公式からアップデートがありません…。
完全移行日が近づくにつれ、不安が大きくなり…。
ついに自分でRinkerを楽天新API対応できるようにカスタマイズしてしまいました!

同じ状況で困っている方、きっと多いはず!
導入方法については、図をたくさん使用して説明していますので、初めての方でもわかりやすいかと思います。
それでは一緒にやっていきましょう!
概要
楽天新APIによって、アクセスキー/リファラの送信が必須になりました。
さらに、APIのデータ構造も少し変更されたので、Rinkerもそれに対応する必要があります。





Rinker公式から音沙汰がないため、
「勝手にカスタマイズで対応しちゃおう!」
ということです。
そのうち公式から正式に更新があると思いますので、それまでの「繋ぎ」や「カスタマイズのヒント」としてご活用頂ければと思います。
また、楽天新APIのパラメータ詳細はこちらの公式ドキュメントを参考にしてください。
プラグイン変更手順
まず、作業の全体の流れは次のとおりです。
① バックアップ
② 定数の追加
③ 入力フォーム追加
④ API処理の書き換え
⑤ ファイルをアップロード
⑥ 動作確認





項目としては多めですが、コードをコピペするだけの簡単な作業です。一緒にがんばってやっていきましょう!
用意するもの
本サイトの説明では、以下の紹介しているソフトを使用して解説しています。
メモ帳:Notepad++がおすすめ


Windows標準のメモ帳でも編集は可能ですが、プログラム編集には向いていません。
しかし「Notepad++」を使えば、行数表示だけでなく、文字列・関数ごとに自動に色をつけてくれるので、とっても見やすくなります。公式サイトは英語ですが、ソフトはしっかり日本語に対応していて、誰でも無料で利用できます。
FTPツール:FileZillaがおすすめ


高機能なFTPツールですが、使い方が少し分かりにくいので、こちらの記事を参考にしてください。こちらも公式サイトは英語表記ですが、ソフトは日本語で操作可能です。もちろん無料で使えます。
Rinkerプラグインのバックアップ
まず初めに、もしものときに備えてRinkerプラグインをバックアップを実施します。





もしバックアップをしていなくても、再度公式サイトからプラグインをダウンロードすれば修復可能ですので、安心してください!
- 1バックアップ用のフォルダを作成する
今回はわかりやすくするために「デスクトップ」に作成します。


- 2FTPソフトで自分のサイトに接続する
FTPソフトの設定については、こちらの記事を参考にしてください。
自分のサイトに接続後、以下のフォルダにアクセスしてください。
左窓(PC側):先ほど作成した「backup」フォルダ
右窓(サーバー側):プラグインフォルダ「yyi-rinker」

- 3プラグインフォルダを丸ごとコピーする
右窓の「yyi-rinker」フォルダを右クリック後、「ダウンロード」をクリックします。
しばらくすると、画面右下に「転送完了」ウインドウが表示されます。


先ほど作成したフォルダにアクセスして、ダウンロードしたプラグインフォルダがあるかどうか確認します。


Rinkerプラグインのバックアップ作業は、以上となります。
編集用ファイルをコピーする
先ほどバックアップしたフォルダから、編集に使用するファイルをコピーします。


各ファイルの役割ですが、以下のようになっていました。
yyi_rinker_abstract.php:定数の管理
yyi_rinker_main.php:メインプログラム
setting-form.php:WordPress管理画面内の設定画面





頭の片隅に入れておくと、理解しやすいかも…!?
定数追加
アクセスキー/リファラの定数追加し、データベース上で管理します。
- 1Notepad++でyyi_rinker_abstract.phpを開く
「Notepad++」を起動後、ウインドウに直接phpファイルをドラッグ&ドロップします。


- 2定数を用意する
170行目を改行後、以下のコードをコピーして追記します。
コードをコピーする際は、アイコンをクリックすると楽できます。


const RAKUTEN_ACCESS_KEY = 'rakuten_access_key'; const RAKUTEN_REFERER_URL = 'rakuten_referer_url';

- 3定数のパラメータを設定する
252行目を改行後、以下のコードをコピーして追記します。
self::RAKUTEN_ACCESS_KEY => [ 'value' => NULL, 'is_bool' => false, 'is_digit' => false, ], self::RAKUTEN_REFERER_URL => [ 'value' => NULL, 'is_bool' => false, 'is_digit' => false, ],

- 4phpファイルを保存して閉じる
Ctrl+Sで保存後、ファイルを閉じます。




「yyi_rinker_abstract.php」のカスタマイズは、以上となります。
入力フォーム追加
WordPress管理画面上のRinker設定ページをカスタムします。
変更内容は「アクセスキー」と「リファラ」の入力欄になります。
- 1Notepad++でsetting-form.phpを開く
「Notepad++」を起動後、ウインドウに直接phpファイルをドラッグ&ドロップします。


- 2入力欄を追加するコードを書き足す
197行目を改行後、以下のコードをコピーして追記します。
<h4>アクセスキー</h4> <table class="form-table"> <tbody> <tr> <th> <label for="rakuten_access_key_form">アクセスキー</label> </th> <td> <input id="rakuten_access_key_form" type="text" name="rakuten_access_key" value="<?php echo esc_attr($this->array_get($params, 'rakuten_access_key', '')); ?>" /> </td> </tr> </tbody> </table> <h4>リファラーURL</h4> <p>楽天アプリで登録した「許可されたWebサイト」と同じURLを入力してください。</p> <table class="form-table"> <tbody> <tr> <th> <label for="rakuten_referer_url_form">リファラーURL</label> </th> <td> <input id="rakuten_referer_url_form" type="text" name="rakuten_referer_url" value="<?php echo esc_attr($this->array_get($params, 'rakuten_referer_url', '')); ?>" /> </td> </tr> </tbody> </table>

- 3phpファイルを保存して閉じる
Ctrl+Sで保存後、ファイルを閉じます。




※画像は「yyi_rinker_abstract.php」 「setting-form.php」のカスタマイズは、以上となります。
変数に値を格納
最後に「yyi_rinker_main.php」のカスタマイズとなります。
このファイルは変更箇所が多数ありますので、がんばって変更していきましょう!
- 1Notepad++でyyi_rinker_main.phpを開く
「Notepad++」を起動後、ウインドウに直接phpファイルをドラッグ&ドロップします。


- 2変数を用意する
63行目を改行後、以下のコードをコピーして追記します。
public $rakuten_access_key = ''; public $rakuten_referer_url = '';

- 3入力フォームに入力した内容を変数に入れる
103行目を改行後、以下のコードをコピーして追記します。
$this->rakuten_access_key = get_option( $this->option_column_name( self::RAKUTEN_ACCESS_KEY ) ); $this->rakuten_referer_url = get_option( $this->option_column_name( self::RAKUTEN_REFERER_URL ) );

変数関連は、以上となります。
ファイルは閉じずに、引き続き別の内容を編集していきます。
商品検索プログラムを新API用に変更
これが、今回一番大きく変更したポイントです。
- 1商品検索プログラムを変更する
まずは、元々あるプログラムをコメントアウト(無効化)します。
3,129行~3,152行を選択後、Ctrl+Kでコメントアウトします。


※画像をクリックすると拡大できます 











コメントアウトの手順はエディタごとに異なるため、環境に合わせて読み替えてください。
3,153行目を改行後、以下のコードをコピーして追記します。
if ( strlen( trim( $keywords ) ) === 0 ) { return ['error' => [ 'code' => '', 'message_jp' => '正しいキーワードを入力してください' ] ]; } $uri = 'https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20220601'; // リファラーURLの形式をチェック $formatted_referrer = trim($this->rakuten_referer_url); // 空白を除去 $formatted_referrer = ($formatted_referrer && !str_starts_with($formatted_referrer, 'http')) ? "https://$formatted_referrer" : $formatted_referrer; $params = [ 'applicationId' => $this->rakuten_application_id, 'accessKey' => $this->rakuten_access_key, 'affiliateId' => $this->rakuten_affiliate_id, 'formatVersion' => 2, 'hit' => 30, 'referrer' => $formatted_referrer, 'page' => max(1, intval($page)), 'sort' => $this->rakuten_sort($sort), ]; if ( $is_itemcode ) { $params['availability'] = 0; $params['itemCode'] = trim($keywords); } else { $params['availability'] = 1; $params['keyword'] = trim($keywords); } $request_url = $uri . '?' . http_build_query($params); //デバッグ用 echo "<script>console.log('Rakuten URL: " . esc_js($request_url) . "');</script>"; $response = wp_remote_get( $request_url, array( 'timeout' => 30, 'headers' => array( 'Referer' => $formatted_referrer, 'Origin' => $formatted_referrer, ), ) );

※画像をクリックすると拡大できます - 2データ階層を変更する
新APIでは商品データの取得パスが簡素化されましたので、それに伴ってプログラムも合わせる必要があります。
旧:items[0].item.itemName
新:items[0].itemName











itemという階層が不要になりました。
3,231~3,308行を先ほど同様、コメントアウト(無効化)します。


※画像をクリックすると拡大できます 3,309行目を改行後、以下のコードをコピーして追記します。
if ( isset( $datas[ 'Items' ]) ) { $item = []; foreach( $datas[ 'Items' ] AS $data ) { if ( $is_itemcode ) { $item[ self::PRICE_COLUMN ] = $data['itemPrice']; $item[ self::PRICE_AT_COLUMN ] = date_i18n( 'Y/m/d H:i:s' ); $item[ self::RAKUTEN_TITLE_URL_COLUMN ] = $data['affiliateUrl']; $item[ self::IMAGE_S_SIZE_W_COLUMN ] = 64; $item[ self::IMAGE_S_SIZE_H_COLUMN ] = 64; $item[ self::IMAGE_M_SIZE_W_COLUMN ] = 128; $item[ self::IMAGE_M_SIZE_H_COLUMN ] = 128; $item[ self::IMAGE_L_SIZE_W_COLUMN ] = ''; $item[ self::IMAGE_L_SIZE_H_COLUMN ] = ''; $items[] = $item; break; } // メイン画像のデータを追加 foreach( $this->variant_images AS $column => $marks) { $item[ $column ] = []; } $item[ self::TITLE_COLUMN ] = $data['itemName']; $item[ self::RAKUTEN_ITEMCODE_COLUMN ] = $data['itemCode']; $item[ self::RAKUTEN_TITLE_URL_COLUMN ] = $data['affiliateUrl']; if (isset( $data['smallImageUrls'][0] )){ $item[ self::IMAGE_S_COLUMN ] = $data['smallImageUrls'][ 0 ]; foreach($data[ 'smallImageUrls' ] AS $image) { $item[ self::S_VARIANT_IMAGES_COLUMN ] []= [ 'url' => $image, 'w' => 64, 'h' => 64, ]; } } else { $item[ self::IMAGE_S_COLUMN ] = ''; } if (isset( $data[ 'mediumImageUrls' ][ 0 ] )){ $item[ self::IMAGE_M_COLUMN ] = $data['mediumImageUrls'][ 0 ]; foreach($data[ 'mediumImageUrls' ] AS $image) { $item[ self::M_VARIANT_IMAGES_COLUMN ][] = [ 'url' => $image, 'w' => 128, 'h' => 128, ]; } } else { $item[ self::IMAGE_M_COLUMN ] = ''; } $item[ self::IMAGE_L_COLUMN ] = ''; $item[ self::BRAND_COLUMN ] = ''; $item[ self::PRICE_COLUMN ] = $data['itemPrice']; $item[ self::AMAZON_URL_COLUMN ] = $this->generate_amazon_original_link( $keywords ); $item[ self::RAKUTEN_URL_COLUMN ] = $this->generate_rakuten_original_link( $keywords ); $item[ self::YAHOO_URL_COLUMN ] = $this->generate_yahoo_original_link( $keywords ); $item[ self::MERCARI_URL_COLUMN ] = $this->generate_mercari_original_link( $keywords ); $item[ self::IMAGE_S_SIZE_W_COLUMN ] = 64; $item[ self::IMAGE_S_SIZE_H_COLUMN ] = 64; $item[ self::IMAGE_M_SIZE_W_COLUMN ] = 128; $item[ self::IMAGE_M_SIZE_H_COLUMN ] = 128; $item[ self::IMAGE_L_SIZE_W_COLUMN ] = ''; $item[ self::IMAGE_L_SIZE_H_COLUMN ] = ''; //楽天市場のみ $item[ 'affiliateRate' ] = $data['affiliateRate']; $item[ 'reviewAverage' ] = $data['reviewAverage']; foreach( $this->variant_images AS $column => $marks) { $item[ $column ] = json_encode($item[ $column ]); } $items[] = $item; } } } return $items; }

※画像をクリックすると拡大できます - 3phpファイルを保存して閉じる
Ctrl+Sで保存後、ファイルを閉じます。




※画像は「yyi_rinker_abstract.php」 「yyi_rinker_main.php」のカスタマイズは、以上となります。
サーバー上のphpファイルを上書きする
プログラムのカスタマイズは完了したので、後は上書きするだけです。
- 1FTPソフトで自分のサイトに接続する
- 2編集したphpファイルをアップロードする
画像のように2ファイルを選択後、右クリックして「ダウンロード」をクリックします。


ファイルの上書き確認が表示されるので、「上書き」にチェックをしてからOKをクリックします。














2ファイルあるので、2回確認ウインドウが表示されます。
次に、右窓で「parts」フォルダを選択後、左窓のsetting-form.phpを「右クリック→アップロード」の順にクリックします。


先ほどと同じように上書き確認が表示されるので、「上書き」にチェックをしてからOKをクリックします。


これで、サイトのRinkerプラグインデータが更新されました。
動作確認
実際に楽天新APIの「アクセスキー」と「リファラ」を作成したフォームに入力して、動作確認を実施します。
- 1WordPressのRinker設定ページにアクセスする
ブラウザからWordPressの管理画面にアクセスし、Rinkerプラグインの管理画面にアクセスします。


- 2フォームに必要事項を入力する
「setting-form.php」のカスタムが成功していれば、フォームが追加されています。
Rakuten Web Serviceにログインして、必要情報をコピーしてから各フォームに貼り付けてください。


※画像をクリックすると拡大できます 











リファラは「https://domain.com」の形に補完して、APIに送信しています。


ページ最下の変更を保存をクリックして、設定を完了させます。
- 3適当に新規商品を作成する
商品は何でも良いので、商品を新規作成します。


例では「お茶」で作成しています。


- 4新規記事(テストページ)を作成し、Rinkerを配置する
テストページを作成して、先程作成した商品を配置し、新しいタブでプレビューします。


楽天ボタンをクリックし、正常にショップへアクセスできるか確認してください。


- 5商品情報の再取得をONにする
動作に問題がなければ、過去に掲載している商品のURLを更新するために、商品情報の再取得をONにして、変更を保存します。














自動更新をOFFで運営している方は、1日経過後に再度OFFにしてください。
- 6楽天アフィリエイトの管理画面で動作確認する
まとめ
ここまで読んで頂き、ありがとうございます。
いかがでしたでしょうか。
もうすぐ楽天新APIに完全移行の時期なので、ぜひカスタマイズにチャレンジしてください。





Rinker公式からアップデートがあればいいのですが…。
不明な点がございましたら、気軽にお問い合せフォームよりご連絡をお願いします。できる限りサポートさせて頂きます。
それではまた会いましょう!






コメント