APIを使って商品データを取得し、CSVデータへと変換した後、そのデータをWordPressへインポートさせる時に「CSV Importer」というプラグインを使うのですが、その覚書です。
CSVデータを作るときの注意点としてはコードはUTF-8(BOMなし)であることと、改行はLFに統一することなどがあります。
Excelだと文字コードがJISになるので注意が必要です。
XMLからCSVへの変換
楽天WebAPIのXMLからCSVへのPHP変換コードサンプル。
(PHP初心者ですので、参考程度にしてください。)
あらかじめ書き込みをするcsvファイルを用意しておく必要があります。
[html]
<?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データの書き込みに成功しました!");
?>
[/html]
参考サイト:
API関連・・・・最安値複数ECサイト横断検索 light Ver.1.0リリース!と高速化の手法common.phpは横断検索のファイルをダウンロードしてください。
CSV関連・・・・PHPを使ってCSVデータを外部ファイルとして出力してみる
CSVデータ確認・編集
CSVデータの編集や確認には、無料のCassava Editorというソフトをベクターからダウンロードして使っています。
UTF-8なのにファイルを開いて文字化けしている場合は、「ファイル>文字コード指定再読み込み>UTF-8」でファイルを読み直してみてください。
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)・・・タクソノミー。カッコ内に自分の作った分類名を入れる。
データが作成できれば、Upload fileから対象のcsvファイルを選び「Import」ボタンを押すだけです。
追記:
上記のサンプルコードでは30件しか商品を取得できません。
最大数取得するさいの参考になりそうなサイト。
楽天オークション商品検索APIを使ってみた
本ブログを拝見させていただきました。
少し質問ですが、以下のURLで貼っている画像の中のコメント等は何で作成されたものでしょうか。
フォトショップ等でしょうか?
参考までにご教示いただけると幸いです。
https://harublog.popnavi.net/img/WordPressCSV-Importer_C987/2013-02-21_15h39_04_thumb.png
Screenpressoですね。
現在はmacをメインで使っているので私は使っていないのですが、以前はwindowsでScreenpressoを使っていました。
https://harublog.popnavi.net/image_transfer/screenpresso/