バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > csvで、発送伝票の荷送人に注文者情報を出力したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
dice
投稿日時: 2015/6/26 11:03
対応状況: −−−
新米
登録日: 2015/6/26
居住地:
投稿: 2
csvで、発送伝票の荷送人に注文者情報を出力したい
------------------------------------------------------------------------------------------
[EC-CUBE] 2.12.6
[レンタルサーバ] さくら
[OS] Linux
[PHP] PHP 5.4.38
[データベース] PostgreSQL 9.3.6
[WEBサーバ] Apache/2.2.15 (CentOS)
------------------------------------------------------------------------------------------

ギフト用の注文の際に、発送伝票の荷送人(依頼主)欄を、自社情報ではなく、注文者情報を印字したいのです。

?注文者とお届け先が同じ場合は、荷送人(依頼主)に自社情報を出力
?注文者とお届け先が異なる場合は、注文者を荷送人として出力

という場合分けがしたいです。

ちなみに、現状では下記のように固定文言を出力しています。
=======================
'000-0000-0000' AS "ご依頼主電話番号",
'000-0000' AS "ご依頼主郵便番号",
'●●県△△市' AS "ご依頼主住所1",
'1-1-1' AS "ご依頼主住所2",
'ギフトショップ◆◆◆' AS "ご依頼主名称1",
'' AS "ご依頼主名称2",
=======================

お分かりになる方、教えてください。
よろしくお願いします。
yuh
投稿日時: 2015/6/26 11:50
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: csvで、発送伝票の荷送人に注文者情報を出力したい
複数配送対応してるかどうかによっても若干変わってきますが、


          CASE WHEN 
	  	(order_name01,order_name02,order_tel01,order_tel02,order_tel03,order_pref,order_addr01,order_addr02)=
		(SELECT shipping_name01,shipping_name02,shipping_tel01,shipping_tel02,shipping_tel03,shipping_pref,shipping_addr01,shipping_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
		THEN '000-0000-0000' 
               ELSE (SELECT shipping_tel01 || '-' || shipping_tel02 || '-' || shipping_tel03 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
            
	  END

このようなCASE式で判断はできますが、複数配送の場合はまたちょっと違う形で書かないとダメですね。
dice
投稿日時: 2015/6/26 14:12
対応状況: −−−
新米
登録日: 2015/6/26
居住地:
投稿: 2
Re: csvで、発送伝票の荷送人に注文者情報を出力したい
さっそくのお返事ありがとうございます!

教えていただいたソースコードで書いたところ、
注文者とお届け先が違う場合に、お届け先が依頼主になってしまったので、若干下記のように修正したところ、意図した出力ができました!
(複数配送なし)


ELSE (SELECT shipping_tel01 || '-' || shipping_tel02 || '-' || shipping_tel03 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)



ELSE (SELECT order_tel01 || '-' || order_tel02 || '-' || order_tel03 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)


ただ、今度は、お届け先都道府県=注文者の都道府県になってしまいました。

こちらはどのように修正したら良いでしょうか?

ちなみに、全体としては下記のようになっています。

================================
'' AS "住所録コード",
CONCAT(shipping_tel01 || '-' || shipping_tel02 || '-' || shipping_tel03) AS "お届け先電話番号",
CONCAT(shipping_zip01 || '-' || shipping_zip02) AS "お届け先郵便番号",
mtb_pref.name AS "お届け先住所1",
CONCAT(shipping_addr01 || shipping_addr02) AS "お届け先住所2",
'' AS "お届け先住所3",
CONCAT(shipping_name01 || shipping_name02) AS "お届け先名称1",
'' AS "お届け先名称2",
dtb_order.customer_id AS "お客様管理ナンバー",

CASE WHEN
(order_name01,order_name02,order_tel01,order_tel02,order_tel03,order_pref,order_addr01,order_addr02)=
(SELECT shipping_name01,shipping_name02,shipping_tel01,shipping_tel02,shipping_tel03,shipping_pref,shipping_addr01,shipping_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
THEN '000-0000-0000'
ELSE (SELECT order_tel01 || '-' || order_tel02 || '-' || order_tel03 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
END AS "ご依頼主電話番号",

CASE WHEN
(order_name01,order_name02,order_tel01,order_tel02,order_tel03,order_pref,order_addr01,order_addr02)=
(SELECT shipping_name01,shipping_name02,shipping_tel01,shipping_tel02,shipping_tel03,shipping_pref,shipping_addr01,shipping_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
THEN '000-0000'
ELSE (SELECT order_zip01 || '-' || order_zip02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
END AS "ご依頼主郵便番号",

CASE WHEN (order_name01,order_name02,order_tel01,order_tel02,order_tel03,order_pref,order_addr01,order_addr02)=
(SELECT shipping_name01,shipping_name02,shipping_tel01,shipping_tel02,shipping_tel03,shipping_pref,shipping_addr01,shipping_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
THEN '●●県△△市'
ELSE (SELECT mtb_pref.name || order_addr01 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
END AS "ご依頼主住所1",

CASE WHEN
(order_name01,order_name02,order_tel01,order_tel02,order_tel03,order_pref,order_addr01,order_addr02)=
(SELECT shipping_name01,shipping_name02,shipping_tel01,shipping_tel02,shipping_tel03,shipping_pref,shipping_addr01,shipping_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
THEN '1-1-1'
ELSE (SELECT order_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
END AS "ご依頼主住所2",

CASE WHEN
(order_name01,order_name02,order_tel01,order_tel02,order_tel03,order_pref,order_addr01,order_addr02)=
(SELECT shipping_name01,shipping_name02,shipping_tel01,shipping_tel02,shipping_tel03,shipping_pref,shipping_addr01,shipping_addr02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
THEN 'ギフトショップ◆◆◆'
ELSE (SELECT order_name01 || order_name02 FROM dtb_shipping WHERE order_id = dtb_order.order_id LIMIT 1)
END AS "ご依頼主名称1",
'' AS "ご依頼主名称2",

FROM
mtb_pref,
dtb_order
LEFT JOIN
dtb_shipping
ON
dtb_order.order_id = dtb_shipping.order_id

WHERE
dtb_order.order_pref=mtb_pref.id AND dtb_order.status = 9 AND dtb_order.del_flg = 0

================================

何度もお手数ですが、よろしくお願いします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,146名です
総投稿数は110,046件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1650
8
red
1570
9
mcontact
1299
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.