プロフィール
大きなわ沖縄
大きなわ沖縄
QRコード
QRCODE
てぃーだブログ › 1日3分ブログ&HP簡単講座 › PHP › リンクシェアAPIでの商品在庫判定(nissen・stylefe編)
「リンクシェアAPIでの商品在庫判定(nissen・stylefe編)」についてfacebookへの書き込み

2011年03月16日

リンクシェアAPIでの商品在庫判定(nissen・stylefe編)

リンクシェアの商品検索APIには在庫の概念がありません。
いろいろ調べたけど書いているサイトもありませんでした。

なので、自分でひとつずつ調べてみました~!

そこそこの動作スピードを確保しつつ、在庫判定を行うphpのコード
ショップごとに違うので
今回は、nissenとstylefeの2件です

<nissenの場合>
simplexml_load_fileでデータを呼び出してから

$sku = $db->sku;
//nissenの場合このskuという部分の数字が商品のコードになっている
//4桁と5桁で商品のURLが判別されている
$sku_f = substr($link_chk, 0, 4);
$sku_s = substr($link_chk, 4, 5);
//下記のような商品のURLになります。
$sku_url = "http://www.nissen.co.jp/sho_item/regular/".$sku_f."/".$sku_f."_".$sku_s.".asp";

//nissenの在庫は、在庫がなくなったばかりの場合は商品画面で在庫切れ
//だいぶ以前から在庫がないものは、在庫切れ画面に転送
//在庫判定するために上記の商品URLを読み込む
$link_chk_detail = @file_get_contents($sku_url);
$link_chk_detail = preg_replace('/\</','',$link_chk_detail);
$link_chk_detail = preg_replace('/\<\//','',$link_chk_detail);
$link_chk_detail = preg_replace('/\>/','',$link_chk_detail);
$link_chk_detail = preg_replace('/\n/','',$link_chk_detail);
$link_chk_detail = mb_convert_encoding($link_chk_detail,'utf8','sjis');
//転送されているかどうかのデータを取る
$header = get_headers($sku_url);

//転送されているかどうかと、取扱してないことが含まれるかを判定
if(preg_match('/HTTP\/1.1 302 Found/', $header[0]) || preg_match("/現在取り扱っておりません/", $link_chk_detail)){
//在庫がないものをスキップします
next;
}
else{
//表示したいアイテムのコード
}

<stylifeの場合>
simplexml_load_fileでデータを呼び出してから

$sku = $db->sku;
//stylifeの場合このskuという部分の数字が商品のコードになっている
//下記のような商品のURLになります。
$sku_url = "http://www.stylife.co.jp/sf/Merchandiser/catalog/Category.do?catID=".$sku;

//stylifenの在庫は、在庫がなくなっているものは、データがない
//在庫判定するために上記の商品URLを読み込む
$link_chk_detail = @file_get_contents($sku_url);
$link_chk_detail = preg_replace('/\</','',$link_chk_detail);
$link_chk_detail = preg_replace('/\<\//','',$link_chk_detail);
$link_chk_detail = preg_replace('/\>/','',$link_chk_detail);
$link_chk_detail = preg_replace('/\n/','',$link_chk_detail);
$link_chk_detail = mb_convert_encoding($link_chk_detail,'utf8','sjis');

//データがあるかないかを判定
if($link_chk_detail == ""){
//在庫がないものをスキップします
next;
}
else{
//表示したいアイテムのコード
}


これで、だいたいの在庫判定はできるはずです。
最近在庫切れしたばかりのものは、出てきてしまいますが、その場合は、トップページに飛ばされますのでさほど問題ではないでしょう。



同じカテゴリー(PHP)の記事
第1回PHPの基本構造
第1回PHPの基本構造(2010-11-22 13:19)


 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。