バージョン選択

フォーラム

メニュー

オンライン状況

70 人のユーザが現在オンラインです。 (56 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 70
もっと...

サイト内検索

質問 > 管理機能 > ヤマトB2へのCSV出力対応について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
gunpowder
投稿日時: 2011/5/29 16:18
対応状況: −−−
半人前
登録日: 2009/6/21
居住地:
投稿: 17
ヤマトB2へのCSV出力対応について
いつも参考にさせていただいております。今回下記の質問があり投稿させていただきました。

受注データをクロネコヤマトのB2にCSVで取り込むべく、CSV出力項目設定の高度な設定で以下のSQL文を設定しました。

しかしB2側では伝票の種類を以下のような数値で設定しなければなりません。

■送り状種類
送り状種類を指定します。
半角1文字
0 : 発払い
2 : コレクト
3 : メール便
4 : タイムサービス
6 : メール便速達

payment_methodで出力される文字列 "代金引換" を "2"
とかに変更したいのですが、どのように記述すればいいでしょうか。 過去ログは見たのですが見つかりませんでした。よろしくお願いします。

EC-CUBEバージョン 2.4.0
PHPバージョン PHP 5.2.17
DBバージョン PostgreSQL 7.4.30

↓設定したSQL↓
order_id as 受注番号
,to_char(date 'now', 'YYYY/MM/DD') as 出荷予定日
, deliv_tel01 || deliv_tel02 || deliv_tel03 as お届け先TEL
, deliv_name01 || deliv_name02 as お届け先名
, deliv_zip01 || deliv_zip02 as お届け先郵便番号
, mtb_pref.pref_name || deliv_addr01 as お届け先住所
, deliv_addr02 as お届け先建物名
, order_tel01 || order_tel02 || order_tel03 as ご依頼主TEL
, order_name01 || order_name02 as ご依頼主名
, order_zip01 || order_zip02 as ご依頼主郵便番号
, mtb_pref.pref_name || order_addr01 as ご依頼主住所
, order_addr02 as ご依頼主建物名
, payment_method as 伝票種類
, payment_total as 代引金額
FROM
dtb_order , mtb_pref
WHERE dtb_order.deliv_pref=mtb_pref.pref_id AND status = 1 AND del_flg = 0



seasoft
投稿日時: 2011/5/30 2:44
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: ヤマトB2へのCSV出力対応について
PostgreSQL のマニュアルを見ると早いと思います。

たしか、replace 関数とかあったような。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

asayama
投稿日時: 2011/5/30 14:37
対応状況: −−−
一人前
登録日: 2008/1/9
居住地: 東京都品川区
投稿: 150
Re: ヤマトB2へのCSV出力対応について
case使えばできますね。

ですが、代引きだけ抽出するSQLをわけて書いて、
固定で"2"とかにしたほうが簡単かもしれません。


----------------
株式会社システムフレンド
朝山俊雄

改造専門店・EC-CUBE工房
http://ec-cube.systemfriend.co.jp/

gunpowder
投稿日時: 2011/5/31 1:07
対応状況: −−−
半人前
登録日: 2009/6/21
居住地:
投稿: 17
Re: ヤマトB2へのCSV出力対応について
ありがとうございます。下記のようにやってみたのですがCSVで開くと replaceという題名の列ができて代金引換という文字が入力されているのみです。やはり書き方がむちゃくちゃでしょうか。


order_id as 受注番号
,to_char(date 'now', 'YYYY/MM/DD') as 出荷予定日
, deliv_tel01 || deliv_tel02 || deliv_tel03 as お届け先TEL
, deliv_name01 || deliv_name02 as お届け先名
, deliv_zip01 || deliv_zip02 as お届け先郵便番号
, mtb_pref.pref_name || deliv_addr01 as お届け先住所
, deliv_addr02 as お届け先建物名
, order_tel01 || order_tel02 || order_tel03 as ご依頼主TEL
, order_name01 || order_name02 as ご依頼主名
, order_zip01 || order_zip02 as ご依頼主郵便番号
, mtb_pref.pref_name || order_addr01 as ご依頼主住所
, order_addr02 as ご依頼主建物名
, payment_method as 伝票種類
, REPLACE(payment_method,'代金引換','2')
, REPLACE(payment_method,'銀行振込','0')
, REPLACE(payment_method,'クレジットカード払い','0')
, REPLACE(payment_method,'コンビニ払い','0')
, REPLACE(payment_method,'コレクト(到着時クレジット払い)','0')
, payment_total as 代引金額
FROM
dtb_order , mtb_pref
WHERE dtb_order.deliv_pref=mtb_pref.pref_id AND status = 1 AND del_flg = 0
seasoft
投稿日時: 2011/5/31 1:31
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: ヤマトB2へのCSV出力対応について
書きたかったのは、DECODE 関数だったのですが、PostgreSQL にはちょうど良い関数が無いようですね。最近 Oracle をチョイチョイ構っているので、混同してました。

一応、REPLACE でもできると思いますが、並列(カンマ区切り)でなく、ネストする必要があります。

REPLACE(REPLACE(payment_method,'発払い','0'),'コレクト','2') AS 送り状種類
・・・的な。

それよりは、asayama 様の提案されている CASE 条件式を使った方がストレートですね。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

asayama
投稿日時: 2011/6/1 10:01
対応状況: −−−
一人前
登録日: 2008/1/9
居住地: 東京都品川区
投稿: 150
Re: ヤマトB2へのCSV出力対応について
おせっかいですが、、

case payment_method
when '代金引換' then '2'
else '0'

という感じです。

payment_id使った方がよいかもしれません。。


----------------
株式会社システムフレンド
朝山俊雄

改造専門店・EC-CUBE工房
http://ec-cube.systemfriend.co.jp/

gunpowder
投稿日時: 2011/6/1 22:44
対応状況: −−−
半人前
登録日: 2009/6/21
居住地:
投稿: 17
Re: ヤマトB2へのCSV出力対応について
>seasoftさま

ありがとうございます!

ご提案していただいた方法で下記のような感じでとりあえず設定しました。すごいことになっていますが、、、。

ここから詰めて行きたいと思います。とりあえずお礼までさせていただきます。

order_id as 受注番号
,to_char(date 'now', 'YYYY/MM/DD') as 出荷予定日
, deliv_tel01 || deliv_tel02 || deliv_tel03 as お届け先TEL
, deliv_name01 || deliv_name02 as お届け先名
, deliv_zip01 || deliv_zip02 as お届け先郵便番号
, mtb_pref.pref_name || deliv_addr01 as お届け先住所
, deliv_addr02 as お届け先建物名
, order_tel01 || order_tel02 || order_tel03 as ご依頼主TEL
, order_name01 || order_name02 as ご依頼主名
, order_zip01 || order_zip02 as ご依頼主郵便番号
, mtb_pref.pref_name || order_addr01 as ご依頼主住所
, order_addr02 as ご依頼主建物名
, payment_method as 伝票種類
, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(payment_method,'代金引換','2'),'銀行振込','0'),'クレジットカード払い','0'),'コンビニ払い','0'),'コレクト(到着時クレジット払い)','0') as 伝票種類
, payment_total as 代引金額
FROM
dtb_order , mtb_pref
WHERE dtb_order.deliv_pref=mtb_pref.pref_id AND status = 1 AND del_flg = 0


>asayamaさま

スマートな方法ありがとうございます。

まだ試していませんが、COMPUTEX TAIPEI 出張から帰ってきたら試してみます。ありがとうございました!感謝。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,891名です
総投稿数は110,001件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.