next-engine用のCSV書き出しプログラム(EC-CUBE2.11) その2 | φ(..)メモとして残しておこう…

next-engine用のCSV書き出しプログラム(EC-CUBE2.11) その2

登録したデータをDBから取ってきて、CSVにする方もやっておかないといけないので。

いやぁ…こっちもベタ書きです。

取ってくるSQLはこんな感じで。


select
`dtb_order`.`order_id` AS `order_id`,
`dtb_order`.`order_temp_id` AS `order_temp_id`,
`dtb_order_temp`.`session` AS `session`
from
(`dtb_order` join `dtb_order_temp`)
where
((`dtb_order`.`del_flg` = 0) and
(`dtb_order`.`order_temp_id` = `dtb_order_temp`.`order_temp_id`) and
((`dtb_order`.`status` = 1) or (`dtb_order`.`status` = 6)))


statusの「1」と「6」は、それぞれ「新規受付」と「入金済み」です。
要するに、新しい注文だけをCSVにしたい、と。

後は、取ってきたデータをこんな感じでCSVにしちゃいます。



$data = mysql_query($sql,$link) or die("データ読み出し失敗");

while( $dat = mysql_fetch_array($data,MYSQL_ASSOC) ){

$dat['session'] = unserialize( $dat["session"] );
$list[] = $dat;

}


foreach ($list as $val){

$id = $val['order_id'];

foreach($val['session']['csv_data'] as $value){

//レコードナンバーがよくわからんので、受注番号と同じにした。
$order_data[] = $id . "," . $id . $value;
}

}

$outputFile = "temp.csv";

touch($outputFile);
chmod($outputFile, 0777);

$fp = fopen($outputFile, 'w');

//最初に、項目行を出力
$eachs = '"受注番号","レコードナンバー","注文日","注文時間","商品名","商品番号","個数","単価","項目・選択肢","注文者名字","注文者名前","注文者名字フリガナ","注文者名前フリガナ","メールアドレス","注文者郵便番号1","注文者郵便番号2","注文者住所:都道府県","注文者住所:都市区","注文者住所:町以降","注文者電話番号1","注文者電話番号2","注文者電話番号3","注文者性別","注文者誕生日","送付先名字","送付先名前","送付先名字フリガナ","送付先名前フリガナ","送付先郵便番号1","送付先郵便番号2","送付先住所:都道府県","送付先住所:都市区","送付先住所:町以降","送付先電話番号1","送付先電話番号2","送付先電話番号3","のし","決済方法","クレジットカード種類","クレジットカード番号","クレジットカード名義人","クレジットカード有効期限","クレジットカード分割選択","クレジットカード分割備考","配送方法","コメント","ラッピング種類(包装紙)","ラッピング種類(リボン)","ラッピング料金(包装紙)","ラッピング料金(リボン)","ギフトチェック(0:なし/1:あり)","合計","送料(-99999=無効値)","消費税(-99999=無効値)","代引料(-99999=無効値)","請求金額(-99999=無効値)","利用端末","ポイント利用有無","ポイント利用条件","ポイント利用額","ポイントステータス","合計金額(-99999=無効値)","楽天バンク決済手数料","ひとことメモ"' . "\r\n";

fputs ( $fp, $eachs );

foreach ($order_data as $fields) {

$fields = mb_convert_encoding($fields, "SJIS", "auto");
fputs ( $fp, $fields );

}

fclose($fp);



これで、CSVファイルが作れます。
後は、ダイアログを出すなりなんなりして、データをダウンロードさせて、next-engineでうp。

ほんとはメール受注のシステムの方でなんとかしたかったんだけど、意味不明なエラーを吐くのでやめました。

まあ、CSV書き出しにしておけばnext-engineじゃないツールにも対応できるので、よしとしておこう。