⑩PHPでYahoo!ショッピングAPIを使って価格を取得してみる!

え~前回は、PHPでAmazon MWS APIで取得した商品情報をMySQL(DB)に登録しました!

パチパチパチパチ

前回を読んでいない方は、こちらからどうぞ。
⑨PHPでAmazon MWS APIで取得した商品情報をMySQL(DB)に登録してみる。

 

今回は、少し路線を変えまして、

ヤフーショッピングのAPIを使って、価格の取得に挑戦してみます!

 

これが出来ると、アマゾン価格と比較することが出来るようになります。

いやーこれは楽しそうですねー、わくわくします!

では、さっそく始めてみましょう!

ヤフーショッピング価格を取得するコードの作成

私はPHPは素人ですので、さっそくGoogle先生で調べます(笑)

今回の参考サイトはこちらです!
参考 Yahoo! APIの使い方!PHPのコードサンプルを付き このサイトは分かりやすくて助かります。

今回は、上のサイトのコードをほぼ、そのまま使ちゃいます(笑)

注意
ヤフーのAPIを使用するには、Yahoo! JAPAN IDの取得が必要です。
取得の仕方は、上の参考サイトを見て取得します。

リサーチには、商品名を使います(Amazonでは、ASINでリサーチしました)

Amazon編では、JANコードを取得していませんので、今回は商品名でひっかけます。

商品名でヒットした価格を取得していきます。

作成したコードは、後ろの方に掲載します。

コードを実行した結果(先にみせます!)

では、先に結果を見てもらいましょう~!

 

はい、こちらです!

 

じゃーん!

おお~!パチパチパチパチ!拍手をください~!!

 

なんとか、がんばりましたー!!

 

いつもの「ばかうけ」のヤフーショッピング価格を取得してみました~!

 

全部で20件もありましたが、上位の5件を記載しました。

え~取得した価格ですが

残念ながら・・・

送料は含まれていません!

 

上の画像の、ヤフーショッピングの最安値は、388円です。

Amazon価格は712円です。

この数字だけを比較すると、ヤフーショッピングがめちゃくちゃ安いですが、実際は送料が含まれていません。

実際の送料は、324円かかります。

販売価格と送料を合計すると、712円です。

結局、Amazonと同じ価格になりました(笑)

 

しかし、いちいち送料を調べるのは面倒です・・・

送料を取得するオペレーションは無いの?という話になります。

捜してみました!

結果・・・

何と!見つかりませんでした(笑)

 

ひょっとして、どこかに有るのかもしれませんが、私のリサーチ能力では見つけられませんでした・・・

仕方ないですので、別途送料がかかると思って価格比較するしかありません。

そして、また

衝撃の事実が別に見つかりました!

上で取得した価格が最安値ではありません(笑)

 

実際のヤフーショッピングで、手入力で商品名で検索してみると


「この商品の最安値を見る」ボタンがあります。

これをクリックしてみると


価格が278円で、送料が350円。合計628円です。

げっ!安いやん!

何で商品名で引っかからないの!?

 

・・・ということで、結論としましては

商品名で価格を取得しても、最安値とは限らない(ここ重要)ということです!

 

ちなみに、JANコードで検索すると、278円の商品はヒットしました。

しかし

JANコードで引っかからない商品があるのもまた事実!

 

可能なら、商品名+JANコードの両方でリサーチした方が漏れが少ないということです。

やっかいだわー(笑)

まとめ

今回の掲題

「PHPでYahoo!ショッピングAPIを使って価格を取得してみる!」

は、大成功です!

・・・と言い切れないところもありますが、目的は達成しているので成功とさせてください(笑)

本当の最安値を見つけるには、色々と工夫が必要です。

・送料の取得

・商品名の検索

・JANの検索

いずれ挑戦してみたいですね。

 

今回は、良しとしましょう(笑)

プチ成功体験が、次なるやる気を生み出しています(笑)

 

次なる課題は・・・すいません、気分で変わります(笑)

乞うご期待ねがいます!

 

ではこれにておひらきです。

ご清読ありがとうございました。

 

作成したコードをご参考用にどうぞ

そのようなコードですので、完全なる自己責任でご参照ください。

いかなる責任も負いかねます。

設定

.config.inc.yh.php
<?php
define('APPLICATIONID_YAHOO', 'ご自身のヤフーIDをここに入力します');
?>

Yahoo API 検索キーワード入力、価格を取得し表示する。

t_df_yahoo_prc.php
<?php
require_once('.config.inc.yh.php');
require 'yahoo_api.php';
echo "<table border=1>";
$prd = $g['Title'];
//Yahoo API 検索キーワードと最低価格を指定
$yahoo_relust = getYahooResult("栗山米菓 ばかうけアソート 40枚入");
foreach ($yahoo_relust as $item) {
	echo "<tr>";
	$img = $item['img'];
	$prd_yh = $item['name'];
	$url = $item['url'];
	$prc_yh = $item['price'];
	echo "<td><img src=" . $img . "></td>";
	echo "<td>" . $prd_yh . "</td>";
	echo "<td>" . $prc_yh . "</td>";
	echo "</tr>";
}
?>

Yahoo API 検索キーワードから商品情報を取得

yahoo_api.php
<?php
function getYahooResult($keyword) {
	// リクエストURL
	$baseurl = "http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch"; //XML
	// リクエストのパラメータ作成
	$params = array();
	$params["appid"] = APPLICATIONID_YAHOO; // アプリケーションID
	$params["query"] = urlencode_rfc3986($keyword);
	$params["sort"] = urlencode_rfc3986("+price");

	// canonical string を作成
	$canonical_string = "";
	foreach ($params as $k => $v) {
	$canonical_string .= "&" . $k . "=" . $v;
	}
	
	// 先頭の'&'を除去
	$canonical_string = substr($canonical_string, 1);

	// URL を作成
	$url = $baseurl . "?" . $canonical_string;

	// XMLをオブジェクトに代入
	$yahoo_xml = simplexml_load_string(@file_get_contents($url));

	$items = array();
	foreach($yahoo_xml->Result->Hit as $item){
		$items[] = array(
		'name' => (string)$item->Name,
		'url' => (string)$item->Url,
		'img' => (string)$item->Image->Medium,
		'price' => (string)$item->Price,
		);
	}
	return $items;
}

// RFC3986 形式で URL エンコードする関数
function urlencode_rfc3986($str) {
return str_replace("%7E", "~", rawurlencode($str));
}

以上となります。

ワテ

プログラムをオンラインで学ぶならUdemy(ユーデミー)がおすすめです。好きな時間に視聴できるので私も受講しています。


セール期間なら千円台でお得だぞ

カメ吉

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください