EC-CUBEの小技:クロネコヤマトB2用CSV出力の完成版

2013年2月3日 05:12
クロネコヤマトB2用CSV出力についてご紹介。
この記事は最終更新日から1年以上が経過しています。

ありそうでなかった、正解文

実は、「ECCUBE クロネコ B2」で検索しますと、一番最初に以下のページが出ます。
EC-CUBEからクロネコヤマトB2用CSV出力! – NAVER まとめ

で、その出力用のSQL文が載っているわけですが、まずこのままでは使えません。
僕も意気揚々とコピーして引っ張ったところ、色々と問題がありまして、そのままでは使えないという、代物でした。

せっかく、検索上位に来てるのに、不完全なのはちょっと残念です。
着眼点は良かったのですがね。

というわけで、使いやすく改良したものを以下に。

DISTINCT 
dtb_order.order_id as "オーダー番号",
CASE WHEN payment_id=4 THEN "2" WHEN payment_id=5 THEN "2" ELSE "0" END as "送り状種別",
"0" as "クール区分",
"" as "伝票番号",
DATE_FORMAT(dtb_order.update_date, "%Y/%m/%d") as "出荷予定日",
DATE_FORMAT(shipping_date, "%Y/%m/%d") as "お届け予定(指定)日",
REPLACE(REPLACE(REPLACE(shipping_time,"時",""),"~",""),"午前中","0812") as "配達時間帯",
"" as "お届け先コード",
concat(shipping_tel01,"-",shipping_tel02,"-",shipping_tel03) as "お届け先電話番号",
"" as "お届け先電話番号枝番",
concat(shipping_zip01,shipping_zip02) as "お届け先郵便番号",
concat(mtb_pref2.name,shipping_addr01) as "お届け先住所",
shipping_addr02 as "お届け先住所(アパートマンション名)",
shipping_name01 as "お届け先会社・部門名1",
"" as "お届け先会社・部門名2",
shipping_name02 as "お届け先名",
"" as "お届け先名略称カナ",
"様" as "敬称",
"" as "ご依頼主コード",
"" as "ご依頼主電話番号",
"" as "ご依頼主電話番号枝番",
"" as "ご依頼主郵便番号",
"" as "ご依頼主住所1",
"" as "ご依頼主住所(アパートマンション名)",
"" as "ご依頼主名",
"" as "ご依頼主略称カナ",
"" as "品名コード1",
"" as "品名1",
"" as "品名コード2",
"" as "品名2",
"" as "荷扱い1",
"" as "記事",
payment_total as "コレクト代金引換額(税込)",
"" as "コレクト内消費税額等",
"" as "営業所止置き",
"" as "営業所コード",
"" as "発行枚数",
"" as "個数口表示フラグ",
"" as "請求先顧客コード",
"" as "請求先分類コード",
"" as "運賃管理番号",
"" as "注文時カード払いデータ登録",
"" as "注文時カード払い加盟店番号",
"" as "注文時カード払い申込受付番号1",
"" as "注文時カード払い申込受付番号2",
"" as "注文時カード払い申込受付番号3",
"" as "お届け予定eメール利用区分",
"" as "お届け予定eメールe-mailアドレス",
"" as "お届け予定eメールメッセージ",
"" as "お届け完了eメール利用区分",
"" as "お届け完了eメールe-mailアドレス",
"" as "お届け完了eメールメッセージ",
"" as "クロネコ収納代行利用区分",
"" as "入力機種"

 FROM mtb_pref , mtb_pref as mtb_pref2 , dtb_order
 JOIN dtb_shipping
 JOIN dtb_order_detail ON dtb_order.order_id = dtb_shipping.order_id
 AND dtb_order.order_id = dtb_order_detail.order_id
 WHERE dtb_order.order_pref = mtb_pref.id
 AND dtb_order.status = 8
 AND dtb_shipping.shipping_pref = mtb_pref2.id
 and dtb_order.del_flg = 0

