WordPressにCSV Importerを使ってWeb APIデータをインポートする

APIを使って商品データを取得し、CSVデータへと変換した後、そのデータをWordPressへインポートさせる時に「CSV Importer」というプラグインを使うのですが、その覚書です。

CSVデータを作るときの注意点としてはコードはUTF-8(BOMなし)であることと、改行はLFに統一することなどがあります。

Excelだと文字コードがJISになるので注意が必要です。

スポンサードリンク

XMLからCSVへの変換

楽天WebAPIのXMLからCSVへのPHP変換コードサンプル。
(PHP初心者ですので、参考程度にしてください。)

あらかじめ書き込みをするcsvファイルを用意しておく必要があります。

<?php
require_once("common.php");

// CSVファイル名の設定
$csvdata = "testrakuten.csv";

// CSVデータの初期化
$csv = "";


//リクエストパラメータ
$r_id = '123456789'; // あなたのアプリID
$r_aff_id = '0987654321'; // あなたのアフィリエイトID
$query = "ネックストラップ"; //キーワードを入れる
$query4url = urlencode($query); // URLエンコード

//リクエストURL組み立て
$url = "http://api.rakuten.co.jp/rws/3.0/rest?developerId=$r_id&affiliateId=$r_aff_id&operation=ItemSearch&version=2010-09-15&keyword=$query4url&format=xml";


//XMLパース
$rwsBuff = file_get_contents($url);
$rwsBuff = str_replace('header:Header', 'headerHeader', $rwsBuff);
$rwsBuff = str_replace('itemSearch:ItemSearch', 'itemSearchItemSearch', $rwsBuff);

$xml = simplexml_load_string ($rwsBuff);
$hits = $xml->Body->itemSearchItemSearch->Items->Item;

foreach ($hits as $hit) {
$itemname[] = h($hit->itemName);
$linkurl[] = h($hit->affiliateUrl);
if (strlen($hit->mediumImageUrl)) {
	$imgurl[] = h($hit->mediumImageUrl);
} else {
	$imgurl[] = "c_img/noimage.gif";
}
$price[] = h($hit->itemPrice);
$description[] = h($hit->itemCaption);
$shopname[] = h($hit->shopName);
//送料フラグ 	postageFlag 	0:送料込
//1:送料別
if ($hit->postageFlag == 0) {
	$souryou[] = "送料無料";
} else {
	$souryou[] = "送料別";
}
$reviewnum[] = h($hit->reviewCount);
$reviewavr[] = h($hit->reviewAverage);
$reviewurl[] = "";
}

// 値段安い順番に並び替える(全部)
asort($price);

// CSVデータの作成

        $csv ='"csv_post_title","csv_post_post","csv_post_categories","csv_post_date","csv_post_author","csv_post_slug","csv_post_type","custom_field_1","custom_field_2","custom_field_3","custom_field_4","custom_field_5","custom_field_6"' . "\n";
	foreach($price as $key => $value){
	    $csv .= "\"" . $itemname[$key] . "\"" . ",";
	    $csv .= "\"" . $description[$key]  . "\"" . ",";
	    $csv .= "strap" . ",";
	    $csv .= "now" . ",";
	    $csv .= "Haru" . ",";
	    $csv .= '""' . ",";
	    $csv .= "post" . ",";
	    $csv .= "\"" . $linkurl[$key]  . "\"" . ",";
	    $csv .= "\"" . $imgurl[$key]  . "\"" . ",";
	    $csv .= "\"" . $reviewnum[$key]  . "\"" . ",";
	    $csv .= "\"" . $reviewavr[$key]  . "\"" . ",";
	    $csv .= "\"" . $shopname[$key]  . "\"" . ",";
	    $csv .= $price[$key] . "\n";
	}


// CSVファイルを追記モードで開く
$fp = fopen($csvdata, 'ab');

// CSVファイルを排他ロックする
flock($fp, LOCK_EX);

// CSVファイルの中身を空にする
// 既存の内容に追記していく場合は不要
ftruncate($fp, 0);

