農場主の日常

なんちゃってエンジニアの日常をつらづらと

楽天商品情報表示プラグイン NP_Rakuten の調整

 先日行った、Amazonの画像が出ていない件について、表示を楽天のものに差し替えることで対処した。
Amazon APIの仕様変更への対応【農場主の日常】

 楽天の商品の表示には、Amazonの表示プラグインNP_Amazonをベースに自作したNP_Rakutenを使っているのだけれど、画像の取得周りでうまく動いていない部分があった。
 その修正を完了したので記載する。

楽天商品表示プラグインNP_Rakutenの基本仕様


 NucleusにてAmazonの商品を表示するのに、NP_Amazonを使っているところは多いと思う。
 その内容を、RakutenのAPIに置き換えたのがこのプラグイン。
 主な使用は、NP_Amazonと同じで、
  • 楽天のAPIキーを登録して使用する。
  • 楽天市場商品検索APIのキーである商品コードを主キーとして、商品を検索する。
  • 一定時間ごとにキャッシュを更新し、新たにデータを取得。
  • 楽天から商品が無くなった場合もリンクとタイトルは残す。
  • 画像URLが存在しない場合には、No Image画像を表示する。

 Amazonの場合、商品コードは販売終了後も残っていることが多く、過去の紹介商品DBとして使えたのだけれど、楽天の場合はショップごとの管理になるのでページ自体が消えてしまうことも多い。
 その場合、No Image画像に差し替えるのだけれど、これがうまくいっていなかった。今回その部分を修正する。

画像表示処理の変更点


 楽天の商品を検索後、登録されているデータの画像表示が有効の場合、その画像のURLの存在をチェックする処理を追加。
 具体的には、file_get_contents()を使用して戻り値をチェック。
 戻り値がfalseならば存在しないとして、画像のURLを削除し、画像表示フラグをOFFにする。
 NP_Rakutenのコードは、問題があるといけないので非公開。

改造時に発生した問題


 実は、画像のチェックルーチンは以前試していたのだけれど、うまく動作していなかった。
 Nucleusのプラグインを直接修正して確認していたのだけれど、この場合、動作不良のエラー表示をさせるのが難しい。
 今回は別途PHPファイルを作成してデバッグ後に、該当箇所をプラグインに移植した。
 PHPのようなスクリプト言語で、かつデータベースアクセスが絡む場合、ほかの人はどのようにデバッグをしているんだろうか。
 ローカル環境を作るにしても、本番サーバと同じものを構成するのはなかなか大変な労力だし。

その他、今後の展望


 動作は良好。これまで白の枠しか表示できなかった商品が、No Image表示に代わることが確認できた。
 ただ、その白枠内の縦の中央に画像を置くのができていない。CSSをいじってはみたものの、どうもうまくいかない。
 これは表示だけの問題なので、とりあえずはこのままとする。

 これで、NP_Header、NP_Related、NP_Rakutenと修正が終わったので、ほかのサイトへの導入を試み、Amazonのリンクを修正する予定。


関連記事[Nucleus Rakuten チェックルーチン

前後の記事 - [Nucleus]::タイトル一覧

コメント


コメントはありません。



コメントの追加


トラックバック

このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。

↑ PAGE TOP