カテゴリ別売り上げランキングを表示する
カテゴリランキングAPIを利用し、あらかじめ設定したカテゴリIDの売り上げランキングを表示するためのサンプル。
使用API | |
---|---|
構成環境 | Apache-2.2.10 + PHP-5.2.5 |
ダウンロード
サンプルご利用の際は、利用規約をご覧ください。利用規約は、ダウンロードパッケージ内のLICENSE.txtファイルに記載されています。
コード解説
ダウンロードしたアーカイブファイルを展開すると下記のようになります。
`-- sample3 |-- CategoryRanking | `-- CategoryRanking.php |-- LICENSE.txt |-- README.txt |-- common | `-- common.php `-- css |-- default.css `-- prototype.css
CategoryRanking.php
<?php
/** @mainpage
* カテゴリランキングを表示
*/
/**
* @file
* @brief カテゴリランキング表示
*
* カテゴリランキングAPIを利用し、
* 変数$category_idに指定されたカテゴリのランキングを問い合わせます。
* その結果をhtmlに埋め込んで表示します。
*
* PHP version 5
*/
require_once("../common/common.php");//共通ファイル読み込み(使用する前に、appidを指定してください。)
$hits = array();
$category_id = "2495";//検索したいカテゴリーIDを入れてください。
if ($category_id != "") {
$url = "http://shopping.yahooapis.jp/ShoppingWebService/V1/categoryRanking?appid=$appid&category_id=$category_id";
$xml = simplexml_load_file($url);
if ($xml["totalResultsReturned"] != 0) {//問い合わせ結果が0件でない場合,変数$ranking_dataに問い合わせ結果を格納します。
$ranking_data = $xml->Result->RankingData;
}
}
?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>ショッピングデモサイト - カテゴリ別売り上げランキングを表示する - catoery_id 「<?php echo h($category_id); ?>」のランキング</title>
<link rel="stylesheet" type="text/css" href="../css/prototype.css"/>
</head>
<body>
<h1><a href="./CategoryRanking.php">ショッピングデモサイト - カテゴリ別売り上げランキングを表示する - catoery_id 「<?php echo h($category_id); ?>」のランキング</a></h1>
<?php foreach ($ranking_data as $ranking) { ?>
<div class="Item">
<h2><a href="<?php echo h($ranking->Url); ?>"><?php echo h($ranking->Name); ?></a></h2>
<p><a href="<?php echo h($ranking->Url); ?>"><img src="<?php echo h($ranking->Image->Medium); ?>" /></a><?php echo h($ranking->Description); ?></p>
</div>
<?php } ?>
</body>
<!-- Begin Yahoo! JAPAN Web Services Attribution Snippet -->
<a href="http://developer.yahoo.co.jp/about">
<img src="http://i.yimg.jp/images/yjdn/yjdn_attbtn2_105_17.gif" width="105" height="17" title="Webサービス by Yahoo! JAPAN" alt="Webサービス by Yahoo! JAPAN" border="0" style="margin:15px 15px 15px 15px"></a>
<!-- End Yahoo! JAPAN Web Services Attribution Snippet -->
</html>
common.php
<?php
/** @mainpage
* Yahoo!ショッピングWeb APISDK共通関数
*/
/**
* @file
* @brief Yahoo!ショッピングWeb APISDK共通関数
*
* Yahoo!ショッピングWeb APISDKで、共通で使用する設定・関数を集めたファイルです。
*
* PHP version 5
*
*/
/**
* @brief Client ID(アプリケーションID)
*
* Yahoo! JAPANが提供するWeb APIを利用するアプリケーションには、Client ID(アプリケーションID)が必要です。
* Yahoo!デベロッパーネットワークで取得したClient ID(アプリケーションID)を設定してください。
* Client ID(アプリケーションID)の取得については
* http://e.developer.yahoo.co.jp/webservices/register_application
* をご覧ください。
*
* @var string
*/
$appid = "あなたのClient ID(アプリケーションID)";//取得したClient ID(アプリケーションID)を設定
/**
* @brief カテゴリーID一覧
*
* 商品カテゴリの一覧です。
* キーにカテゴリID、値にカテゴリ名が入っています。
* @var array
*/
$categories = array(
"1" => "すべてのカテゴリから",
"13457"=> "ファッション",
"2498"=> "食品",
"2500"=> "ダイエット、健康",
"2501"=> "コスメ、香水",
"2502"=> "パソコン、周辺機器",
"2504"=> "AV機器、カメラ",
"2505"=> "家電",
"2506"=> "家具、インテリア",
"2507"=> "花、ガーデニング",
"2508"=> "キッチン、生活雑貨、日用品",
"2503"=> "DIY、工具、文具",
"2509"=> "ペット用品、生き物",
"2510"=> "楽器、趣味、学習",
"2511"=> "ゲーム、おもちゃ",
"2497"=> "ベビー、キッズ、マタニティ",
"2512"=> "スポーツ",
"2513"=> "レジャー、アウトドア",
"2514"=> "自転車、車、バイク用品",
"2516"=> "CD、音楽ソフト",
"2517"=> "DVD、映像ソフト",
"10002"=> "本、雑誌、コミック"
);
/**
* @brief ソート方法一覧
*
* 検索結果のソート方法の一覧です。
* キーに検索用パラメータ、値にソート方法が入っています。
* @access private
* @var array
*
*/
$sortOrder = array(
"-score" => "おすすめ順",
"+price" => "商品価格が安い順",
"-price" => "商品価格が高い順",
"+name" => "ストア名昇順",
"-name" => "ストア名降順",
"-sold" => "売れ筋順"
);
/**
* @brief 特殊文字を HTML エンティティに変換する
*
* これは、htmlspecialchars()を使いやすくするための関数です。
* htmlspecialchars() http://jp.php.net/htmlspecialcharsより
* 文字の中には HTML において特殊な意味を持つものがあり、
* それらの本来の値を表示したければ HTML の表現形式に変換してやらなければなりません。
* この関数は、これらの変換を行った結果の文字列を返します。
*
* '&' (アンパサンド) は '&' になります。
* ENT_QUOTES が設定されている場合のみ、 ''' (シングルクオート) は '''になります。
* '<' (小なり) は '<' になります。
* '>' (大なり) は '>' になります。
* ''' (シングルクオート) は '''になります。
*
* echo h("<>&'\""); //<>&'"と出力します。
*
* @param string $str 変換したい文字列
*
* @return string html用に変換した文字列
*
*/
function h($str)
{
return htmlspecialchars($str, ENT_QUOTES);
}
?>