// CSVデータ$csvの内容をファイルに書き込む
fwrite($fp, $csv);

// CSVファイルを閉じる
fclose($fp);

// 完了メッセージを出力する
echo("CSVデータの書き込みに成功しました!");

?>

参考サイト:
API関連・・・・最安値複数ECサイト横断検索 light Ver.1.0リリース!と高速化の手法common.phpは横断検索のファイルをダウンロードしてください。
CSV関連・・・・PHPを使ってCSVデータを外部ファイルとして出力してみる

CSVデータ確認・編集

CSVデータの編集や確認には、無料のCassava Editorというソフトをベクターからダウンロードして使っています。

2013-02-21_15h44_16

UTF-8なのにファイルを開いて文字化けしている場合は、「ファイル>文字コード指定再読み込み>UTF-8」でファイルを読み直してみてください。

2013-02-21_15h39_04

CSV Importerのデータは一番上に項目を書いていきます。プラグインをダウンロードして同梱されているexamplesファイルのサンプルデータを見ると分かりやすいと思います。

  • csv_post_title(※)・・・・タイトル
  • csv_post_post(※)・・・・本文を書きます
  • csv_post_type ・・・・post, page,カスタムポストタイプを指定(通常の投稿はpost)
  • csv_post_excerpt・・・概要
  • csv_post_categories・・・・・カテゴリ(日本語ではなくslugのほうがよいと思います)
  • csv_post_tags・・・・タグ
  • csv_post_date(※)・・・・・日時(now,11/16/2009 0:00,1999-12-31 23:55:00など)
  • csv_post_author・・・・投稿者名
  • csv_post_slug・・・・スラッグ
  • custom_field_1・・・カスタムフィールド。custom_field_2,custom_field_3と増やせる
  • csv_ctax_(taxonomy name)・・・タクソノミー。カッコ内に自分の作った分類名を入れる。

2013-02-21_16h06_31

データが作成できれば、Upload fileから対象のcsvファイルを選び「Import」ボタンを押すだけです。

追記:
上記のサンプルコードでは30件しか商品を取得できません。
最大数取得するさいの参考になりそうなサイト。
楽天オークション商品検索APIを使ってみた

関連記事リスト

WordPress親固定ページで子ページの記事一覧を表示させる方法
サイト型アフィリエイトサイトを作る時に便利なのが固定ページの利用です。...

2014-06-20_10h11_18

WordPressの固定ページでカスタムフィールドを使って関連記事を表示させる方法
WordPressの固定ページでカスタムフィールドを使って関連記事を表...

wordpressのデータベース(mySQL)に独自テーブルを作りデータを取り出す方法まとめ
WordpressのMySQLデータベースに独自テーブルを追加して、そ...

2012-08-07_10h28_23

WordPressで簡単作成!スマホ対応サイトの作り方
WordPressで簡単に作成できるスマホ(スマートフォン)対応サイト...

2012-07-19_09h51_51

ファビコン(favicon.ico)の設置方法、WordPressでファビコンを表示させる方法
ファビコン(favicon.ico)の設置方法、WordPressでフ...

2012-08-07_16h02_13

カテゴリごとに異なる画像やテキストを表示させるWordPressプラグイン(Category Meta plugin)
カテゴリページごとに違う画像やテキストを挿入したい場合に使えるプラグイ...

2013-08-22_14h32_15-540x4081

【覚書】ポスト記事の下に同カテゴリ内の関連記事をサムネイルつきで表示させる
個別ポスト記事(single.php)で、記事下に同カテゴリ内の関連記...

taxonomy-term.phpで特定の親(固定ページ)をもつ子ページだけ表示させる方法
taxonomy-term.phpに特定の親ページをもつ子ページを表示...

2013-11-05_10h39_09

WordPressでAPIを使ったサイト構築方法:ハーブティー専門店検索サイト編
WordPressでAPIを使ったサイト構築方法:ハーブティー専門店検...

image-size

投稿する画像を任意のサイズに変更するワザ
WordPressでブログを投稿していると何かと面倒になってくるのが、...

コメントを残す

このページの先頭へ