というわけです。
入力箇所、使い方、出力方法は上のNAVERまとめの方にありますので、参考にしてください。

注意としては、機械出力だからって、安全だと過信せず、住所確認を怠らないようにしましょう。
僕が利用していたものでもあるので、もしかしたら、状況が変わる場合もありますので、まずは確認の程を。

というわけで、こんなところでしょうか。
復帰第一段にしては、それほど役に立たないかもしれないですね。
実際、Ver2.12の方ではプラグインも出てますし。

でも、まあ、使えますよ、結構。

追記:2016/5/12
コメントにも合った通り、バージョンによって上記のSQLでは動かないようだったので、修正しました。
多分ですが、ダブルコーテーションがエラーの原因だったようです。

DISTINCT 
dtb_order.order_id as 'オーダー番号',
CASE WHEN payment_id=4 THEN 2 WHEN payment_id=5 THEN 2 ELSE 0 END as '送り状種別',
0 as 'クール区分',
NULL as '伝票番号',
DATE_FORMAT(dtb_order.update_date, '%Y/%m/%d') as '出荷予定日',
DATE_FORMAT(shipping_date, '%Y/%m/%d') as 'お届け予定(指定)日',
REPLACE(REPLACE(REPLACE(shipping_time,'時',''),'~',''),'午前中','0812') as '配達時間帯',
'' as 'お届け先コード',
concat(shipping_tel01,'-',shipping_tel02,'-',shipping_tel03) as 'お届け先電話番号',
'' as 'お届け先電話番号枝番',
concat(shipping_zip01,shipping_zip02) as 'お届け先郵便番号',
concat(mtb_pref2.name,shipping_addr01) as 'お届け先住所',
shipping_addr02 as 'お届け先住所(アパートマンション名)',
shipping_name01 as 'お届け先会社・部門名1',
'' as 'お届け先会社・部門名2',
shipping_name02 as 'お届け先名',
'' as 'お届け先名略称カナ',
'様' as '敬称',
'' as 'ご依頼主コード',
'' as 'ご依頼主電話番号',
'' as 'ご依頼主電話番号枝番',
'' as 'ご依頼主郵便番号',
'' as 'ご依頼主住所1',
'' as 'ご依頼主住所(アパートマンション名)',
'' as 'ご依頼主名',
'' as 'ご依頼主略称カナ',
'' as '品名コード1',
'' as '品名1',
'' as '品名コード2',
'' as '品名2',
'' as '荷扱い1',
'' as '記事',
payment_total as 'コレクト代金引換額(税込)',
'' as 'コレクト内消費税額等',
'' as '営業所止置き',
'' as '営業所コード',
'' as '発行枚数',
'' as '個数口表示フラグ',
'' as '請求先顧客コード',
'' as '請求先分類コード',
'' as '運賃管理番号',
'' as '注文時カード払いデータ登録',
'' as '注文時カード払い加盟店番号',
'' as '注文時カード払い申込受付番号1',
'' as '注文時カード払い申込受付番号2',
'' as '注文時カード払い申込受付番号3',
'' as 'お届け予定eメール利用区分',
'' as 'お届け予定eメールe-mailアドレス',
'' as 'お届け予定eメールメッセージ',
'' as 'お届け完了eメール利用区分',
'' as 'お届け完了eメールe-mailアドレス',
'' as 'お届け完了eメールメッセージ',
'' as 'クロネコ収納代行利用区分',
'' as '入力機種'

 FROM mtb_pref , mtb_pref as mtb_pref2 , dtb_order
 JOIN dtb_shipping
 JOIN dtb_order_detail ON dtb_order.order_id = dtb_shipping.order_id
 AND dtb_order.order_id = dtb_order_detail.order_id
 WHERE dtb_order.order_pref = mtb_pref.id
 AND dtb_order.status = 8
 AND dtb_shipping.shipping_pref = mtb_pref2.id
 and dtb_order.del_flg = 0

ブログ運営

株式会社ちょもらんま

https://qomolangma.jp