2008年11月03日

関連商品情報を変更しました

 キーワード検索した際にサイドに表示される関連商品情報を変更しました。これまで Amazon と楽天を併用していましたが、楽天のみに変更するとともに、評価の件数と平均点を表示するようにしました。アフィリエイトの点で Amazon のクリックの有効期間が1日と短いのに対して、楽天が1か月あるというのが変更の大きな理由ではあるのですが、API の使い勝手が楽天のほうがよいというのも変更の理由です(Amazon は、商品写真がきれいというメリットがあるので、個別商品の紹介では引き続き使用しています)。

 Amazon の API(AWS)は、きっちり作り込めばできることは多いのですが、出力される内容が細分化されているため、若干敷居が高い気がします(ドキュメントも英語ですしね)。それに比べると、楽天はカスタマイズの点では不十分なところもありますが、扱いやすいと思います。

 使い方としては、リクエスト用のURLを

$developerId  = '(ディベロッパーID)';
$affiliateId  = '(アフィリエイトID)';
$operation    = 'ItemSearch';
$keyword      = rawurlencode('(検索したいキーワード)');
$version      = '2008-09-01';
$hits         = 10;
$page         = 1;
$sort         = rawurlencode('-reviewCount');
$availability = 1;
$field        = 0;
$imageFlag    = 1;
$request_url = "http://api.rakuten.co.jp/rws/1.12/rest?developerId={$developerId}&affiliateId={$affiliateId}&operation={$operation}&keyword={$keyword}&version={$version}&hits={$hits}&page={$page}&sort={$sort}&availability={$availability}&field={$field}&imageFlag={$imageFlag}";
みたいな感じで作ったら、
$xml = file_get_contents($request_url);
require_once 'XML/Unserializer.php';

$options = array(
    "parseAttributes" => true
);
$unserializer =& new XML_Unserializer( $options );
$unserializer->unserialize( $xml, FALSE );
$res = $unserializer->getUnserializedData();
のようにすれば、結果を配列に入れることができます。あとは、ドキュメントと結果の配列を見比べながら、必要なデータを抽出すればOKです(例ではキーワードに関連する、画像があり、入手可能な商品を評価数の多い方から10件取得しています)。

posted by まいける at 11:58 | Comment(0) | TrackBack(0) | 機能追加
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/22349895
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック