電脳卸WEBサービスのサンプルコード

かなりマニアックな商品を扱う電脳卸のウェブサービスのサンプルコードです。

必要なものはアクセスキーと販売店IDの二つです。

まずは電脳卸ウェブサービスの動作デモページで動作状況をご確認ください。

<?php

/**********************************************************************/

// 電脳卸WEBサービス
$accesskey = ''; // DWSアクセスキー

$hid = ''; // 販売店ID

/**********************************************************************/
/**********************************************************************

echo '<div style="width:80%;margin:5% auto;">';
echo '<div style="margin:0; padding:0">';

?>
// 検索フォーム
<div style="margin:0 0 2% 0;">
<form name="searchform" id="itemsearchform" method="get" action="">
<input type="text" name="sword" id="itemsword" value="" />
<input type="submit" id="itemssubmit" value="検索" />
</form>
</div>
<?php

$store = 'http://www.store-mix.com/ko-bai/product.php?pid=';

$offset = '10'; // 1ページに表示するアイテム数

$sort_mode = '0'; // 0:最新順

$sort = '1'; // 0:昇順 1:降順

$type = 'heavy';

$getsword = $_GET['sword'];
$pgn = $_GET['Page'];
if(isset($_GET['Page'])){
	$pg = (int) $_GET['Page'];
	if(0 == $pg){$pg = 1;}
}else{$pg = 1;}

$utfkey = mb_convert_encoding($getsword,"UTF-8","auto");
$endkey = urlencode($utfkey);
$shouhin = mb_convert_encoding($getsword,"UTF-8","auto");
$m_key = str_replace(" ", " ", $shouhin);
$meta_key = str_replace(" ", ",", $m_key);

$utfkey = str_replace(" ", " ", $utfkey);

$URL = "http://webservice.d-064.com/3.x/ProductSearch.php?"."accesskey=".$accesskey."&hid=".$hid."&sword=". $endkey."&type=".$type."&page=".$pg."&offset=".$offset;$xml = "";
$fp = fopen($URL,"r");
while ( !feof($fp) ) {$xml .= fgets($fp,1000);}

fclose($fp);
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0); 
xml_parse_into_struct($parser,$xml,$values,$Index);
xml_parser_free($parser);
foreach ($Index as $key=>$val) {
	switch ($key) {
		case "TotalItems":
			$allResult = $values[$val[0]]['value'];
			break;
		case "TotalPages":
			$allpage = $values[$val[0]]['value'];
			break;
	}
}

for($n = 0; $n<count($Index['ItemID']); $n++){
	foreach ($Index as $key=>$val){
		switch ($key){	
			case "ItemID":
				$ItemID[] = $values[$val[$n]]['value'];
				break;
			case "ProductName":
				$ProductName[] = $values[$val[$n]]['value'];
				break;
			case "ShopID":
				$ShopID[] = $values[$val[$n]]['value'];
				break;
			case "Price":
				$Price[] = $values[$val[$n]]['value'];
				break;
			case "ImageUrlSmall":
				$ImageUrlSmall[] = $values[$val[$n]]['value'];
				break;
			case "Infinity":
				$Infinity[] = $values[$val[$n]]['value'];
				break;
			case "Availability":
				$Availability[] = $values[$val[$n]]['value'];
				break;
			case "ItemDetail":
				$ItemDetail[] = $values[$val[$n]]['value'];
				break;
		}
    }
	
	//検索結果の描画部分
	echo '<div style="width:110px;float:left;"><a rel="nofollow" href="'.$store.$ItemID[$n].'&hid='.$hid.'&oid='.$ShopID[$n].'" target="_blank"><img border="0" src="'.$ImageUrlSmall[$n].'" alt="'.$ProductName[$n].'"></a></div>';
	echo '<div style="font-weight:bold;margin-left:110px;"><a rel="nofollow" href="'.$store.$ItemID[$n].'&hid='.$hid.'&oid='.$ShopID[$n].'" target="_blank">'.$ProductName[$n].'</a></div>';
	echo '<div style="color:#ff0000; font-weight:bold;margin-left:110px;">'."価格 ".number_format((int)$Price[$n])." 円".'</div>';
	echo '<div style="margin-left:110px;">' .mb_substr($ItemDetail[$n], 0, 300, 'UTF-8').'</div>';
	
	echo '<div style="clear:both; visibility:hidden; width:100%; height:10px;">クリア</div>';
	echo '<hr style="width:100%;border:1px dotted #bbb;" />';

} // for end

if(isset($item)){ echo "<span>全 ".number_format((int)$allResult)." 数</span>"; }

$total_page = ceil( $allResult / $offset ); //総ページ数

$current_page= (empty($_GET['Page'])) ? 1 : $_GET['Page']; //現在のページ番号取得

// ページャー
echo '<div>';

$nextpagenumber = '2'; //

$url_a ="<a style='background-color: #ffffff; color: #ff0000; margin: 0; padding: 0.2em 0.5em; border: solid 1px; text-decoration: none;' href=\"?sword=$e_sword&Page=";

$url_b ="\"";

$html_pagenumber_Link = pagenumber_Link($total_page,$current_page,$nextpagenumber,$url_a,$url_b);

echo $html_pagenumber_Link;

function  pagenumber_Link($total_page,$current_page,$nextpagenumber,$url_a,$url_b){

	$html = "";

	if($total_page < 1) return $html;

	if($current_page > 1) $html .= $url_a.($current_page-1).$url_b.' style="background-color: #ffffff; margin: 0; padding: 0.2em 0.5em; border: solid 1px; text-decoration: none;"'.">&laquo;</a>";

	$prevpagenumber = $current_page - $nextpagenumber;

	while ($prevpagenumber < $current_page) {

		$prevpagenumber++;

		if($prevpagenumber > 1) $html .= $url_a.($prevpagenumber-1).$url_b.">".($prevpagenumber-1)."</a>";

	}

	$html .= '<span style="	background-color: #ff0000; color: #ffffff; margin: 0; padding: 0.2em 0.5em; border: solid 1px #ff0000; text-decoration: none;">'.$current_page.'</span>';

	if($current_page < $total_page){

		$total_page = $total_page - $current_page;

		if($total_page > $nextpagenumber) $total_page=$nextpagenumber;

		$plus=0;

		while ($plus < $total_page) {

			$nextpagenumber=$current_page+$plus+1;

			$html .= $url_a.$nextpagenumber.$url_b.">".$nextpagenumber."</a>";

			$plus++;
		
		}
		
	$html .= $url_a.($current_page+1).$url_b.' style="background-color: #ffffff; color: #ff0000; margin: 0; padding: 0.2em 0.4em; border: solid 1px; text-decoration: none;"'.">&raquo;</a>";
	
	}

return $html;

}

echo '</div>';

echo '</div>';
echo '</div>';

?>

ワードプレスに投稿欄でPHPをプラグイン等で有効にしていて、このサンプルコードをワードプレスの投稿欄に直接、貼り付けて動作状況をご確認したい場合は、検索フォーム上の

echo '<div style="width:80%;margin:5% auto;">';
echo '<div style="margin:0; padding:0">';

サンプルコード最下部の

echo '</div>';
echo '</div>';

を削除してください。