next-engine用のCSV書き出しプログラム(EC-CUBE2.11) その2
登録したデータをDBから取ってきて、CSVにする方もやっておかないといけないので。
いやぁ…こっちもベタ書きです。
取ってくるSQLはこんな感じで。
statusの「1」と「6」は、それぞれ「新規受付」と「入金済み」です。
要するに、新しい注文だけをCSVにしたい、と。
後は、取ってきたデータをこんな感じでCSVにしちゃいます。
これで、CSVファイルが作れます。
後は、ダイアログを出すなりなんなりして、データをダウンロードさせて、next-engineでうp。
ほんとはメール受注のシステムの方でなんとかしたかったんだけど、意味不明なエラーを吐くのでやめました。
まあ、CSV書き出しにしておけばnext-engineじゃないツールにも対応できるので、よしとしておこう。
いやぁ…こっちもベタ書きです。
取ってくる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じゃないツールにも対応できるので、よしとしておこう。